리눅스 디렉토리 구조는 어떻게 되나요?
💡 요약 정리
- 리눅스는 계층적 디렉토리 구조로 구성되어 있습니다.
/는 루트 디렉토리로 모든 디렉토리의 최상위입니다.- 각 디렉토리는 시스템, 실행 파일, 설정 파일, 사용자 데이터 등 명확한 역할을 가집니다.
- 표준 디렉토리 구조를 이해하면 시스템 관리와 문제 해결이 쉬워집니다.
리눅스 표준 디렉토리 구조
| 디렉토리 | 설명 |
|---|---|
/ | 루트 디렉토리 (최상위 디렉토리) 다른 모든 디렉토리가 / 안에 들어 있습니다. |
/bin | 기본 명령어 디렉토리 리눅스에 포함된 기본 application 명령어들이 들어있는 디렉토리 (예: ls, cp, mv, cat 등) |
/boot | 부팅 파일 디렉토리 커널을 비롯한 시스템 부팅에 필요한 파일들이 있는 디렉토리 |
/dev | 장치 파일 디렉토리 모든 하드웨어 장치에 대한 장치 파일이 들어있는 디렉토리 (예: /dev/sda, /dev/null 등) |
/etc | 시스템 설정 파일 디렉토리 시스템 설정(Configuration) 파일이 있는 디렉토리 (예: /etc/passwd, /etc/httpd.conf 등) |
/home | 일반 사용자 홈 디렉토리 일반 사용자 홈 디렉토리, 사용자 계정을 생성할 때 /home 안에 생성됩니다. (예: /home/user1, /home/user2) |
/lib | 시스템 라이브러리 디렉토리 시스템 라이브러리들이 저장되는 디렉토리 |
/lib64 | 64비트 라이브러리 디렉토리 64bit OS가 설치되었을 때, 64bit 라이브러리들이 저장되는 디렉토리 |
/mnt | 임시 마운트 디렉토리 시스템 디스크 이외에 다른 디스크나 CD, USB 등 파일시스템을 일시적으로 마운트할 때 사용하는 디렉토리 |
/proc | 프로세스 정보 디렉토리 프로세스에 대한 정보가 있는 디렉토리 실제로는 빈 디렉토리이며 시스템이 부팅되면서 시스템의 프로세스 정보가 저장됩니다. |
/root | root 사용자 홈 디렉토리 root 사용자(시스템 최고관리자)의 홈 디렉토리 |
/sbin | 시스템 관리 명령어 디렉토리 리눅스의 시스템 명령어가 들어있는 디렉토리 (예: ifconfig, fdisk, reboot 등) |
/sys | 시스템 정보 디렉토리 시스템 관련 정보가 저장되는 디렉토리 실제로는 빈 디렉토리이며, 시스템이 부팅되면서 시스템 정보가 저장됩니다. |
/tmp | 임시 파일 디렉토리 일시적인 파일을 담아두는 디렉토리 재부팅 시 삭제될 수 있습니다. |
/usr | 사용자 프로그램 디렉토리 rpm 패키지 프로그램을 설치할 때, 프로그램 및 명령어, 라이브러리가 설치되는 디렉토리 |
/var | 가변 데이터 디렉토리 시스템 로그 파일, 사용자 로그 파일, 메일, DB 데이터 등 시스템에서 사용되는 동적인 파일들이 저장됩니다. |
주요 디렉토리 상세 설명
/bin (Binary)
시스템 기본 명령어가 저장된 디렉토리입니다.
주요 명령어:
ls: 파일 목록 보기cp: 파일 복사mv: 파일 이동/이름 변경rm: 파일 삭제cat: 파일 내용 보기mkdir: 디렉토리 생성
/etc (Etcetera)
시스템의 거의 모든 설정 파일이 위치합니다.
주요 설정 파일:
/etc/passwd: 사용자 계정 정보/etc/shadow: 사용자 패스워드 정보/etc/group: 그룹 정보/etc/fstab: 파일시스템 마운트 정보/etc/hosts: 호스트 이름과 IP 매핑/etc/resolv.conf: DNS 서버 설정
/home
일반 사용자의 홈 디렉토리가 생성되는 곳입니다.
예시:
/home/user1 # user1 사용자의 홈 디렉토리
/home/user2 # user2 사용자의 홈 디렉토리
/var (Variable)
시스템 운영 중 생성되는 가변 데이터가 저장됩니다.
주요 하위 디렉토리:
/var/log: 시스템 로그 파일/var/mail: 메일 스풀/var/spool: 프린터, 메일 등의 스풀 디렉토리/var/tmp: 임시 파일 (재부팅 후에도 유지)/var/www: 웹 서버 문서 루트 (일반적)
/usr (Unix System Resources)
사용자가 설치한 프로그램과 관련 파일이 저장됩니다.
주요 하위 디렉토리:
/usr/bin: 사용자 명령어/usr/sbin: 시스템 관리 명령어/usr/lib: 라이브러리 파일/usr/local: 로컬에서 컴파일한 프로그램/usr/share: 아키텍처 독립적인 데이터
/sbin (System Binary)
시스템 관리에 필요한 명령어가 저장됩니다.
주요 명령어:
ifconfig: 네트워크 인터페이스 설정fdisk: 디스크 파티션 관리reboot: 시스템 재부팅shutdown: 시스템 종료iptables: 방화벽 설정
/usr/sbin 디렉토리
/sbin과 유사하지만 주로 서버 프로그램과 관련된 시스템 관리 명령어들이 저장됩니다.
예시 명령어:
httpd: Apache 웹 서버mysqld: MySQL 데이터베이스 서버sshd: SSH 서버
가상 파일시스템
/proc
실제 디스크 공간을 사용하지 않는 가상 파일시스템입니다.
주요 정보:
/proc/cpuinfo: CPU 정보/proc/meminfo: 메모리 정보/proc/[PID]/: 각 프로세스의 정보
예시:
cat /proc/cpuinfo # CPU 정보 확인
cat /proc/meminfo # 메모리 정보 확인
/sys
커널과 장치 드라이버에 대한 정보를 제공하는 가상 파일시스템입니다.
마운트 포인트
/mnt
외부 저장장치를 임시로 마운트할 때 사용합니다.
사용 예시:
mount /dev/sdb1 /mnt/usb # USB 디스크 마운트
/media
자동으로 마운트되는 이동식 미디어의 마운트 포인트입니다.
- CD/DVD
- USB 드라이브
- 외장 하드디스크
디렉토리 구조 확인 명령어
tree 명령어
디렉토리 구조를 트리 형태로 보여줍니다.
tree -L 1 / # 루트 디렉토리의 1단계 하위만 표시
ls 명령어
디렉토리 내용을 목록으로 보여줍니다.
ls -l / # 루트 디렉토리 내용 목록
ls -la /etc # /etc 디렉토리의 모든 파일(숨김 파일 포함)
참고사항
- 리눅스 디렉토리 구조는 FHS(Filesystem Hierarchy Standard)를 따릅니다.
- 대부분의 리눅스 배포판은 동일한 기본 디렉토리 구조를 사용합니다.
- 시스템 파일을 수정할 때는 반드시 백업을 먼저 수행해야 합니다.
/proc와/sys는 가상 파일시스템으로 실제 디스크 공간을 사용하지 않습니다./tmp디렉토리의 파일은 시스템 재부팅 시 삭제될 수 있으므로 중요한 파일은 저장하지 않아야 합니다.