Post

Linux Directory 구조

Linux Directory 구조에 대해 정리해보았습니다.

Linux Directory 구조

최상위 디렉터리

디렉터리설명
/파일 시스템 계층의 루트 디렉터리
/bin모든 사용자와 단일 사용자 모드에서 필수적인 명령어 실행 파일 (cat, ls, cp 등)
/boot부트 로더 파일 (커널, initrd 등)
/dev장치 파일 (/dev/null, /dev/sda1, /dev/tty 등)
/etc시스템 전반의 설정 파일
/home사용자 홈 디렉터리
/lib/bin, /sbin 실행 파일에 필요한 필수 라이브러리
/mediaCD-ROM 같은 이동식 미디어의 마운트 지점
/mnt일시적으로 마운트된 파일 시스템
/opt추가적인 애플리케이션 소프트웨어 패키지
/proc실행 중인 프로세스 및 커널 정보를 제공하는 가상 파일 시스템
/root루트 사용자의 홈 디렉터리
/run부팅 이후 시스템의 런타임 정보를 저장하는 디렉터리
/sbin시스템 관리자가 사용하는 필수 시스템 실행 파일 (fsck, init, route 등)
/srv웹 서버, FTP 서버 등의 서비스 데이터를 저장하는 공간
/sys장치, 드라이버, 커널 기능 정보를 제공하는 디렉터리
/tmp임시 파일 저장소 (재부팅 시 삭제될 수 있음)
/var가변 데이터 파일 (로그 파일, 데이터베이스 등)
/usr사용자 관련 프로그램과 라이브러리

/etc 하위 디렉터리

디렉터리설명
/etc/opt/opt에 저장된 추가 패키지의 설정 파일
/etc/sgmlSGML 관련 설정 파일
/etc/X11X 윈도우 시스템 (버전 11)의 설정 파일
/etc/xmlXML 관련 설정 파일
/etc/systemdsystemd 서비스 관리자의 설정 파일

/usr 하위 디렉터리

디렉터리설명
/usr/bin비필수 실행 파일 (/bin과 달리 단일 사용자 모드에서 필수적이지 않음)
/usr/include표준 C/C++ 헤더 파일 등 포함 파일
/usr/lib/usr/bin/usr/sbin 실행 파일을 위한 라이브러리
/usr/libexec다른 프로그램에 의해 실행되는 바이너리 파일 (직접 실행되지 않음)
/usr/local호스트에 특화된 프로그램을 저장하는 공간
/usr/sbin네트워크 서비스용 데몬 등 비필수 시스템 바이너리
/usr/share아키텍처에 의존하지 않는 공유 데이터
/usr/src소스 코드 저장 디렉터리 (커널 소스 포함)
/usr/X11R6X 윈도우 시스템 버전 11, 릴리즈 6 관련 파일 (선택 사항)

/var 하위 디렉터리

디렉터리설명
/var/cache응용 프로그램 캐시 데이터
/var/lib응용 프로그램이 실행되면서 변경하는 영구적인 데이터 (예: 데이터베이스, 패키지 메타데이터)
/var/lock현재 사용 중인 리소스를 추적하는 파일
/var/log로그 파일 (시스템 로그, 애플리케이션 로그 등)
/var/mail사용자 메일박스 파일 (일부 배포판에서는 /var/spool/mail 대신 사용됨)
/var/opt/opt에 저장된 패키지의 가변 데이터
/var/run부팅 이후 시스템 정보 (FHS 3.0에서는 /run으로 대체)
/var/spool인쇄 대기열, 메일 대기열 등 대기 작업 저장소
/var/spool/mail사용자 메일박스의 이전 위치 (더 이상 권장되지 않음)
/var/tmp재부팅 후에도 유지되는 임시 파일

참고: /var/run은 FHS 3.0에서 /run으로 대체되었으며, /var/run/run으로의 심볼릭 링크로 제공될 수 있음. wiki pedia

좋아요, Linux에서 /etc/usr 디렉터리는 목적이 완전히 다릅니다. 하나씩 차이점을 자세히 설명할게요.


1️⃣ /etc – 시스템 설정 파일

  • 용도: 시스템과 애플리케이션 설정 파일 저장
  • 주요 특징:

    • 시스템 전반 설정을 담음 (네트워크, 사용자 계정, 서비스 등)
    • 일반적으로 텍스트 기반 설정 파일
    • 실행 파일은 거의 없음, 설정만 존재
  • 예시:

    1
    2
    3
    4
    
    /etc/passwd        # 사용자 계정 정보
    /etc/fstab         # 파일 시스템 마운트 정보
    /etc/ssh/sshd_config # SSH 서버 설정
    /etc/nginx/nginx.conf # Nginx 설정
    
  • 권한: 루트(root) 권한 필요, 시스템 설정 파일이므로 함부로 수정하면 시스템 불안정 가능

2️⃣ /usr – 사용자 관련 프로그램과 라이브러리

  • 용도: 실행 파일, 라이브러리, 공유 리소스 저장
  • 주요 특징:

    • /usr/bin, /usr/sbin → 실행 가능한 프로그램
    • /usr/lib → 라이브러리(.so 파일 등)
    • /usr/share → 프로그램과 무관한 공유 데이터(아이콘, 매뉴얼, 설정 샘플 등)
    • /usr 자체는 root 외부에서 사용 가능한 “read-only” 프로그램 위주
  • 예시:

    1
    2
    3
    
    /usr/bin/python3      # Python 실행 파일
    /usr/lib/libc.so.6    # C 라이브러리
    /usr/share/man/man1/ls.1.gz  # ls 명령어 매뉴얼
    
  • 권한: 일반적으로 읽기 전용으로 사용, 프로그램 실행 위주

3️⃣ 차이점 요약

특징/etc/usr
주 목적시스템/서비스 설정실행 파일, 라이브러리, 공유 데이터
파일 종류설정 파일(텍스트)실행 파일, 라이브러리, 매뉴얼, 데이터
실행 가능 파일거의 없음많음 (/usr/bin, /usr/sbin)
수정 권한루트 필요일반 사용자 읽기 가능 (설치 시만 루트 필요)
예시/etc/passwd, /etc/ssh//usr/bin/python3, /usr/lib/
This post is licensed under CC BY 4.0 by the author.