본문 바로가기
📄Document/🔥Linux

[Linux] LINUX 디렉터리 종류와 특징

by 후누스 토르발즈 2021. 11. 20.
반응형

 

 

 

 

LINUX 디렉터리 종류와 특징

 디렉터리란 파일 저장소를 의미하며, 리눅스 디렉터리는 최상위 디렉터리(/)를 기준으로 하위 디렉터리들이 존재하는 계층적 트리 구조로 구성되어 있다.

 

디렉터리별 내용

  • / : 루트 디렉터리
    • 파일 시스템이 있는 최상위 디렉터리로 루트 디렉터리라고도 함
    • 모든 디렉터리의 출발점인 동시에 다름 시스템과의 연결점이 되는 디렉터리
  • /boot : 정적 부트 파일
    • 부트 디렉터리로 부팅 시 커널 이미지와 부팅 파일 저장
  • /proc : 커널 및 프로세스 파일(process)
    • 시스템 정보 디렉터리이며 커널 기능을 제어하는 역할
    • 현재 실행되는 프로세스와 실제 사용되는 장치, 하드웨어 정보 저장
    • 가상 파일 시스템
    • 시스템에서 운영되고 있는 다양한 프로세스들에 관한 내용과 프로그램에 대한 정보를 포함
    • 디렉터리에서 볼 수 있는 것은 실제 드리아브가 아니라 메모리 상에 저장되어 있다.
    • 사용자가 /proc이나 하위 파일에 접근할 때마다 커널에서 파일 내용을 동적으로 만들어낸다.
    • 각 프로세스는 고유의 식별자를 가지고 있으며, 이 식별자를 가진 디렉터리 밑에 정보를 저장한다.
  • /lib : 공유 라이브러리 (library)
    • 공유 라이브러리 디렉터리
    • 커널 모듈 파일들과 프로그램 실행을 지원해 주는 라이브러리 저장
    • 동적 공유 라이브러리를 저장하고 있다.
    • 공유 라이브러리에는 많은 프로그램에서 공통으로 사용하는 함수들이 들어있어 디스크의 공간을 절약할 수 있으며, 프로그램마다 동일한 코딩을 할 필요가 없다.
    • 라이브러리 공유 방법에는 정적 라이브러리와 동적 라이브러리 두 가지 방법이 있다.
      • 정적 라이브러리는 컴파일 과정에서 공유 라이브러리의 루틴을 사용하지 않고 프로그램내에 라이브러리 루틴의 복사본을 갖도록 컴파일한다.
      • 동적 라이브러리는 실행 파일 내부에 라이브러리를 넣어두지 않고 프로그램을 실행할 때 가져와 사용하므로 메모리의 효율성이 높다.
  • /bin (binary) : 사용자 바이너리
    • 기본적인 명령어가 저장된 디렉터리
    • root 사용자와 일반 사용자가 함께 사용할 수 있는 명령어 디렉터리
  • /dev (device) : 장치파일
    • 시스템 디바이스 파일들을 저장하는 디렉터리
    • 하드디스크, 프린터, 입출력장치 등과 같은 장치들을 파일화하여 관리한다. 따라서 특정장치를 실행하기 위해서는 해당 장치 파일을 실행해야 한다.
    • 장치 파일(device file) 또는 특수 파일(special file)은 장치 드라이버 이다.
    • 블록 장차 파일(block device)은 하드디스크, CD/DVD, 플로피 디스크와 같은 저장 장치들이며, 문자 장치 파일(character device)은 키보드, 마우스, 테이프, 모니터, 프린터 등의 같은 입출력장치들이다.
    • 리눅스의 표준 입력장치는 키보드이며, 표준 출력장치는 모니터이다.
  • /etc : 구성파일
    • 시스템 환경설정 파일과 부팅 관련 스크립트 파일들이 저장되어 있는 디렉터리이다.
    • 사용자 정보 및 암호 정보 파일, 보안 파일 등을 저장한다.
    • /etc/group
      • 룹의 정보가 담겨 있는 파일
    • /etc/passwd
      • 자원을 사용할 수 있는 사용자 목록 저장
    • /etc/shadow
      • /etc/passwd의 두 번째 필드인 패스워드 부분을 암호화 관리
      • 패스워드 만기일, 계정 만기일 등을 설정
  • /root : 루트 디렉터리
    • 시스템 관리자용 홈 디렉터리
  • /sbin : 시스템 관리 바이너리 (system binary..?)
    • 관리자용 시스템 표준 명령 및 시스템 관리와 관련된 실행 명령어 저장
  • /usr : 사용자 바이너리 및 읽기 전용 데이터 (user..?)
    • 시스템이 아닌 일반 사용자들이 사용하는 디렉터리
    • 사용자 디렉터리로 사용자 데이터나 애플리케이션 저장
    • 공유 가능한 프로그램들이 설치되며 네트워크를 이용해서 여러 개의 시스템을 연결할 경우 이 디렉터리를 공유해서 설치된 프로그램들을 활용할 수 있다.
    • /usr 디렉터리는 읽기 전용으로 마운트 되어야 하며, 가변 자료들은 /var 디렉터리로 심볼릭 링크로 사용하게 된다.
  • /home : 홈 폴더
    • 사용자 계정 디렉터리로 계정들의 홈 디렉터리가 위치
    • 일반 사용자들이 로그인 시 처음으로 위치하게 되는 디렉터리
  • /var : 변수 데이터 파일
    • 가변 자료 저장 디렉터리로 로그 파일이나 메일 데이터 저장
    • 시스템에서 사용되는 가변적인 파일들을 저장하는 디렉터리이다.
    • 가변적인 파일들로는 로그파일, 스풀링(spooling), 캐싱(caching) 등이 있다.
  • /tmp : 임시 파일 (temporary)
    • 각종 프로그램이나 프로세스 작업을 할 때 임시로 생성되는 파일 저장
    • 모든 사용자에 대해서 읽기와 쓰기가 허용
    • 스티키 비트(sticky bit) 설정으로 파일의 소유자만이 자신의 소유 파일 삭제 가능
  • /mnt : 임시 마운트 지점 (mount)
    • 파일 시스템을 일시적으로 마운트할 때 사용
  • /lost+found : 복구된 파일
    • 결함이 있는 파일에 대한 정보가 저장되는 디렉터리
    • 파일 시스템의 이상 유무를 진단하고 복구하는 fsck에 의해서 사용되는 디렉터리이다.
    • 손상된 파일이나 디렉터리를 /lost+found 디렉터리로 연결한 뒤에 오류를 수정하게 되며 평상시에는 null 파일 링크에 의해서 비어있는 상태로 존재한다.
    • 리눅스 파일 시스템 ext2에 의한 fack, ext2 프로그램도 이 디렉터리를 사용한다.

 

 

 

 

반응형