스토리텔링 개발자

[Linux] 디렉토리(Directory) 본문

개발/Linux

[Linux] 디렉토리(Directory)

김디트 2021. 7. 22. 11:11
728x90

개요

리눅스에는 루트와 그 아래로 수많은 디렉토리들로 구성되어 있습니다.

그 많은 디렉토리들은 대체 어디에 쓰이는 걸까요.


디렉토리들에 대해 말하기 이전에 다음 문장을 먼저 이야기해 보도록 하겠습니다.

 

 

 

Everythig is file

모든 건 파일이다.

 

이 문장은 유닉스 시스템의 모토입니다.


그 뜻은 말 그대로입니다.

유닉스와 그 계보를 잇는 리눅스들은 일반 파일, 디렉토리, 하드 드라이브, 키보드, 프린터, 소켓, 파이프 등, 다룰 수 있는 모든 것들을 파일로 처리합니다.


모든 걸 파일로 처리하기 위해 리눅스는 파일 디스크립터(file descriptor) 라는 것을 사용합니다.

 

 

 

루트 디렉토리, 홈 디렉토리

본격적으로 디렉토리들을 다뤄보기 전에, 루트 디렉토리와 홈 디렉토리의 개념에 대해 잠깐 다루고 지나가도록 하겠습니다.

 

'/ ' 루트 디렉토리

 

최상위 디렉토리로, 모든 디렉토리들의 시작점입니다.
윈도우 시스템의 C 드라이브라고 할 수 있겠습니다.

 

'~' 홈 디렉토리

 

사용자로 시작하면 루트가 아니라 '~' 라는 경로에서 시작하죠.
이는 사용자의 홈 디렉토리를 의미합니다.

즉, 사용자에게 허용된 공간 중 루트 공간이라고 볼 수 있죠.

 

홈 디렉토리는 '~' 경로로 표시된다.

 

경로로 치면 /home/사용자 이름/ 입니다.

/home 은 사용자의 홈 디렉토리를 모아둔 장소입니다.

 

 

 

상세

자, 그럼 본격적으로 디렉토리들에 대해 다뤄보도록 하겠습니다.
물론 그 광범위한 모든 디렉토리를 다룰 순 없고, 제 리눅스의 루트 아래에 있는 폴더들만 다뤄보겠습니다.

 

리눅스 디렉토리 구조

 

/bin, /sbin(binary)

 

OS의 구동에 필요한 것이 들어 있습니다.
대표적으로는 ls, mkdir, cat, chomd, chown 같은 프로그램들이 말이죠.
sbin은 bin과 같은 용도지만, 루트유저 전용 프로그램들입니다.

 

/dev(device)

 

디바이스들이 파일 형태로 채워져 있습니다.
각 디바이스는 노드(node)라고 하며, 하드웨어 장치일수도 있고 가상 장치일 수도 있습니다.
각 장치에 읽기 / 쓰기를 처리할 수 있는데요.

예를 들어 프린터에 쓰기 명령어를 사용하면 프린팅이 됩니다.

 

/home

 

사용자의 홈 디렉토리들이 들어 있습니다.

 

/mnt(mount)

 

사용자가 명령어를 통해 마운트 했을 때 파일 시스템 마운팅 포인트입니다.
즉, 사용자가 명령어로 마운트 시킨 cd-rom, usb 등이 들어가는 디렉토리입니다.

 

/opt

 

응용 프로그램 패키지 설치 디렉토리입니다.
패키지 매니저가 자체적으로 설치와 삭제를 수행합니다.

 

/root

 

시스템 관리자(root 계정)의 홈 디렉토리입니다.

 

/srv(server)

 

서버를 위한 디렉토리입니다.
주로 FTP, SFTP, RSync 같은 프로토콜로 외부 사용자와 공유하기 위해 사용합니다.

 

/tmp(temporary)

 

현재 작업 내용 같은 임시 파일들이 저장되는 디렉토리입니다.

 

/var(variable)

 

각종 로그, 데이터베이스 캐싱파일, 웹서버 이미지 파일들이 기록되는 디렉토리입니다.
웹서버 운영 시엔 /var/www 에 기본 웹 서비스 페이지가 들어 있습니다.
DB 서버 운영 시 각종 DB 데이터들도 /var 하위에 기본으로 저장됩니다.

 

/media

 

os가 자동으로 마운트 했을 때 파일 시스템 마운팅 포인트입니다.
즉, os가 자동으로 마운트 시킨 cd-rom, usb 등이 들어가는 디렉토리입니다.

 

/proc(process)

 

각 프로세스들이 파일화 되어 있는 디렉토리입니다.
현재 cpu 사용값, IO 포트 등 여러 정보들을 포함합니다.
실제 디스크 공간에는 존재하지 않습니다.

 

/run

 

계속 실행되고 있는 프로세스들이 들어 있는 디렉토리입니다.

 

/sys(system)

 

실제 디스크의 물리 영역이 아니라 가상 영역(RAM 베이스의) 디렉토리입니다.
현재 커널의 시스템 전반에 대한 내용을 제공합니다.
재구동할 시 새로 생성됩니다.

 

/usr(user)

 

시스템이 아닌 일반 사용자가 사용하는 프로그램이 설치되는 디렉토리입니다.
CentOS 7 이상부터 루트 아래의 bin, sbin, lib 같은 폴더들은 사실 심볼릭 링크이며
usr 디렉토리 아래에 실제 폴더가 위치하고 있습니다.

728x90
Comments