Home Linux와 주요 명령어
Post
취소

Linux와 주요 명령어

Linux

  • 1991년, Linus Torvals가 개발한 OS

  • 오픈 소스이며 가장 널리 사용되는 OS

  • 리눅스의 구조

    img

    • 커널 : 리눅스의 핵심이자 프로세스 관리, 메모리 관리, 파일 및 장치 등 컴퓨터의 하드웨어를 모두 제어하는 영역
    • 쉘 : 커널과 사용자의 접점, 쉘을 통해 사용자는 컴퓨터로 원하는 동작을 할 수 있음
      • 가장 많이 사용자되는 쉘은 BASH(Bourne-Again Shell)과 zsh(Z Shell)
    • 응용 프로그램 : 각종 프로그램 시스템을 위한 프로그램, 문서 편집 도구, 브라우저, 네트워크 도구 등을 의미

FHS(Filesystem Hierarchy Standard)

  • 파일 계층 시스템

리눅스 디렉토리 구조

그림출처: 코딩팩토리

root(/)

  • 최상위 경로인 루트폴더

/home(~)

  • 리눅스의 운영과 관리에 관련한 파일들이 존재하는 디렉토리

/bin & /sbin

  • OS의 최소한의 구동을 위해 필요한 프로그램이 들어있는 폴더, binary의 약자

  • cat, chmod, chown, cp, date, echo, kill, ln, ls, mkdir, etx 등 기초적인 프로그램들이 포함
  • sbin 폴더는 bin과 유사하지만 오직 루트유저 전용 프로그램 포함

/usr

  • 각 유저 이름에 해당하는 폴더이름이 존재
  • 각 폴더마다 bin, sbin, shared, lib과 같이 각 유저들이 사용할 수 있는 폴더가 생성되어 있으며, 각각의 유저별로 다른 파티션으로 존재하기 때문에 다른 사용자들이 사용할 수 있도 록 마운트할 수 있지만 수정할 수는 없음. User의 약자

PATH

  • / : root 디렉토리

  • ~ : home 디렉토리

  • Absolute path(절대 경로) : 경로를 표현하는 방식이 root 디렉토리 부터 시작한다는 점에서 완전한의 의미에 더욱 가까움

    • /home/kangsick/bin
  • Relative path(상대 경로) : 현재 자신의 위치를 기반으로 움직이는 경로.

    • . : 현재 경로
    • .. : 상위 경로
  • 환경 변수

    • OS도 프로그램이기 때문에 OS가 동작하기 위해 변수가 필요
    • env 명령어로 linux의 환경변수 확인
  • $PATH

    • 터미널에서 사용하는 명령어의 경로가 저장되어 있음

    • 여러 경로를 저장하기 위해 각 경로는 :로 구분됨

      1
      
      PATH=/Users/apple/miniconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
      
    • 실제 ls 명령어는 /bin 디렉토리 안에 위치

    • whereis ls 를 입력하면 해당 명령어가 위치해 있는 경로를 별도로 지정해주지 않더라도 어디서든 사용이 가능한 이유는 환경 변수가 존재하기 때문

Configs

  • 리눅스에서는 주로 파일을 통하여 설정(config)
    • .bashrc, .zshrc
  • shell 설정 파일 등 많은 설정 파일들이 대부분 유저의 home(~) 디렉토리에 존재

  • . 으로 시작하는 파일 및 디렉토리는 숨김파일로 간주(dot file)

  • lsa(all) 옵션을 주어야지만 볼 수 있음

  • alias(별칭, “다른 방법으로”) : 일종의 사용자 지정 단축 명령어 (.zshrc, .bashrc 등에 등록)

    1
    2
    
    alias myip="ipconfig getifaddr en0" # macOS
    alias myip="hostname -I" # ubuntu
    

주요 명령어 모음

디렉토리 명설명
home사용자 홈 디렉토리가 생성되는 곳입니다.
mediaCD_ROM이나 USB같은 외부 장치를 연결하는 디렉토리입니다.
opt추가 패키지가 설치되는 디렉토리입니다.
dev장치파일들이 저장되어 있는 디렉토리입니다.
rootroot계정의 홈 디렉토리입니다. (/ 디렉토리와는 다릅니다.)
sys리눅스 커널관련 정보가 있는 디렉토리입니다.
usr기본 실행파일과 라이브러리 파일, 헤더 파일등의 파일이 저장되어있는 디렉토리입니다.
boot부팅에 필요한 정보를 가진 파일들이 있는 디렉토리입니다.
var시스템 운영중에 발생한 데이터와 로그가 저장되는 디렉토리입니다.
tmp시스템 사용중에 발생한 임시데이터가 저장됩니다. (부팅 시 초기화)
srvFTP나 Web등 시스템에서 제공하는 서비스의 데이터가 저장되는 디릭토리입니다.
run실행중인 서비스와 관련된 파일이 저장되는 디렉토리입니다.
proc프로세스 정보 등 커널 관련 정보가 저장되는 디렉토리입니다.
mnt파일 시스템을 임시로 연결하는 디렉토리입니다.
etc리눅스 설정을 위한 각종 파일들을 가지고 있는 디렉토리입니다.

표출처 : 코딩팩토리

This post is licensed under CC BY 4.0 by the author.