# Table of Contents
# 리눅스의 파일 시스템과 디렉토리 구조
거의 대부분의 리눅스 배포판은 리눅스 파일시스템 계층 표준
인 Linux Filesystem Hierarchy Standard (opens new window)을 준수한다. 따라서 다음 디렉토리 구조를 가진다.
# tree -L 1 -N -d
├─ bin
├─ dev
├─ etc
├─ home
├─ lib
├─ media
├─ mnt
├─ opt
├─ proc
├─ root
├─ sbin
├─ tmp
├─ usr
└─ var
여기서 중요한 몇 가지 디렉토리를 살펴보자.
이름 | 설명 |
---|---|
/ | 최상위 디렉토리인 루트 디렉토리 |
/boot/ | 부팅에 필요한 파일들이 존재한다. |
/bin/ | 운영체제가 제공하는 명령어 바이너리. 모든 사용자들이 사용할 수 있다. ls , cat , cp , rm , ps 같은 명령어가 이 곳에 존재한다. |
/sbin/ | 운영체제가 제공하는 명령어 바이너리. 시스템 관리자만 사용할 수 있다. useradd , userdel , usermod 같은 명령어가 이 곳에 존재한다. |
/lib | /bin/ 과 /sbin 의 명령어 바이너리가 필요로하는 라이브러리 파일 |
/root | 루트 사용자의 홈 디렉토리 |
/home | 일반 사용자의 홈 디렉토리 |
/etc | 시스템 전반의 환경설정 파일이 존재한다. 계정 설정과 관련된 /etc/passwd, /etc/shadow, /etc/group이 이 곳에 존재한다. |
/var | 상대적으로 자주 변하는 파일들이 존재한다. |
/tmp | 다양한 프로그램에서 만들어지는 임시 파일들이 저장된다. 시스템이 재부팅될 때 마다 이 디렉토리가 비워진다. |
/usr | Universal Resource의 약자. 일반 사용자가 사용하는 모든 프로그램과 자원 파일들이 존재한다. |
/opt | Optional의 약자. 일반 사용자가 사용하는 프로그램이 설치된다. |
/dev | 리눅스는 장치를 파일로 관리한다. 연결된 장치가 이 곳에서 파일 형태로 존재한다. |
/mnt | 디스크처럼 저장 기능이 있는 장치는 파일시스템에 마운트할 수 있다. 이 곳에는 마운트 포인트가 존재한다. |
/media | USB 드라이버, CD-ROM 같은 휴대용 장치가 연결될 때의 마운트 포인트가 이 곳에 존재한다. |
다음 디렉토리는 내부를 좀 더 살펴볼 필요가 있다.
# /var
/var
에는 로그 데이터, 사용자 메일 같은 가변 데이터 파일이 저장된다. 대표적으로 var/log
에는 시스템이 기록하는 로그 파일이 위치한다.
# /usr
/bin
에는 운영체제가 제공하는 명령어 바이너리가 위치한다. 반면 /usr
에는 사용자가 설치한 명령어 바이너리가 위치한다.
이름 | 설명 |
---|---|
/usr/bin | 사용자가 설치한 앱이 위치한다. 모든 사용자가 사용할 수 있다. |
/usr/sbin | 사용자가 설치한 앱이 위치한다. 관리자만 사용할 수 있다. |
/usr/lib | /usr/bin 또는 /usr/sbin에 설치한 앱이 의존하는 라이브러리가 존재한다. |
/usr/local/bin | /usr/bin과 유사하지만 Package Manager가 아닌 사용자가 직접 컴파일한 앱이 위치한다. 모든 사용자가 사용할 수 있다. |
/usr/local/sbin | /usr/bin과 유사하지만 Package Manager가 아닌 사용자가 직접 컴파일한 앱이 위치한다. 관리자만 사용할 수 있다. |
/usr/local/lib | /usr/local/bin 또는 /usr/local/sbin에 설치한 앱이 의존하는 라이브러리가 존재한다. |
# /opt
/opt
는 사용자가 설치한 명령어 바이너리가 위치한다는 점에서 /usr/bin
과 유사하다.
보통 UNIX 계열에서는 사용자가 설치한 애플리케이션이 /opt
에 위치한다. 반면 대부분의 Linux 배포판에서 설치한 애플리케이션은 /usr/bin
에 위치힌다.