리눅스 디렉터리 구조 파악하기: 주요 디렉터리와 절대 경로, 상대 경로
리눅스 이야기를 시작하고 어느덧 세 번째 글을 쓰고 있다. 처음 이 주제로 글을 써 보려 할 때는 조금 망설이기도 했다. 괜히 시작만 해 두고 중간에 흐지부지되면 안 되지 않을까 하는 생각이 들었기 때문이다. 그럼에도 다시 글을 써야겠다고 마음먹은 이유는, 필자 역시 리눅스를 공부하면서 궁금한 내용을 한 번에 이해하기 쉽게 정리해 둔 글을 찾기가 어려웠던 기억이 있기 때문이다. 이번 주제는 리눅스 디렉터리 구조 이야기다.
사설이 길었다. 본론으로 들어가자. 이 글에서는 리눅스의 폴더 개념인 디렉터리부터 시작해서 꼭 알아야 할 주요 디렉터리, 절대 경로와 상대 경로까지 정리해 보겠다. 지난 글인 리눅스 root 계정 활성화를 아직 보지 않았다면 함께 보는 것도 좋다.

리눅스 디렉터리 구조 기본: 폴더 대신 디렉터리
Windows를 써 본 사람이라면 폴더(Folder)라는 단어가 익숙할 것이다. 이것은 Windows의 용어이고 리눅스에서는 같은 개념을 디렉터리(Directory)라고 부른다. 또 Windows는 경로를 구분할 때 \ 기호를 쓰지만 리눅스는 /를 쓴다.
Windows에는 C:, D:처럼 드라이브마다 따로 시작점이 있지만, 리눅스는 최상위 디렉터리 /(루트) 하나에서 모든 디렉터리가 나뭇가지처럼 갈라지는 트리 구조다. 예를 들어 /home/사용자명은 home 아래의 사용자 디렉터리이고, /var/log는 var 아래의 log 디렉터리다. USB나 추가 디스크도 별도 드라이브가 아니라 이 트리의 어딘가에 연결(마운트)해서 쓴다. 터미널에서 아래 명령어를 실행하면 최상위 디렉터리 아래 항목을 직접 확인할 수 있다.
ls /리눅스 디렉터리 구조 한눈에 보기
여기서 중요한 디렉터리 몇 가지를 짚고 넘어가도록 하겠다. 앞으로 우리가 주로 들어가게 될 디렉터리는 아래와 같다.
| 디렉터리 | 설명 |
|---|---|
/ | 최상위 디렉터리인 루트 디렉터리다. 절대 경로는 항상 여기서부터 표기한다. |
/bin | ls, cp 같은 기본 명령어가 들어 있는 디렉터리다. binary의 약자다. |
/sbin | 시스템 관리용 명령어가 들어 있다. 주로 root 권한으로 실행한다. |
/boot | 리눅스 커널과 부트 로더 파일이 있다. 건드릴 일이 없으니 괜히 건드리지 말자. |
/etc | 시스템 대부분의 설정 파일이 모여 있다. 앞으로 설정 작업을 할 때 가장 많이 들르게 될 곳이다. |
/home | 일반 사용자의 홈 디렉터리다. 사용자를 만들면 사용자 ID와 같은 이름의 디렉터리가 생긴다. |
/root | root 계정의 홈 디렉터리다. /home 아래가 아니라 따로 있다는 점이 특이하다. |
/var | 로그처럼 계속 바뀌는 데이터가 쌓이는 곳이다. 로그는 /var/log에 모인다. |
/tmp | 임시 파일을 두는 곳이다. 재부팅하면 지워질 수 있다. |
/usr | 사용자용 프로그램과 라이브러리가 설치되는 곳이다. 직접 설치한 프로그램은 /usr/local에 들어간다. |
/dev | 디스크, 터미널 같은 장치를 파일 형태로 표현한 장치 파일이 있다. |
/proc | 실행 중인 프로세스와 커널 정보를 보여 주는 가상 디렉터리다. |
/mnt, /media | USB나 추가 디스크를 연결(마운트)할 때 쓰는 디렉터리다. |
참고로 최근 Ubuntu 같은 배포판은 /bin, /sbin이 각각 /usr/bin, /usr/sbin을 가리키는 링크로 바뀌었다. 예전 자료와 조금 다르게 보이더라도 같은 곳이라고 이해하면 된다. 로그가 쌓이는 /var/log 아래의 파일들은 리눅스 로그 파일 위치 정리 글에서 따로 다뤘다.
리눅스 디렉터리 구조 속 절대 경로와 상대 경로
디렉터리 구조를 이해했다면 경로를 쓰는 두 가지 방법도 알아 두자. 절대 경로는 항상 /부터 시작하는 전체 경로이고, 상대 경로는 지금 있는 위치를 기준으로 한 경로다.
cd /var/logcd ..cd ~
첫 번째는 어디에 있든 /var/log로 이동하는 절대 경로다. 두 번째의 ..은 한 단계 위 디렉터리, 세 번째의 ~는 내 홈 디렉터리를 뜻한다. 현재 위치를 뜻하는 .까지 세 가지 기호는 앞으로 정말 자주 쓰게 된다.
리눅스 디렉터리 구조 표준, FHS
위에서 설명한 디렉터리 외에도 더 많은 디렉터리가 있지만, 처음부터 너무 많은 내용을 한꺼번에 봐도 기억에 잘 남지 않는다. 우선은 “어디선가 본 것 같은데?” 정도로 익혀 두고 이후 글에서 하나씩 자연스럽게 익혀 가면 된다.
기본 디렉터리 구조는 대체로 정해져 있지만, 사용자의 설정에 따라 나머지 부분은 달라질 수 있다. 다만 대부분의 배포판은 FHS(Filesystem Hierarchy Standard)라는 파일 시스템 표준을 따르기 때문에, 특별한 이유가 없다면 그 구조를 기준으로 이해하는 것이 좋다. 그래야 다른 환경을 접했을 때도 덜 헷갈리고 유지보수 측면에서도 유리하다.
마무리
여기까지가 리눅스를 다룰 때 최소한 알고 있으면 좋은 리눅스 디렉터리 구조 이야기다. 더 깊게 들어가면 훨씬 많은 내용을 다룰 수 있겠지만, 이번 글에서는 처음 리눅스를 접하는 사람이 기본적인 흐름을 이해하는 데 필요한 정도만 정리해 보았다. 혹시 부족하다고 느껴진다면 댓글로 남겨 주면 좋겠다.
다음 글에서는 이 디렉터리들을 실제로 이동하고, 만들고, 지우는 리눅스 기본 명령어를 함께 살펴보도록 하겠다. 그러면 다음 글에서 이어서 보도록 하자.
첫 댓글을 남겨보세요