미니옵빠의 code stubs
리눅스 디렉토리 구조 본문
@ 리눅스 디렉토리 구조
* 루트 파일 시스템
- 시스템을 부팅시키고 다른 파일 시스템을 마운트할 수 있는 필요한 파일들을 포함
- 파일 시스템을 수리하고 손상된 부분을 백업으로부터 복구하는데 필요한 도구들을 갖추고 잇다.
- 아무 것도 안 두고 빈 폴더로 두는 경우도 있다.
- /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