---
id: FHS(Filesystem Hierarchy Standard) 20260403
created: 2026-04-03 11:04
tags:
aliases:
---
## 💡 생각  
파일구조에 자유도를 억제해서 어느정도 규격화를 해놓은 것,
너무 자유로우면 무슨 파일이 어디에 있는지 확인하기가 매우 어려울텐데
어떤 종류의 파일은 어디에 있어야 하고 이런 규칙을 정의해서
어떤 리눅스를 사용하든 어느정도의 규칙이 존재하기 때문에 원하는 파일을 어느정도 쉽게 찾아갈 수 있게끔 함

---
## 📑 개념
뿌리가 되는 **루트(`/`)** 아래에 모든 것이 가지처럼 뻗어 나가는 **역트리 구조**
리눅스나 유닉스 계열 운영체제를 사용하다 보면 폴더 구조가 왜 이렇게 복잡한지 궁금할 때가 있죠.
**FHS(Filesystem Hierarchy Standard)**는 바로 이런 혼란을 방지하기 위해 파일과 디렉터리의 위치를 정의한 표준 규격입니다.

덕분에 사용자나 소프트웨어 개발자는 어떤 리눅스 배포판을 사용하더라도 특정 파일이 어디에 있을지 예측할 수 있습니다.

## 📌 상세

- **/ (root)**: 모든 파일과 디렉터리의 시작점
  : 모든 디렉토리의 시작점입니다. 윈도우의 `C:\`와 비슷하지만, 리눅스에서는 모든 장치(하드디스크, USB 등)가 이 아래의 특정 폴더에 연결(마운트)됩니다.
    
    --- 📂 주요 디렉토리
    - **/bin**: 필수적인 사용자 명령 파일 (Binaries)
      : 모든 사용자가 쓸 수 있는 기본 명령어들이 들어 있습니다.
      
    - **/sbin**: 시스템 관리용 실행 파일 (System Binaries)
      : 시스템 관리자(Root)가 사용하는 명령어들이 모여 있습니다.
      
    - **/etc**: 시스템 설정 파일 (Editable Text Configurations)
      : **가장 중요한 폴더 중 하나입니다.** 시스템의 모든 **설정 파일**이 들어 있습니다.
      : 사용자 정보(`/etc/passwd`), 네트워크 설정, 설치된 프로그램의 환경 설정 등이 모두 여기에 텍스트 파일로 저장됩니다.
      
    - **/home**: 일반 사용자들의 홈 디렉터리
      : 일반 사용자들의 개인 공간, 예를 들어 계정명이 `dihwang`이라면 `/home/dihwang` 폴더가 생기고, 그 안에 바탕화면, 다운로드, 개인 설정 등이 저장됩니다.
      : 관리자(root)를 제외한 모든 사용자는 자신의 홈 디렉토리 밖에서는 파일을 맘대로 만들거나 지울 수 없습니다.
      
    - **/root**: 시스템 관리자(root)의 홈 디렉터리
      : 시스템 최고 관리자인 **root 사용자의 홈 디렉토리**입니다. 일반 사용자 홈 디렉토리(`/home`)와는 별도로 관리됩니다.
    
    ---
    
    --- ⚙️ 시스템 운영을 위한 폴더들
    - **/usr**: 사용자 관련 모든 프로그램과 데이터 (User System Resources)
      : 사용자가 설치한 프로그램과 데이터들이 모이는 곳입니다. 윈도우의 `C:\Program Files`와 가장 비슷합니다.
      : `/usr/bin`: 나중에 설치한 응용 프로그램들의 실행 파일.
      : `/usr/lib`: 프로그램 실행에 필요한 공유 라이브러리들.
      
    - **/var**: 가변적인 데이터 저장소 (Variable)
      : **내용이 수시로 변하는 데이터**가 저장됩니다.
      : `/var/log`: 시스템 로그가 쌓이는 곳입니다. 서버가 왜 죽었는지 확인할 때 필수입니다.
      : `/var/www`: 웹 서버(Apache, Nginx)의 소스 파일들이 기본적으로 위치하는 곳입니다.
      
    - **/tmp**: 임시 파일 저장소 (Temporary)
      : **임시 파일** 저장소입니다. 부팅 시나 일정 시간이 지나면 자동으로 삭제되는 파일들이 머뭅니다. 누구나 파일을 쓰고 지울 수 있습니다.
      
    - **/dev**: 장치 파일 (Devices)
      : 리눅스는 **모든 것을 파일로 관리한다**는 철학이 있습니다. 마우스, 키보드, 하드디스크 같은 물리적인 장치들도 이 폴더 안에 파일 형태로 존재합니다.
      
    - **/mnt**: 수동으로 마운트하는 임시 지점 (Mount)
      : 관리자가 수동으로 하드디스크 등을 연결할 때 쓰는 임시 장소.
    - **/media**: 외부 장치 자동 마운트 지점 (USB, CD-ROM 등)
      : USB나 CD-ROM을 꽂으면 자동으로 연결되는 곳.
      
    - **/opt**: 추가 패키지 소프트웨어 설치 (Optional)
        
    - **/boot**: 부팅 관련 핵심 파일
      
    - **/srv**: 시스템이 제공하는 서비스 데이터 (Service)
      : 요즘은 `/var/www` 등을 더 많이 씁니다.
        
    - **/tmp**: 임시 파일 저장소 (Temporary)
        
    - **/lib**: 공유 라이브러리 및 커널 모듈 (Libraries)
---
