보통 윈도우에 익숙해진 우리는 리눅스를 보면 상당히 당황하게 된다.

운영체제는 프로그램을 여러 개 미리 설치해 놓는다. 혹은 우리가 필요하면 설치한다. 그리고 리눅스에서 우리는 쉘(Shell)이라는 명령을 통해서 그 프로그램을 실행한다.

그런데 그 프로그램을 실행하는건 우리가 명령을하고 궁극적으로는 OS가 하는거다. 그러면 그 프로그램의 실행파일과 데이터들은 어디에 둬야 될지를 생각해야할 것이다.

바로 이 부분에서 윈도우에 익숙해진 우리는 당황하게 되는 것이다.

윈도우에서는 그냥 디스크만 있으면 C드라이브 및에 바로 생성이 되지만 리눅스는 그렇지 않다. 그래서 우리는 리눅스의 파일 구조에 대해 알아야 한다.

리눅스는 기본적으로 유닉스 계열의 운영체제이기 때문애 유닉스의 많은 부분을 그대로 이어서 사용하고 있다. 리눅스와 유닉스의 공통점은 마찬가지로 시스템과 관련된 정보들을 파일로 관리한다는 것이다.

리눅스는 파일을 효율적으로 관리하기 위해 디렉토리를 사용하는데, 디렉토리는 계층 구조를 가지고 있다.

리눅스는 전체 파일을 용도에 따라 계층 디렉토리로 구분하여 관리하며 이것을 파일 시스템이라고 한다.

리눅스 파일 시스템

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

/ (루트)
최상의 디렉토리인 루트 디렉토리. 리눅스의 모든 디렉토리들의 시작점
모든 디렉토리들을 절대 경로로 표기할 때에 이 디렉토리로부터 시작

/home
사용자 홈 디렉토리가 생성되는 곳
useradd 명령어로 새로운 사용자를 생성하면 대부분 사용자의 ID와 동일한 이름의 디렉토리가 자동으로 생성

/media
CD_ROM이나 USB같은 외부 장치를 연결하는 디렉토리

/opt
추가 패키지가 설치되는 디렉토리

/dev
장치파일들이 저장되어 있는 디렉토리

/root
root계정의 홈 디렉토리(/ 디렉토리와는 다르다)

/sys
리눅스 커널관련 정보가 있는 디렉토리

/usr
기본 실행파일과 라이브러리 파일, 헤더 파일등의 파일이 저장되어있는 디렉토리

/boot
부팅에 필요한 정보를 가진 파일들이 있는 디렉토리

/var
시스템 운영중에 발생한 데이터와 로그가 저장되는 디렉토리

/tmp
시스템 사용중에 발생한 임시데이터가 저장 (부팅 시 초기화)

/srv
FTP나 Web등 시스템에서 제공하는 서비스의 데이터가 저장되는 디릭토리

/run
실행중인 서비스와 관련된 파일이 저장되는 디렉토리

/proc
프로세스 정보 등 커널 관련 정보가 저장되는 디렉토리

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

/mnt
파일 시스템을 임시로 연결하는 디렉토리

/etc
리눅스 설정을 위한 각종 파일들을 가지고 있는 디렉토리

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

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다