1993년 표준 파일 시스템을 구축하기 위한 노력이 시작된 이래 리눅스의 디렉토리 구조는 1994년 릴리즈된 FSSTND라는 표준을 따르게 되었다. 이 과정에서 BSD도 참여하며 FSSTND는 유닉스 전반에 대해 일반화되며, 파일시스템 계층구조 표준(FHS : Filesystem Hierarchy Standard)이라는 이름으로 정립되었다. 현재 이 표준에는 여러 벤더들이 참여하고 있으며, 제안된 표준을 100% 따르는 것은 아니지만 기본 골자는 같이 하고 있는 추세다. 따라서 이제부터 설명하려는 내용은 리눅스를 설치하고 / 에서 ls 한 번 쳐 보면 어디서나 대충 비슷하게 볼 수 있는 내용이라는 뜻이다.

이 표준이 만들어진 자세한 과정에 대해서는 http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard 를 참고하자.

  • / : 모든 파일 시스템이 연결되는 루트. 여러 파일 시스템을 연결하고 하드디스크를 추가해도 한 시스템에서 루트는 하나다. 어디에서 거슬러 올라가도 도착하는 계층구조의 최상층이다.
  • /bin/ : 주요 명령어 바이너리가 들어있다. 싱글 유저 모드일 때에도 사용할 수 있으며 모든 사용자들에게 필요한 외부 명령어들(cat, ls, cp 등등)은 거의 다 이곳에 들어있다.
  • /boot/ : 부트로더와 커널 관련 파일들이 들어있다(kernels, initrd). 종종 분리된 파티션에 두기도 한다.
  • /dev/ : 시스템의 장치 파일 디렉토리. 유닉스 계열에서는 각종 주변장치(프린터, 하드디스크 등등)도 파일과 같이 인식한다. /dev/null은 실제로 연결되는 장치는 아니지만 포함되어 있다.
  • /etc/ : 시스템 환경 전반을 설정하는 파일. 어원은 et cetera 라고 한다. 라틴어로 “기타등등”이라는 뜻.
  • /etc/opt/ : /opt/에 설치되는 파일들을 위한 설정. 추가로 설치되는 애플리케이션들의 설정을 관리한다.
  • /etc/X11/ : X윈도우 관련 설정. 이 디렉토리 아래 /etc/X11/xdm에서 XDM(X Window Display Manager)의 설정을 관리한다.
  • /etc/sgml/ :  SGML 관련 설정
  • /etc/xml/ :  XML 관련 설정
  • /home/ : 사용자 홈 디렉토리. 개인 설정이나 개인적으로 사용하는 파일들이 들어있다. 혼자 쓰는 시스템이 아니면 파티션을 따로 잡는게 낫다.
  • /lib/ : /bin이나 /sbin의 바이너리들이 참조하는 주요 공유 라이브러리들나 커널 모듈 등이 설치되어 있다.
  • /media/ :  CD-ROM 같은 끼웠다 뺐다 하는 미디어들을 마운트하는 위치. 별도로 주지 않고 그냥 mnt에 마운트하는 경우도 많다.
  • /mnt/ : 가장 일반적인 마운트 포인트 디렉토리
  • /opt/ : 추가로 설치한 어플리케이션이 설치된 디렉토리.EXT2 파일시스템 v2에서 새롭게 정해진 디렉토리로 /usr/에 설치되는 프로그램과 분리하고자 할때 사용하는 디렉토리이다..
  • /proc/ : 현재 시스템, 커널과 프로세스의 상태를 텍스트 형태로 보여주는 가상 파일 시스템
  • /root/ : root의 홈 디렉토리
  • /sbin/ : 주요 시스템 명령어 바이너리(init, route, ifup 등). 관리자용 명령어. 이곳의 파일들은 대부분 시스템과 직접적인 연관이 있어 보안이 필요하다.
  • /tmp/ : 임시 작업 디렉토리. /var/tmp도 비슷한 역할을 한다. X 윈도우 버퍼링이 일어나기도 하며 프로그램 설치시의 임시 작업공간으로도 쓰인다. 시스템이 재부팅되는 동안 보존되지 않는다.
  • /usr/ : 사용자 데이터나 공유해서 쓰는 유틸리티, 문서, 프로그램 등이 들어있다. 이 아래에서 다시 파일 시스템 계층구조가 이루어지며 유닉스 파일 시스템에서의 두번째의 큰 계층구조가 된다. 대부분의 파일들이 이 아래에 속한다.
    • /usr/bin/ : 싱글 유저 모드에서는 사용되지 않는 명령어 바이너리. 모든 사용자가 이용할 수 있다.
    • /usr/include/ : 표준 인클루드 파일
    • /usr/lib/ : /usr/bin 이나 /usr/sbin에서 참조하는 라이브러리
    • /usr/sbin/ : 네트워크 데몬 등, 시스템 전반보다는 각 서비스에 영향을 끼치는 관리자 명령어
    • /usr/share/ : 시스템 독립적인 공유 데이터
    • /usr/src/ : 커널 소스나 /usr에 설치되는 프로그램 소스 등 소스코드
    • /usr/X11R6/ : X 윈도우 시스템이 설치된 경로
    • /usr/local/ : 세번째 계층구조. 이 호스트에서 따로 설정되는 로컬 서비스들이 들어있다. bin, lib, share 등의 디렉토리등을 포함한다.
  • /var/ : 로그나 스풀 파일, 임시 이메일 파일 등 내용이 수시로 바뀌는 파일들이 위치한다.
    • /var/lib/ : 상태 정보. 현재 실행중인 프로그램에 의해 수정되는 정보들(데이터베이스, 메타데이터 등)
    • /var/lock/ : 잠금 파일. 현재 리소스를 사용하는 파일을 추절하Lock files. Files keeping track of resources currently in use.
    • /var/log/ : 각종 로그 파일
    • /var/mail/ : 사용자 메일박스
    • /var/run/ : 마지막으로 부팅한 후 실행중인 시스템에 대한 정보(로그인한 사용자, 실행중인 데몬 등)
    • /var/spool/ : 작업 시작을 기다리며 스풀링을 하는 경로. 프린트 큐나 읽지 않은 메일 등이 스풀된다
    • /var/spool/mail/ : 사용자가 읽지 않았거나 쓰다가 중단한 메일 등이 저장된다.
    • /var/tmp/ : 임시 작업 디렉토리. 이 디렉토리의 내용은 시스템이 재부팅되는 동안에도 보존된다.

    그밖에 마운트포인트마다 존재하는 lost+found가 있다. (파일 시스템에 문제가 생길 경우 fsck로 검사하는데, 이때 손상된 자료를 이 디렉토리에 연결하여 수정한다)