본문 바로가기

Linux

리눅스 디렉토리 구조 및 기능

리눅스의 디렉토리 구조는 전체적으로 트리(Tree) 구조를 하고 있으며, 명령어의 성격과 내용 및 사용 권한 등에 따라 디렉토리로 구분되고 있습니다. 리눅스 파일 시스템 구조는 기본적인 구조를 제외하고는 사용자의 설정에 따라 달라질 수 있습니다. 하지만 리눅스의 디렉토리 구조는 파일 시스템 표준안(FSSTND, Linux File System Standard)을 기반으로 하는 것이 바람직합니다. 이것은 리눅스상에서 어떻게 파일 시스템을 구성할 것인지에 대한 표준안을 제정하기 위해서 만들어진 문서입니다. 이 표준안을 무조건 따르라는 강제역은 없지만 리눅스 파일 시스템 표준안을 따라 파일 시스템을 구성할 경우 파일들의 위치가 일관되게 유지되어 프로그램 작성, 포팅은 물론 시스템 관리도 쉬워지는 이점이 있기 때문에 대부분의 배포판들이 이 표준안을 지키고 있습니다.


대부분의 리눅스는 FHF(Filesystem Hierarchy Standard) 표준 파일 시스템 계층을 사용하고 같은 목적의 파일들은 같은 장소에 일관되게 모아 관리하므로 시스템 자원이나 프로그램들을 쉽게 찾을 수 있습니다. 다시 말하자면 명령어, 파일 그리고 문서들이 제각기 독립된 장소에서 관리됩니다.





/
- 마운트 되는 리눅스 파일 시스템이 있는 최상위 디렉토리
- 시스템의 근간을 이루는 가장 중요한 디렉토리
- 파티션 설정 시 반드시 존재하여야 함
- 절대경로의 기준이 되는 디렉토리


절대경로 : / 디렉토리 기준

예) /usr/local


상대경로 : 현재 작업 디렉토리 기준

예) ./local


/bin

- binarise의 약어
- 리눅스의 기본 명령어(binary)들이 들어있는 디렉토리
- 시스템을 운영하는데 기본적인 명령어들이 모여있는 디렉토리

- 부팅에 필요한 명령어들이 들이 위치하며 부팅 후 시스템의 사용자들이 사용할 수 있는 일반적인 명령어들도 위치하고 있음


/sbin
- 시스템 관리에 관련된 실행 명령어들이 들어있는 디렉토리
- 시스템 점검 및 복구 명령, 시스템 초기 및 종료 명령 등 시스템 관리에 관련된 실행파일들 존재.


/lib
- 프로그램들이 의존하고 있는 라이브러리 파일들 존재
- /lib/modules : 커널 모듈 파일들 존재

- 대부분의 라이브러리들은 링크로 연결되어 있음


/proc

- 시스템의 각종 프로세서, 프로그램 정보, 하드웨어적인 정보들이 저장됨

- 가상 파일시스템으로 /dev 디렉토리와 마찬가지로 하드디스크 상에 물리적인 용량을 갖지 않음(실제로 존재하지 않음)

- 실제 하드 디스크에 저장되지 않고 커널에 의해서 메모리에 저장됨

- 현재 시스템의 설정을 보여줌
- 커널의 어떤 기능을 제어할 수 있는 역할을 가지고 있음
- 대부분 읽기 전용이나, 일부 파일중에는 쓰기가 가능한 파일이 존재 하는데 이러한 파일들에 특정 값을 지정하면 커널 기능이 변하게 됨
- 이 디렉토리 내에 있는 파일을 cat 명령을 이용하여 보면 시스템 정보를 확인 할 수 있음

예) 인터럽트 정보 확인 --> cat /proc/interrupts


/etc
- 시스템 환경 설정 파일이 있는 디렉토리
- 네트워크 관련 설정파일, 사용자 정보 및 암호정보, 파일 시스템 정보, 보안파일, 시스템 초기화 파일등 중요 설정 파일들의 위치한 디렉토리
- /etc/CORBA : Common Object Request Broker Architecture (COBRA)에 관한 파일이 들어있음
- /etc/X11 : 엑스 윈도우 설정에 관련된 파일들이 있음
- /etc/cron.d : crontab 명령의 설정파일이 있음
- /etc/cron.daily : 매일 작동하게 하는 crontab 스크립트 파일이 존재
- /etc/gnome : GTK+ 정의파일들이 있음
- /etc/httpd : 아파치 웹 서버의 설정 및 로그파일이 있음
- /etc/logrotate.d : logrotate 설정 파일들이 있음
- /etc/mail : 센드메일과 관련된 파일이 있음
- /etc/ppp : ppp 설정에 관련된 파일들이 있음
- /etc/profile.d : 쉘 로그인 하여 프로파일의 실행되는 스크립트에 대한 정의가 있음
- /etc/rc.d : 시스템 초기화와 관련된 스크립트가 존재
- /etc/samba : 삼바에 관련된 파일들이 있음
- /etc/security : 터미널 보안에 관련된 설정이 있음
- /etc/skel : 새로운 사용자를 추가할 때 자동적으로 생성되는 디렉토리와 파일이 있음
- /etc/squid : squid 프록시 서버에 관련된 파일이 있음
- /etc/ssh : secure shell 설정 파일이 있음
- /etc/sysconfig : 시스템과 네트워크 설정을 담고 있음
- /etc/xinetd.d : 슈퍼데몬 xinetd.d의 서비스 영역을 설정하는 디렉토리


/var

- 시스템에서 사용되는 동적인 파일들이 저장됨(가변 자료 저장 디렉토리)

- 시스템 운영중에 시스템 자료 데이터가 변경될 때 변경된 자료들이 저장되는 곳

- 주로 시스템 작동기록(log)들을 저장

- 각종 시스템 로그파일, 사용자 로그인에 대한 보안기록, 그리고 메일서버를 운영한다면 전송되는 메일들을 임시로 저장

- 레드헷 7.0에서부터는 /home 디렉토리에 저장되던 /home/httpd 디렉토리가 /var/www로 변경되어 저장됨, /home/ftp는 /var/ftp로 변경
- /var/log : 시스템에 발생된 일들에 대한 기록 파일이 있음
- /var/named : 네임서버 설정 파일들 존재
- /var/spool/mail : 수신 메일을 사용자 명으로 기록하는 디렉토리


/usr
- 일반 사용자들을 위한 대부분의 프로그램 라이브러리 파일들이 위치
- /usr/bin : 응용 프로그램의 실행 파일이 위치
- /usr/sbin : 주로 네트워크 관련 실행 명령어와 실행 데몬들을 많이 포함하고 있음
- /usr/X11R6 : X-window 시스템에 관련된 파일 존재
- /usr/include : 기본 C 라이브러리 헤더 파일과 각종 라이브러리 헤더파일들이 있음
- /usr/lib : /usr/bin과 /usr/sbin에 있는 실행 바이너리를 실행하기 위한 라이브러리 존재
- /usr/src : 프로그램소스 및 커널 소스들이 보관되어 있는 곳
- /usr/man : 매뉴얼 페이지가 담겨있는곳
- /usr/local : 새로운 프로그램들이 설치되는 곳 (windows의 Program Files 와 유사)


/mnt
- 다른 장치들을 마운트 할때 일반적으로 사용하는 디렉토리
- 다른 디렉토리를 사용하여도 됨


/home
- 일반 사용자의 홈 디렉토리가 만들어 지는 디렉토리
- 사용자 계정을 만들면 게정과 같은 이름으로 새로운 사용자 디렉토리가 /home 디렉토리의 하위 디렉토리로 생성됨


/boot
- 부팅에 핵심적인 커널 이미지와 부팅 정보 파일을 담고 있는 디렉토리
- /etc/lilo.conf에서 지정한 커널 부팅 이미지 파일이 들어 있으며 부팅시 매우 중요한 디렉토리


/root
- 슈퍼유저(root) 사용자의 홈 디렉토리
- / 와 /root 디렉토리는 부르는 이름은 같지만 서로 다름


[출처]

http://kwonhanseung.blogspot.kr

http://asmlove.co.kr