본문 바로가기
Linux

리눅스 디렉터리

by Skogkatt의 개인 블로그 2019. 7. 7.
반응형

 

리눅스 디렉터리 구조

  • 파일 시스템이 있는 최상위 디렉터리
  • 모든 디렉터리의 출발점

/boot [boot]

  • 리눅스의 부트로더[각주:1]가 있는 디렉터리
  • 부팅 시 커널 이미지와 부팅 정보 파일 저장

/proc [process]

  • 가상 파일 시스템
  • 현재 메모리에 존재하는 작업들이 파일 형태로 존재
  • /proc 에서 볼 수 있는 것은 실제 드라이브에 저장되는 것이 아니라 메모리 상에 저장되어 있다.

/lib [library]

  • 커널이 필요로 하는 각종 라이브러리 파일, 커널 모듈 파일 등이 존재
  • 공유 라이브러리에는 많은 프로그램에서 공통으로 사용하는 함수들이 들어있어 디스크의 공간 절약 가능 (프로그램마다 동일한 코딩을 할 필요가 없음)
정적 라이브러리
  • 컴파일 과정에서 공유 라이브러리의 루틴을 사용하지 않고 프로그램 내에 라이브러리 루틴의 복사본을 갖도록 함
동적 라이브러리
  • 실행 파일 내부에 라이브러리를 넣어두지 않고 프로그램을 실행할 때 가져와 사용하므로 메모리 효율성이 높음

/bin [binary]

기본적인 명령어가 저장된 디렉터리

  • 리눅스에서 자주 사용하는 mv, cp, rm 등의 명령어들이 존재
  • root와 일반 사용자가 함께 사용할 수 있다.

/dev [device]

시스템 디바이스 파일들을 저장하는 디렉터리

  • 하드 디스크 장치 파일 (/dev/sda), CD-ROM 장치파일(/dev/cdrom)과 같은 장치 파일들이 여기에 위치함

/etc [etcetera]

시스템 환경 설정 파일과 부팅 관련 파일들이 저장된 디렉터리

  • /etc/rc.d : 부팅 레벨별 부팅 스크립트 파일들이 저장
  • /etc/rc.d/init.d : 시스템 초기화 파일들이 저장
  • /etc/mail : sendmail 설정 파일 저장 (sendmail.cf, access파일 등)
  • /etc/xinetd.d/ : xinetd[각주:2] 서비스에 사용되는 설정 파일
  • /etc/ssh/ : ssh 서비스를 위한 파일이 저장
  • /etc/ssh/sshd : sshd[각주:3]에서 사용되는 각종 설정 파일들이 저장됨
  • /etc/samba/ : samba[각주:4]관련 설정 파일들이 저장
  • /etc/group : 그룹의 정보를 저장
  • /etc/passwd : 자원을 사용할 수 있는 사용자 목록 저장/etc/shadow : /etc/passwd의 두번째 필드(패스워드 부분)의 암호화 관리 및 계정·패스워드 만기일 설정

/root [root]

시스템 관리자용 홈 디렉터리

/sbin [system binary]

  • 관리자가 사용하는 시스템 표준 명령어나 시스템 관리와 관련된 실행 명령어 저장
  • ifconfig, e2fsck, ethtool, halt 등

usr [user]

시스템이 아닌 일반 사용자들이 사용하는 디렉터리

  • 네트워크를 이용해 여러개의 시스템을 연결할 경우 이 디렉터리를 공유헤 설치된 프로그램을 활용할 수 있다.
  • 읽기 전용으로 마운트 되어야 하며, 가변자료는 /var에 심볼릭 링크로 사용되어야한다.
  • /usr/bin/ : 일반 사용자들이 사용 가능한 명령어 파일 디렉터리[각주:5]
  • /usr/X11R6/ : X윈도우 시스템의 루트 디렉터리
  • /usr/include/ : C 프로그램을 위한 include 파일들이 저장. (stdio.h 같은 헤더 파일들)
  • /usr/include/sys :리눅스 시스템 레벨의 프로그래밍을 할 때 사용되는 파일 저장
  • /usr/lib/ : /lib에서 찾을 수 있는 'stub'와 'static'같은 라이브러리를 포함하며, 많은 프로그램들이 이 디렉터리 안에 사양 파일을 저장[각주:6]
  • /usr/local/ : MySQL, Apache, PHP 등과 같은 어플리케이션들을 소스로 컴파일할 때 사용되는 디렉터리
  • /usr/share/man/ : 시스템에서 사용하는 모든 man page 파일이 존재하는 manuel 디렉터리

/home [home]

  • 사용자의 홈 디렉터리가 위치
  • 사용자를 추가하면 새로운 사용자의 디렉터리가 이곳에 생성

/var [var]

시스템에서 사용되는 가변적인 파일들을 저장하는 디렉터리

  • 로그파일, 스풀링(spooling), 캐싱(caching)등 시스템 정상 작동 중 콘텐츠가 지속적으로 갱신되는 파
  • /var/tmp/ : /tmp와 같은 공용 디렉터리로 1777 permission을 가진다
  • /var/log/ : 시스템 로그 파일이 저장되는 디렉터리
  • /var/named/ : DNS에서 사용하는 zone 파일들이 저장되는 디렉터리
  • /var/spool/ : lpd[각주:7], mqueue[각주:8], cron[각주:9], at[각주:10]와 같은 스풀링 작업에 필요한 파일 저장

/tmp [temp]

  • 각종 프로그램이나 프로세스 작업을 할 때 임시로 생성되는 파일 저장
  • 모든 사용자에 대해 읽기와 쓰기가 허용
  • Sticky bit가 설정되어 파일의 소유자만이 파일을 지울 수 있음.

/mnt [mount]

  • 파일 시스템을 일시적으로 마운트할 때 사용
  • /media 와 비슷한 용도로 사용

/lost+found

  • 결함이 있는 파일에 대한 정보가 저장되는 디렉터리
  • 파일 시스템의 이상 유무를 진단하고 복구하는 fsck또는 e2fsck 와 같은 시스템에 의해 사용된다.
  • 손상된 파일이나 디렉터리를 /lost+found 으로 연결한 뒤 오류를 수정. 평상시에는 null파일 링크에 의해 비어있는 상태로 존재한다.
  • 여러 디렉터리에 존재할 수 있음.

 

 

  1. 운영체제가 시동되기 전, 미리 실행되면서 커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 운영 체제를 시동하기 위한 목적을 가진 프로그램들 [본문으로]
  2. 오픈 소스 슈퍼 서버 데몬. 많은 유닉스 계열 시스템에서 돌아가며 인터넷 기반 연결을 관리함. inetd의 대체 [본문으로]
  3. 서버에서 SSH 서비스를 작동시키기 위한 데몬 [본문으로]
  4. SMB (Server Message Block)는 윈도우가 설치된 컴퓨터에서 파일 공유, 프린터와 같은 리소스 연결에 사용되는 프로토콜이다. Samba는 이 SMB 프로토콜을 리눅스에서 구현한 것이다. [본문으로]
  5. /bin과 /usr/bin의 차이점 [본문으로]
  6. 프로그램을 컴파일 할 때, 프로그램은 /usr/lib에 있는 파일들과 link되며 이 라이브러리 안에 실행 코드가 필요 할 때, /lib를 찾는다 [본문으로]
  7. 스풀링 [본문으로]
  8. 발송을 위한 메일 일시저장 [본문으로]
  9. 각 사용자들의 cron 설정 파일 [본문으로]
  10. 예약 작업에 관한 파일 [본문으로]
반응형

'Linux' 카테고리의 다른 글

iptables  (0) 2020.03.31
[Kali Linux] VirtualBox에 Kali Linux 설치  (0) 2020.02.27
LILO(Linux Loader)  (0) 2019.10.11
Linux Mint  (0) 2019.07.14
[File System] ext (EXTended file system)  (0) 2019.07.13

댓글