[리눅스] 파일 시스템 구조

[리눅스] 파일 시스템 구조

목차

윈도우에 익숙한 사용자가 리눅스를 처음 접하면 가장 당황하는 부분이 바로 파일 시스템 구조다. 이 글에서는 리눅스 파일 시스템이 왜 계층 디렉터리 구조를 갖는지 원리를 짚고, /·/etc·/home 같은 주요 디렉터리의 역할을 정리한다.

리눅스 파일 시스템이 윈도우와 다른 이유

운영체제는 프로그램을 여러 개 미리 설치해 두거나, 필요할 때 설치한다. 그리고 리눅스에서 우리는 쉘(Shell)이라는 명령을 통해서 그 프로그램을 실행한다. 그런데 프로그램을 실행하는 것은 우리가 명령을 하고 궁극적으로는 OS가 처리하는 일이다. 그러면 그 프로그램의 실행 파일과 데이터들을 어디에 둬야 할지 생각해야 한다.

바로 이 부분에서 윈도우에 익숙한 사용자는 당황하게 된다. 윈도우에서는 디스크만 있으면 C드라이브 밑에 바로 생성되지만, 리눅스는 그렇지 않다. 그래서 우리는 리눅스의 파일 구조를 알아야 한다.

리눅스는 기본적으로 유닉스 계열의 운영체제이기 때문에 유닉스의 많은 부분을 그대로 이어서 사용하고 있다. 리눅스와 유닉스의 공통점은 시스템과 관련된 정보들을 파일로 관리한다는 것이다. 리눅스는 파일을 효율적으로 관리하기 위해 디렉터리를 사용하는데, 디렉터리는 계층 구조를 가진다. 이처럼 전체 파일을 용도에 따라 계층 디렉터리로 구분하여 관리하는 것을 파일 시스템이라고 한다.

리눅스 파일 시스템 계층 구조

리눅스 주요 파일 시스템 구조

리눅스 최상위 디렉터리부터 주요 디렉터리의 역할을 표로 정리하면 다음과 같다.

디렉터리역할
/ (루트)최상위 디렉터리. 리눅스 모든 디렉터리의 시작점이며, 절대 경로 표기는 이 디렉터리로부터 시작한다.
/home사용자 홈 디렉터리가 생성되는 곳. useradd로 새 사용자를 만들면 대부분 사용자 ID와 동일한 이름의 디렉터리가 자동 생성된다.
/mediaCD-ROM이나 USB 같은 외부 장치를 연결하는 디렉터리.
/opt추가 패키지가 설치되는 디렉터리.
/dev장치 파일들이 저장되어 있는 디렉터리.
/rootroot 계정의 홈 디렉터리(/ 디렉터리와는 다르다).
/sys리눅스 커널 관련 정보가 있는 디렉터리.
/usr기본 실행 파일과 라이브러리 파일, 헤더 파일 등이 저장되어 있는 디렉터리.
/boot부팅에 필요한 정보를 가진 파일들이 있는 디렉터리.
/var시스템 운영 중에 발생한 데이터와 로그가 저장되는 디렉터리.
/tmp시스템 사용 중에 발생한 임시 데이터가 저장(부팅 시 초기화).
/srvFTP나 Web 등 시스템에서 제공하는 서비스의 데이터가 저장되는 디렉터리.
/run실행 중인 서비스와 관련된 파일이 저장되는 디렉터리.
/mnt파일 시스템을 임시로 연결하는 디렉터리.
/etc리눅스 설정을 위한 각종 파일들을 가지고 있는 디렉터리.

/proc — 가상 파일 시스템

/proc는 프로세스 정보 등 커널 관련 정보가 저장되는 디렉터리로, 일명 “가상 파일 시스템“이라고 한다. 현재 메모리에 존재하는 모든 작업들이 파일 형태로 존재하는 곳이다. 디스크상에 실제 존재하는 것이 아니라 메모리상에 존재하기 때문에 가상 파일 시스템이라고 부른다. 실제 운용 상태를 정확하게 파악할 수 있는 중요한 정보를 제공하며, 여기에 존재하는 파일들 가운데 현재 실행 중인 커널(kernel)의 옵션 값을 즉시 변경할 수 있는 파라미터 파일들이 있다.

정리

리눅스 파일 시스템은 모든 경로가 루트(/)에서 시작하는 계층 구조이며, 디렉터리마다 정해진 용도가 있다. 설정은 /etc, 사용자 데이터는 /home, 로그는 /var처럼 역할을 기억해 두면 시스템을 다룰 때 어디를 봐야 할지 빠르게 판단할 수 있다. 다음 단계로는 네트워크 명령어 및 설정 파일을 함께 익혀 두면 좋다.

https://www.youtube.com/watch?v=hZ6j_g_O3Ts

💬 댓글 0

💬 댓글을 남기려면?
첫 댓글을 남겨보세요 ✨

이 콘텐츠가 도움이 됐나요?

누스쿨 커뮤니티에서 더 많은 커리어 전략을 나눠요