리눅스 디렉터리(Directory)
System/OS - Linux

리눅스 디렉터리(Directory)

디렉터리(Directory)

윈도우에서의 폴더로 생각하면 이해가 쉽다. 리눅스는 최상위 디렉터리인 루트(/)를 기준으로 그 하위 디렉터리에 또다른 다수의 디렉터리가 존재하는 트리 구조의 계층적인 파일구조를 가지고 있다. 리눅스에서 디스크 파티션을 나눌 때 루트 파티션을 할당해주면 루트 디렉터리의 하위 디렉터리들이 종속된다.

리눅스 디렉터리 구조

/ 최상위 디렉터리로, 루트 디렉터리라고 한다.
/root 시스템 관리자 root의 홈 디렉터리이다.
/bin binary의 약자로, 주로 실행 파일들이 들어있는 디렉터리이다. 터미널에서 사용하는 명령어들이 들어있는 디렉터리로 PATH가 설정되어 있다.
/sbin system binary의 약자로, 주로 시스템 관리에 대한 명령어들이 들어있는 디렉터리이다.
/boot 부팅 이미지 파일, 커널 등 시스템 부팅 시 필요한 파일이 들어있는 디렉터리이다. 부트 로더인 grub 관련 파일도 이 디렉터리에 들어있다. 부팅 커널이 저장된다.
/dev 하드 디스크, CD-ROm 등의 물리적인 장치들을 파일화하여 관리하는 디렉터리이다.
/etc 시스템 환경 설정 파일 및 부팅 관련 여러 가지 스크립트 파일들이 저장된 디렉터리이다.
/home 개인 사용자들이 파일이나 디렉터리를 만들어 사용하는 홈 디렉터리이다. root가 아닌 개인 사용자로 로그인해서 리눅스를 사용할 때 가장 일반적으로 사용하게 되는 디렉터리이다. (각 사용자마다 별도의 홈 디렉터리를 가지며 특정 사용자로 로그인하면 그 사용자의 홈 디렉터리에서 작업을 시작)
/lib 여러 라이브러리가 저장되어 있는 디렉터리이다. 커널 모듈도 이 디렉터리에 들어있다. CentOS 7버전 부터는 64bit(x86_64)가 기본이 되면서 32bit(x86 또는 i386)용 라이브러리가 들어있다.
/lib64 64bit용 리눅스를 설치하는 경우 생성되는 디렉터리이다. CentOS 7부터는 64bit 기반이기 때문에 대부분의 라이브러리가 이 디렉터리에 저장된다.
/mnt CD-ROM, 하드 디스크, 네트워크 파일 시스템 등을 마운트할 때 포인터가 되는 디렉터리이다. 
/opt 응용 프로그램들의 설치를 위해 사용되는 디렉터리이다.
/proc 가상 파일 시스템으로 시스템에서 운영되고 있는 다양한 프로세스의 상태 정보, 하드웨어 정보 등을 담고 있다.
/tmp 임시 저장 디렉터리이다. 각족 프로그램, 소켓 파일, 프로세스 작업 중 임시로 생성되는 파일들이 저장되는 공간이다. 보통 모든 사용자가 접근 가능하도록 되어있다.
/usr 시스템 운영에 필요한 명령, 응용 프로그램들이 위치한 디렉터리이다. 
- /usr/bin
- /usr/sbin
- /usr/local: 로컬에서 추가로 설치할 때 사용되는 디렉터리
/var 시스템 운영 로그 파일과 스풀링 등 가변적인 데이터를 보관하는 디렉터리이다. 
/media 외부 장치(이동식 장치)를 마운트하기 위해 제공하는 디렉터리이다. 
/srv RHEL 4(2.6 커널 기반)부터 등장한 디렉터리로 사이트에서 생성되는 데이터를 저장하는 디렉터리이다. FTP, WWW, CVS 등의 서비스에 의해 생성되는 데이터를ㄹ 저장하는 디렉터리이다. 
/sys 2.6 커널에서 사용되는 가상 파일 시스템인 sysfs에서 사용하는 디렉터리이다. hot plug 하드웨어 정보를 가지고 있다. /proc 디렉터리에서 기본적인 하드웨어 정보를 제공하고 /sys 디렉터리에서는 계층적인 구조로 정보를 제공한다.
/run 부팅 이후 동작중인 프로세스의 런타임 데이터를 저장하는 디렉터리이다. CentOS 7버전부터 생긴 디렉터리이다. 프로세스 아이디 파일과 락 파일(Lock File)이 생성되고 부팅을 종료하면 사라졌다가 재부팅하면 다시 생성된다. RHEL 6이전 버전에서 사용되었던 /var/run + /var/lock 으로 생각하면 된다.
더보기

* 스풀링(spooling): 스풀을 위해 마련된 저장공간을 채우는 작업

* 스풀(spool; Simultaneous Peripheral Operation On-Line): 컴퓨터 시스템에서 중앙처리장치와 입출력장치가 독립적으로 동작하도록 해 주변장치의 동작 속도가 느려지면서 발생하는 대기 시간을 줄이기 위해 고안된 기법

* 장치의 파일화

하위 디렉터리들 중 /dev와 같이 외부 장치에 대한 디렉터리가 있다. 리눅스에서는 장치를 모두 파일화하여 사용한다. 즉, 사용자가 특정 장치에 대한 명령을 실행시키고 싶을 때는 해당 장치의 파일에 명령을 내리면 된다.

* 경로

파일, 디렉터리를 가리킬 때의 정확한 이름으로, 절대경로명과 상대경로명 두 가지 방식으로 부를 수 있다.

절대경로명(absolute path name) 루트 디렉터리에서 시작하는 경로이름을 정확하게 적는 것

상대경로명(relative path name) 현재 작업 디렉터리부터 시작하여 경로 이름을 적는 것

 

 

::참고::

리눅스 디렉터리 구조 그림 (thesagediary.com/2020/04/14/linux-file-system-directory-architecture/)

책 CentOS 7으로 리눅스마스터 1급 정복하기 (정성재/북스홀릭)

SMALL

'System > OS - Linux' 카테고리의 다른 글

리눅스 기초 명령어  (0) 2021.02.06
리눅스 기초 명령어-파일, 디렉터리  (0) 2021.02.06
부트 매니저 - LILO, GRUB  (0) 2021.01.22
LVM  (0) 2021.01.21
RAID  (0) 2021.01.21