본문으로 건너뛰기

리눅스 디렉토리 구조는 어떻게 되나요?

💡 요약 정리

  • 리눅스는 계층적 디렉토리 구조로 구성되어 있습니다.
  • /는 루트 디렉토리로 모든 디렉토리의 최상위입니다.
  • 각 디렉토리는 시스템, 실행 파일, 설정 파일, 사용자 데이터 등 명확한 역할을 가집니다.
  • 표준 디렉토리 구조를 이해하면 시스템 관리와 문제 해결이 쉬워집니다.

리눅스 표준 디렉토리 구조

디렉토리설명
/루트 디렉토리 (최상위 디렉토리)
다른 모든 디렉토리가 / 안에 들어 있습니다.
/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시스템 라이브러리 디렉토리
시스템 라이브러리들이 저장되는 디렉토리
/lib6464비트 라이브러리 디렉토리
64bit OS가 설치되었을 때, 64bit 라이브러리들이 저장되는 디렉토리
/mnt임시 마운트 디렉토리
시스템 디스크 이외에 다른 디스크나 CD, USB 등 파일시스템을 일시적으로 마운트할 때 사용하는 디렉토리
/proc프로세스 정보 디렉토리
프로세스에 대한 정보가 있는 디렉토리
실제로는 빈 디렉토리이며 시스템이 부팅되면서 시스템의 프로세스 정보가 저장됩니다.
/rootroot 사용자 홈 디렉토리
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 디렉토리의 파일은 시스템 재부팅 시 삭제될 수 있으므로 중요한 파일은 저장하지 않아야 합니다.