미니옵빠의 code stubs

리눅스 디렉토리 구조 본문

OS/Linux

리눅스 디렉토리 구조

미니옵빠 2011. 8. 28. 19:41
출처 우주의 중심은..........나@.@!! | 지지
원문 http://blog.naver.com/plsgg/33300172

@ 리눅스 디렉토리 구조

 * 루트 파일 시스템

- 시스템을 부팅시키고 다른 파일 시스템을 마운트할 수 있는 필요한 파일들을 포함

- 파일 시스템을 수리하고 손상된 부분을 백업으로부터 복구하는데 필요한 도구들을 갖추고 잇다.

- 아무 것도 안 두고 빈 폴더로 두는 경우도 있다. 

 

- /bin (binary)

 : 부팅할 때 필요한 명령어들이 들어 있다.

 : 부팅 후에는 일반 사용자들도 이곳의 명령어들을 사용할 수 있다.

 

- /sbin

 : 주로 시스템 관리를 위한 명령어들이 보관

 : 일반 사용자들에게는 제한적으로 사용을 허용

 

- /root

 : 루트 사용자의 홈 디렉토리

 

- /etc

 : 각 머신의 고유한 설정 파일들이 위치

 

- /lib

 : 공유 라이브러리가 있는 곳

 : 루트 파일시스템에 있는 프로그램들이 사용

 

- /lib/modules

 : 로딩 가능한 커널 모듈들이 위치하는 곳

 : 특별한 경우, 장애를 복구하기 위해 시스템을 부팅할 때도 커널 모듈이 필요

   (예 : 네트워크 드라이버, 파일 시스템 드라이버)

 

- /dev

 : 장치 파일들이 있는 곳

 : 하드웨어 장치를 파일 처럼 다룰 수 있음

 

 

 

- /boot

 : LILO 가은 부트스트랩 로더가 사용하는 공간

 : 커널 이미지가 위치

부트스트랩 로더란 부트 이미지의 위치를 파악하여 부팅을 시작시켜 주는 프로그램.

부트이미지란 부팅에 사용되는 커널 이미지.

 

- /mnt

 : 시스템 관리자에 의해 임시로 마운트된 파일시스템들이 위치할 곳

 

 

 * /etc 디렉토리

- /etc/rc OR /etc/rc.d OR /etc/rc?.d

 : 시스템 시작시나 실행 레벨이 바뀔 때 실행되는 스크립트들 혹은 그런 스크립트를 모아둔 디렉토리이다.

 

- /etc/passwd

 : 사용자들의 username, 실제 이름, 홈 디렉토리 위치, 기타 정보들이 수록

 

- /etc/fdprm

 : 플로피 디스크 파라미터 테이블

 

- /etc/fstab

 : mount -a 명령에 의해 자동으로 마운트될 파일시스템들이 나열

 : 리눅스에 경우 swapon -a 명령에 의해 사용되는 스왑 영역에 대한 정보도 수록

 

- /etc/group

 : 사용자 그룹의 정보가 기재

 

- /etc/inittab

 : init 설정 파일

 

- /etc/issue

 : getty가 로그인 프롬프트가 뜨기 전에 이 파일의 내용을 화면에 뿌림

 

- /etc/magic

 : file 명령의 설정 파일

 : 다양한 파일 형식들에 대한 정보가 포함.

 : file 명령은 이것을 기반으로 파일의 정체를 추측

 

- /etc/motd (Message Of The Day, 오늘의 메시지)

 : 로그인할 때마다 자동으로 이 파일의 내용이 출력

 

- /etc/mtab

 : 현재 마운트되어 있는 파일 시스템의 목록이 수록

 : mount 명령에 의해 내용이 갱신

 : df 명령이 이 파일을 읽음

 

- /etc/shadow

 : shadow 패스워드 소프트웨어가 설치되어 있다면 여기에 패스워드를 보관

 : /etc/passwd 파일에서 암호 부분만 떼어서 여기에 저장

 

- /etc/login.defs

 : login 명령의 설정 파일

 

- /etc/printcap

 : /etc/termcap과 비슷한 것이지만 프린터를 위한 것

 

- /etc/profile, /etc/csh.login, /etc/csh.cshrc

 : 시스템이 시작될 때나 로그인이 이루어질 때 각 쉘에 의해 실행되는 파일

 

- /etc/securetty

 : 루트의 로그인이 허용되는 안전한 터미널을 지정

 : 보통은 가상 콘솔들만 나열되어 있는데, 네트워크를 통한 침입을 막기 위한 것

 

- /etc/shells

 : chsh 명령으로 로그인 쉘을 바꿀 때 이 곳에 나열된 쉘들만 지정 가능

 : ftpd 서버 프로세스가 이 파일에 있는 쉘과 비교하여 일치하지 않으면 로그인 거부

 

- /etc/termcap

 : 여러가지 터미널들의 특성을 데이터베이스로 만들어 둔 것

 : 다양한 종류의 터미널들이 각각 어떤 "이스케이프 시퀀스(escape sequence)"를 통해 제어될 수 있는지 기재되어 있음

 :  프로그램들은 현재 터미널의 종류가 어떤 것인지 확인하고 이 파일에서 해당 터미널에 알맞는 이스케이프 시퀀스를 찾아 사용

 

 

 * /dev

- 모든 하드웨어 장치에 대한 장치 파일들을 가지고 있다.

- 장치 파일들의 이름은 특별한 명명법을 가지고 있는데, 이것은 Linux device list 문서에 설명되어 있음

- 장치 파일들은 설치시 생성됨

- 장치 파일 덜치 후 /dev/MAKEDEV 스크립트에 의해 생성될 수 있음

- /dev/MAKEDEV.local 은 시스템 관리자가 작성하는 스크립트로서 특정한 로컬 장치 파일들을 생상하거나 링크를 만드는 데 쓰인다.

 

 

 * /usr

- 보통 /usr 디렉토리에 배포판에서 제공하는 파일들이 들어감

- 따로 설치되는 프로그램은 /usr/local 에 들어가는게 일반적임

- 윈도우의 "Program Files"와 비슷하다.

 

- /usr/X11R6

 : X Window System의 모든 파일들이 들어있음

 

- /usr/X386

 : X Window System과 비슷한 것으로 X11 Release 5를 위한 것

 

- /usr/bin

 : 사용자들을 위한 대부분의 명령어들이 들어 있음

 : /bin, /usr/local/bin에 있기도 함

 

- /usr/sbin

 : 시스템 관리를 위한 명령들 중, 루트 파일시스템에는 있을 필요가 없는 명령어들이 모여 있음

 

- /usr/man, /usr/info, /usr/doc

 : 각각 메뉴얼 페이지, GNU Info, 기타 문서들을 위한 공각

 

- /usr/include

 : C programming language를 위한 헤더 파일들이 있음

 

- /usr/lib

 : 프로그램들과 서브시스템들의 고정적인 데이터 파일들이 위치

 : 전체 시스템에 폭넓게 적용될 수 있는 site-wide한 설정 파일들이 위치

 

- /usr/local

 : 내부적인 용도의 프로그램들과 기타 파일들이 위치

 

 

 * /var

- 시스템 운용 중 계속 갱신되는 데이터들이 모여 있음

 

- /var/catman

 : 포맷된 매뉴얼 페이지(man page)들이 잠시 대기(chach)하는 곳

 

- /var/lib

 : 일반적인 시스템 운용시 계속 갱신되는 파일들을 위한 공간

 

- /var/local

 : /usr/local 아래에 설치된 프로그램(시스템 관리자가 설치한 프로그램)들의 다양한 데이터가 보관되는 곳

 

- /var/lock

 : 잠금 파일(lock file)이 있는 곳

 

- /var/log

 : 다양한 프로그램들의 로그 파일이 있는 곳

 : 예로 login과 syslog의 로그 파일이 위치

 : login -> /var/log/wtmp에 위치, 시스템의 모든 로그인, 로그아웃 정보를 기록

 : syslog -> /var/log/messages에 위치, 커널과 시스템 프로그램들의 모든 메시지를 기록

 

- /var/run

 : 시스템의 현재 정보들을 담고 있는 파일들이 위치

 : 예로 현재 로그인한 사용자들에 대한 정보는 /var/run/utmp 에 기록

 

- /var/spool

 : 메일이나 뉴스, 프린터 큐 같은, 대기 상태에 있는 작업들을 위한 디렉토리

 

- /var/tmp

 : /tmp에 있는 임시 파일들보다는 좀 더 오래 유지할 필요가 있는 임시 파일들이 위치

 

 

 * /proc (process)

- /proc 파일시스템은 실제로 존재하지 않음.

- 커널이 메모리 상에 만들어 놓은 것임. 즉 디스크에 존재 하지 않음

- 주로 프로세스에 대한 정보를 제공

- /proc 파일시스템의 내용을 다른 곳에 복사하지만 않는다면, /proc 안의 내용은 아무런 디스크 공간을 차지 하지 않는다.

 

- /proc/1

 : 프로세스 번호 1번에 대한 정보가 있는 디렉토리

 : 각 프로세스는 자신의 프로세스에 대한 정보가 있는 디렉토리가 있다.

 : 자신의 프로세스 식별번호(process identification number)가 그 디렉토리 이름이다.

 

- /proc/cpuinfo

 : 프로세서의 정보가 들어있음

 : cpu 타입, 모델, 제조회사, 성능 등

 

- /proc/device

 : 현재 커널에 설정되어 있는 장치의 목록을 볼 수 있음

 

- /proc/dma

 : 현재 어느 DMA 채널이 사용 중인지를 알려줌

 

- /proc/filesystems

 :  어떤 파일시스템이 커널에 설정되어 있는지 알려줌

 

- /proc/interrupts

 : 현재 어느 인터럽트가 사용 중인지, 그리고 얼마나 많이 사용되었는지 알려줌

 

- /proc/ioports

 :  현재 어느 I/O 포트가 사용 중인지 알려줌

 

- /proc/kcore

 : 시스템에 장착된 실제 메모리의 이미지이다. (즉 실제 이미지를 본뜬 것이다.)

 : 프로그램이 필요로 하는 부분의 이미지만 그때 그때 만들어 내도록 되어 있어서 실제 메모리를 차지하고 있는 것은 아님

 

- /proc/kmsg

 : 커널이 출력하는 메시지가 담겨 있음

 : syslog 파일에도 기록됨

 

- /proc/ksyms

 : 커널이 사용하는 심볼들의 표를 보여줌

 

- /proc/loadavg

 : 시스템의 평균부하량(load average)을 보여줌

 : 지금 시스템이 해야하는 일들이 얼마나 많은지 알려주는 세가지 지표를 볼 수 있음

 

- /proc/meminfo

 : 메모리 사용량에 관한 정보를 보여줌

 : 실제 메모리와 가상 메모리를 모두 다룸

 : free 명령은 kilobyte 단위로 나타내 주고, 그 위에 유용한 정보를 덧붙여 줌

 

- /proc/modules

 : 현재 어떤 커널 모듈이 사용되고 있는지를 알려줌

 

- /proc/net

 : 네트워크 프로토콜들의 상태에 대한 정보가 들어 있음

 

- /proc/self

 : 이 디렉토리를 들여다보는 프로그램 자신의 프로세스 디렉토리로 링크가 되어 있음

 

- /proc/stat

 : 시스템의 상태에 관한 다양한 정보가 있음

 : 부팅된 후 page fault가 몇번 일어났는가 하는 것들을 알 수 있음

 

- /proc/uptime

 : 시스템이 얼마나 오랫동안 살아 있었는지 보여줌

 

- /proc/version

 : 커널의 버전을 알려줌

 

 

@ 원본

The Linux System Administrators' Guide (리눅스 시스템 관리자 가이드 Version 0.6.2)

http://wiki.kldp.org/Translations/html/SysAdminGuide-KLDP/book1.html