리눅스 디렉토리 구조 설명
- IT/리눅스(Linux)
- 2020. 5. 17.
리눅스 CentOS, Ubuntu 등 운영체제를 사용하면서
접하게 될 시스템 디렉토리들의 구조에 대해서 알아보겠습니다
리눅스 디렉토리 구조 개념 정리
리눅스의 디렉토리 구조는 전체적으로 트리(Tree) 구조를 하고 있으며
명령어의 성격과 내용 및 사용 권한 등에 따라 디렉토리로 구분되고 있어요.
리눅스 파일 시스템 구조는 기본적인 구조를 제외하고는 사용자의 설정에 따라 달라질 수는 있지만 특수한 경우라 보통은 아래에 설명한 디렉토리 구조를 사용하고 있을 거예요.
위치 이름 설명
위치 | 이름 | 설명 |
/ | 루트 | - 최상위(루트) 디렉토리 - 디렉토리들의 절대 경로를 표기할 때 이 디렉토리로 부터 시작함 |
/bin | 바이너리 | - 이진파일(실행파일) - 기본적인 명령어가 저장된 디렉토리 - 리눅스에서 자주 사용하는 mv, cp, rm등과 같은 명령어들이 이 디렉토리에 존재함 |
/boot | 부트 | - 리눅스의 부트로더(Boot loader)가 있는 디렉토리임 |
/dev | 디브(디바이스) | - 시스템 디바이스(device)파일을 저장하고 있는 디렉토리 - /dev/sda (하드디스크 장치파일), /dev/cdrom(CD-ROM)장치파일 등과 같은 장치 파일들이 여기에 위치함 - 물리적 장치가 파일화되어 저장 |
/etc | - 설정파일을 두는 디렉토리 | |
/home | 홈 | - 사용자들의 홈디렉토리가 있는 곳 - 사용자를 추가하면 사용자의 id와 동일한 디렉토리가 이곳에 자동으로 생성 |
/lib | 립(라이브러리) | - 커널이 필요로 하는 각종 라이브러리 파일, 커널 모듈파일 등이 존재하는 디렉토리 |
/media | 미디어 | - DVD, CD-ROM, USB 등의 탈부착 가능한 장치들의 마운트 포인트로 사용하는 디렉토리 |
/mnt | 마운트 | - 탈부착 가능한 장치들에 대한 마운트 포인트로 사용하는 디렉토리 |
/opt | 옵트 | - 응용프로그램 패키지 설치 장소 - 패키지 매니저가 자체적으로 설치/삭제를 수행함 |
/proc | 프록(프로세스) | - '가상파일시스템' 이라고 하는 곳으로 현재 메모리에 존재하는 작업들이 파일 형태로 존재하는 곳임 |
/root | 루트 | - 관리자계정 root 사용자의 홈디렉토리 |
/sbin | 시스템 바이너리 | - 시스템 이진파일(실행파일) - ifconfig, ethtool, halt, e2fsck와 같은 시스템 명령어들을 저장하고 있는 디렉토리 |
/usr | 유저 | - 일반 사용자들이 사용하는 디렉토리 |
/var | 바 | - 시스템 운용중 생성되었다가 삭제되는 데이터를 임시 저장하기 위한 공간으로 사용되는 디렉토리 |
디렉토리별 상세 설명
/
- 마운트 되는 리눅스 파일 시스템이 있는 최상위 디렉토리
- 시스템의 근간을 이루는 가장 중요한 디렉토리
- 파티션 설정 시 반드시 존재하여야 함
- 절대경로의 기준이 되는 디렉토리
절대경로 : / 디렉토리 기준
예) /usr/local
상대경로 : 현재 작업 디렉토리 기준
예) ./local
ㅇㅇㅇ
/bin
- binarise의 약어
- 리눅스의 기본 명령어(binary)들이 들어있는 디렉토리
- 시스템을 운영하는데 기본적인 명령어들이 모여있는 디렉토리
- 부팅에 필요한 명령어들이 들이 위치하며 부팅 후 시스템의 사용자들이 사용할 수 있는 일반적인 명령어들도 위치하고 있음
/sbin
- 시스템 관리에 관련된 실행 명령어들이 들어있는 디렉토리
- 시스템 점검 및 복구 명령, 시스템 초기 및 종료 명령 등 시스템 관리에 관련된 실행파일들 존재.
/dev
- device의 약자로 물리적인 장치들이 파일화 되어 있다.
- 하드디스크 장치파일 /dev/sda, CD-ROM 장치파일 /dev/cdrom 등과 같은 장치파일들이 존재하는 디렉토리
/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 디렉토리는 부르는 이름은 같지만 서로 다름
[IT/리눅스(Linux)] - 리눅스 시스템 로그 설정 방법
[IT/리눅스(Linux)] - 스왑 파일을 쓸 수 없습니다 Write error in swap file