LainyZine: 프로그래머 가이드 🐣

[리눅스 기초] 루트 디렉터리와 디렉터리 구조

리눅스 디렉터리 구조는 루트로 시작해서 트리로 구성되어있습니다. 디렉터리 아래에는 디렉터리나 파일이 포함될 수 있습니다. 이 글에서는 루트 디렉터리를 시작으로 리눅스 디렉터리 구조와 주요 시스템 디렉터리들에 대해서 소개합니다.

루트 디렉터리: 최상단 디렉터리

리눅스의 최상단 디렉터리는 예외없이 최상단의 /(루트)가 됩니다. 모든 디렉터리나 파일은 이 아래에 있습니다.

리눅스의 루트 디렉터리

리눅스와 윈도우의 디렉터리 구조는 약간 차이가 있습니다. 윈도우의 경우, 하드 디스크나 외부 저장장치와 같은 기기 기준으로 루트 디렉터리가 있습니다. 예를 들어 메인 저장장치(HDD)의 위치는 일반적으로 c:\가 되고 이 기기에 저장된 모든 파일은 이 경로 아래에 있습니다.

하지만 리눅스에서는 저장장치와 무관하게 모든 파일은 / 아래에 위치합니다. 다른 저장 장치를 사용하는 경우에도 리눅스에서는 루트 디렉터리(/) 아래의 어딘가에 위치한다는 점을 기억해주세요.

그리고 경로를 구분하는 슬래시(/)의 방향도 다르다는 점에 주의해주세요(윈도우에서는 \ 역슬래시를 사용합니다)

리눅스의 디렉터리 구조

디렉터리에는 파일이나 디렉터리가 포함될 수 있습니다. 아래 이미지에서 루트 디렉터리 아래에는 home/, etc/, usr/, tmp/ 디렉터리가 있습니다. 이 때 관습적으로 디렉터리 명에는 끝에 /를 붙여줍니다.

리눅스의 디렉터리 구조 예제

다시 home/ 디렉터리 아래에는 lainyzine/ 디렉터리가 있습니다. 그 아래에는 documents/ 디렉터리와 awesome.txtdata.zip 파일이 있습니다.

이 때 루트 디렉터리 아래의 home/ 디렉터리의 전체 경로는 상위의 모든 디렉터리를 이어 붙여서 /home/라고 표기합니다. 셸에서는 pwd 명령어로 현재 디렉터리를 확인할 수 있습니다.

$ pwd
/home
/home/ 디렉터리

그렇다면 퀴즈입니다. 아래 이미지에서 보이는 documents/ 디렉터리의 전체 경로는 어떻게 될까요?

/home/lainyzine/documents 디렉터리

루트 디렉터리부터 차례대로 /로 연결해주면 됩니다. 따라서 정답은 다음과 같습니다.

리눅스의 디렉터리 구조가 감이 좀 오시나요? 다른 모든 디렉터리도 같은 방식으로 전체 경로를 표현할 수 있습니다.

이러한 경로 표기 방식을 절대 경로라고 부릅니다. 작업 디렉터리를 기준으로 디렉터리 위치를 표기하는 상대 경로 방식도 있는데, 이에 대해서는 다음 글에서 좀 더 자세히 설명합니다.

홈 디렉터리

리눅스에서 사용자 파일은 주로 홈 디렉터리 아래에서 관리됩니다. 홈 디렉터리는 /home/ 디렉터리 아래에 생성됩니다. 이 때 사용자 계정 별로 디렉터리가 만들어집니다. 예를 들어서 /home/lainyzine/은 lainyzine 사용자의 홈 디렉터리이며, lainyzine은 이 디렉터리 아래의 파일을 자유롭게 관리할 수 있습니다.

루트 사용자의 홈 디렉터리는 /home/ 아래가 아닌 루트 바로 아래의 /root/를 사용합니다.

리눅스의 주요 시스템 디렉터리

루트 바로 아래의 디렉터리들은 일반적으로 시스템 디렉터리로 분류됩니다. home/ 디렉터리 아래의 사용자 공간이나 tmp/를 제외하고는 기본적으로 관리자 외에는 접근이 불가능하며, 시스템에 영향을 줄 수 있기 때문에 주의할 필요가 있습니다.

리눅스의 주요 디렉터리들의 용도는 다음과 같습니다.

디렉터리 설명
bin 주요 명령어 바이너리
boot 부트 로더의 스태틱 파일들
dev 디바이스 파일
etc 호스트 관련 시스템 설정 파일들
home 사용자 홈 디렉터리
lib* 주요 공유 라이브러리 및 커널 모듈
media 제거 가능한 외부 저장장치 외부 마운트 포인트
mnt 파일 시스템 마운트 포인트
proc 시스템 정보를 담은 가상 디렉터리
root 루트 사용자의 홈 디렉터리
run 런타임 가변 데이터 디렉터리
sbin 주요 시스템 바이너리
sys 시스템 정보를 담은 가상 디렉터리
tmp 임시 파일들
usr 보조 계층
var 가변 데이터
srv 서비스들을 위해 시스템에서 제공하는 데이터
opt 애드온 애플리케이션 소프트웨어 패키지 디렉터리

아래는 우분투 리눅스 루트 디렉터리에서 실제로 확인해본 디렉터리 목록입니다. 디렉터리 목록은 배포판이나 배포판 버전, 환경에 따라서 다를 수 있습니다.

bin/
boot/
dev/
etc/
home/
lib/
lib32/
lib64/
libx32/
media/
mnt/
opt/
proc/
root/
run/
sbin/
srv/
sys/
tmp/
usr/
var/

추천 문서

LainyZine은 쿠팡 파트너스 활동에 따른 수수료를 제공받습니다.