[ Linux ] 리눅스 파일 시스템 구조

duck-ach·2023년 5월 11일
0

Linux

목록 보기
10/15

/ (root, 루트)

최상의 디렉토리인 루트 디렉토리를 의미하며, 리눅스의 모든 디렉토리들의 시작점이다. 즉, 모든 디렉토리들을 절대경로로 표기할 때에 이 디렉토리로부터 시작해야 한다.

/bin

기본적인 명령어 가 저장된 디렉토리이다.
리눅스 시스템 사용에 있어 가장 기본적이라고 할 수 있는 mv, cp, rm 등과같은 명령어들이 이 디렉토리에 존재하며 root 사용자와 일반사용자가 함께 사용할 수 있는 명령어 디렉토리이다.

/boot

리눅스 부트로더(Boot Loader)가 존재하는 디렉토리이다.
GRUB와 같은 부트로더에 관한 파일들(grub.conf 등)이 이 디렉토리에 존재한다.

부트로더(boot loader)란 운영 체제가 시동되기 이전에 미리 실행되면서 커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 운영 체제를 시동시키기 위한 목적을 가진 프로그램이다.

GRUB(GRand Unified Bootloader)는 Linux의 bootloader로 널리쓰이고 있으며, OS의 커널을 로드하고 몇몇 커널 Parameter를 커널에 넘겨주는 일을 한다.

(GRUB 예시 사진)

/dev

시스템 디바이스(device) 파일을 저장하고 있는 디렉토리이다.
하드디스크 장치파일 /dev/sda, CD-ROM 장치파일 /dev/cdrom 등과 같은 장치파일 들이 존재하는 디렉토리이다.

/etc

시스템의 거의 모든 설정파일이 존재하는 디렉토리이다.
/etc/sysconfig(시스템 제어판용 설정파일), /etc/passwd(사용자관리 설정파일), /etc/named.conf(DNS 설정파일) 등과 같은 파일들이 존재한다.

/etc/mai

sendmail.cf나 access 파일 등의 sendmail의 설정파일들이 존재하는 디렉토리이다.

/etc/ssh

SSH 서비스, 즉 sshd 데몬에서 사용하는 각종 설정파일들이 존재하는 디렉토리이다.

/etc/squid

삼바관련 설정파일들이 저장된 디렉토리

/etc/skel

계정 사용자 생성 시 초기화 파일들이 저장된 디렉토리(useradd 에서 사용함)

/etc/rc.d

부팅 레벨 별 부팅 스크립트 파일들이 존재하는 디렉토리

/etc/rc.d/init.d

시스템 초기화 파일들의 실제 파일들이 존재함.

/etc/pam.d

PAM 설정 정보 파일들이 저장된 디렉토리

/etc/httpd

RPM으로 설치된 아파치 설정파일(httpd.conf 등)들이 저장된 디렉토리

/etc/cron.*

크론 설정파일이 존재하는 디렉토리

/home

사용자의 홈 디렉토리, useradd 명령어로 새로운 사용자를 생성하면 대부분 사용자의 ID와 동일한 이름의 디렉토리가 자동으로 생성된다.

/lib

커널 모듈 파일과 라이브러리 파일 즉, 커널이 필요로 하는 커널 모듈 파일들과 프로그램(C, C++ 등)에 필요한 각종 라이브러리 파일들이 존재하는 디렉토리

Linux의 커널 모듈이란 리눅스 커널이 부팅되어 동작중인 상태에서 디바이스 드라이버를 동적으로 추가하거나 제거할 수 있게 하는 개념이다.
(리눅스는 다른 운영체제와 달리 대부분의 기능을 모듈로 구현할 수 있다.)

/media

DVD, CD-ROM, USB 등과 같은 탈부착이 가능한 장치들의 마운트포인트로 사용되는 디렉토리

/mnt

/media 디렉토리와 비슷한 용도로 탈부착이 가능한 장치들에 대하여 일시적인 마운트포인트로 사용하는 디렉토리

/proc

일명 가상파일시스템 이라고 하는 곳으로 현재 메모리에 존재하는 모든 작업들이 파일 형태로 존재하는 곳이다. 디스크상에 실제 존재하는 것이 아니라 메모리상에 존재하기 때문에 가상파일시스템이라고 부른다.

실제 운용상태를 정확하게 파악할 수 있는 중요한 정보를 제공하며 여기에 존재하는 파일들 가운데 현재 실행중인 커널(kernel)의 옵션 값을 즉시 변경할 수 있는 파라미터 파일들이 있기 때문에 시스템 운용에 있어 매우 중요한 의미를 가진다.

/root

시스템 최고관리자인 root 사용자의 개인 홈 디렉토리

/sbin

ifconfig, e2fsck, ethtool, halt 등과 같이 주로 시스템 관리자들이 사용하는 시스템 관리자용 명령어를 저장하고 있는 디렉토리

/tmp

일명 공용 디렉토리 . 시스템을 사용하는 모든 사용자들이 공동으로 사용하는 디렉토리.
mysql 에서 사용하는 mysql.sock 등과 같은 소켓파일, 또는 아파치에서 사용하는 세션파일 등이 생성되기도 한다. 웹 해킹에 사용되기도 해서 주의를 요망해야한다.

/usr

시스템이 아닌 일반 사용자들이 주로 사용하는 디렉토리.
C++, chsh, cpp, crontab, du, find 등과같이 일반사용자들용 명령어들은 /usr/bin에 위치한다.

/usr/bin

일반 사용자들이 사용 가능한 명령어 파일들이 존재하는 디렉토리

/usr/X11R6

X 윈도우 시스템의 루트 디렉토리

X 윈도 시스템은 디스플레이 장치에 창을 표시하며 마우스와 키보드 등의 입력장치의 상호작용 등을 관리해 GUI 환경의 구현을 위한 기본적인 프레임워크를 제공한다.

/usr/include

C 프로그램에 필요한 헤드파일(*.h) 디렉토리

/usr/lib

/lib에 들어가지 않은 라이브러리 디렉토리

/usr/sbin

/bin에 제외된 명령어와 네트워크 관련 명령어가 들어있는 디렉토리

/usr/src

프로그램 소스(주로 커널소스)가 저장되는 디렉토리

/usr/local

MySQL, Apache, PHP 등과 같은 어플리케이션들을 소스로 컴파일 설치할 때 사용되는 장소

/usr/share/man

명령어들의 도움말을 주는 메뉴얼(manual) 페이지 디렉토리
이 디렉토리에는 시스템에서 사용하는 모든 맨페이지파일(man page)이 존재함

/var

시스템 운용중에 생성되었다가 삭제되는 데이터를 일시적으로 저장하기 위한 디렉토리.

거의 모든 시스템 로그파일은 /var/log 에 저장되고,
DNS의 zone 설정파일은 /var/named에 저장되고,
메일 파일은 /var/spool/mail에 저장되며,
크론 설정파일은 /var/spool/cron디렉토리에 각각 저장된다.

/var/tmp

/tmp 디렉토리와 같은 공용디렉토리.
리눅스 시스템에서 공용 디렉토리는 /tmp/var/tmp둘 뿐이다.

/var/log

시스템로그파일(messages, secure, xferlog 파일 등)이 저장되는 디렉토리

/var/ftp

vsftp 등과 같은 FTP 서비스를 위한 다운로드 될 파일들이다. (FTP 홈디렉토리)

/var/named

BIND . DNS에서 사용하는 zone 파일들이 저장되는 디렉토리

/var/spool/mail

각 계정사용자들의 메일 파일이 저장되는 디렉토리

/var/spool/lpd

프린트를 하기 위한 임시 디렉토리(스풀링 디렉토리)

/var/spool/mqueue

발송을 위한 메일 임시저장 디렉토리

/var/spool/cron

각 사용자들의 cron 설정파일들이 저장된 디렉토리

/var/spool/at

atd, 즉 예약작업에 관한 파일들이 저장되는 디렉토리

/lost+found

파일시스템마다 존재할 수 있는 디렉토리. (최상위 디렉토리인 / 디렉토리에만 존재하지 않음)
이 디렉토리는 fsck 또는 e2fsck 등과 같은 파일 시스템 체크 및 복구 유틸리티 실행후에 주로 생성이 되는 것으로서 복구되지 않은 채로 블록(block)만 존재하는 파일 즉 연결이 끊어진 inode 들이 숫자 파일형태로 존재하는 곳이다.

profile
자몽 허니 블랙티와 아메리카노 사이 그 어딘가

0개의 댓글