리눅스 파일 시스템 완벽 이해 계층 구조와 주요 디렉토리

리눅스 시스템의 핵심을 이루는 파일 시스템은 마치 잘 정리된 책장과 같은 계층적인 트리 구조를 따릅니다. 이 구조는 파일 시스템 계층 표준(Filesystem Hierarchy Standard, FHS)에 의해 체계적으로 관리되어, 시스템의 일관성과 유지보수성을 높입니다. 리눅스 시스템을 효율적으로 관리하고 문제를 해결하기 위해서는 이 기본적인 디렉토리 구조와 각 디렉토리의 역할을 이해하는 것이 필수적입니다. 지금부터 리눅스 파일 시스템의 주요 디렉토리와 그 특징을 자세히 살펴보겠습니다.

리눅스 파일 시스템 완벽 이해 계층 구조와 주요 디렉토리

루트 디렉토리 (/)

/ 기호로 표현되는 루트 디렉토리는 리눅스 파일 시스템의 가장 최상위에 위치하는 디렉토리입니다. 마치 나무의 뿌리와 같이 모든 다른 디렉토리와 파일은 이 루트 디렉토리 아래에 존재합니다. 시스템 전체를 아우르는 핵심적인 역할을 수행합니다.

주요 디렉토리

  • /bin: ls, cp, mv와 같이 시스템 운영에 필수적인 사용자 명령어 (바이너리 실행 파일)들이 저장된 곳입니다. 싱글 유저 모드에서도 사용할 수 있는 기본적인 명령어들이 포함됩니다.
  • /boot: 시스템 부팅에 필요한 파일들이 위치합니다. 여기에는 커널 이미지 (vmlinuz), initrd (initial ramdisk) 이미지, 부트로더 설정 파일 (예: GRUB 설정 파일) 등이 포함됩니다.
  • /dev: 시스템에 연결된 하드웨어 장치들을 파일 형태로 관리하는 특별한 디렉토리입니다. 각 장치는 고유한 파일 이름을 가지며, 이를 통해 사용자와 커널은 장치와 상호작용할 수 있습니다 (예: /dev/sda는 첫 번째 SCSI 드라이브를 나타냅니다).
  • /etc: 시스템 전반에 걸쳐 사용되는 설정 파일들이 저장되는 중요한 디렉토리입니다. 네트워크 설정, 사용자 계정 정보, 시스템 서비스 설정 등 다양한 설정 파일들이 위치합니다.
  • /home: 일반 사용자들의 개인 홈 디렉토리가 위치합니다. 각 사용자는 자신의 홈 디렉토리에서 개인 파일, 설정 등을 관리합니다 (예: /home/user1, /home/user2).
  • /lib: 프로그램 실행에 필요한 필수 라이브러리 파일들이 저장됩니다. 동적 라이브러리 (.so 파일)들이 주로 위치하며, /bin/sbin 디렉토리의 프로그램들이 이 라이브러리들을 참조합니다.
  • /media: CD-ROM, USB 드라이브와 같은 이동식 미디어가 자동으로 마운트되는 지점입니다. 사용자가 이동식 저장 장치를 연결하면 이 디렉토리 아래에 해당 장치의 내용이 나타납니다.
  • /mnt: 시스템 관리자가 임시로 파일 시스템을 마운트하기 위해 사용하는 디렉토리입니다. 일반적으로 비어 있으며, 네트워크 파일 시스템 등을 수동으로 마운트할 때 활용됩니다.
  • /opt: 추가적인 애플리케이션 소프트웨어 패키지가 설치되는 디렉토리입니다. 일반적으로 /usr 디렉토리에 포함되지 않는 대규모 상용 소프트웨어 등이 이 디렉토리 아래에 설치됩니다. 각 애플리케이션은 보통 /opt/<애플리케이션 이름>/ 형태로 নিজস্ব 디렉토리를 가집니다.
  • /proc: 현재 실행 중인 프로세스 및 커널 관련 정보를 제공하는 가상 파일 시스템입니다. 실제 파일 형태로 존재하지 않으며, 시스템이 부팅될 때 메모리에 생성됩니다. 프로세스 ID별 디렉토리와 시스템 정보 파일들을 통해 시스템의 내부 동작을 확인할 수 있습니다.
  • /root: root 사용자의 홈 디렉토리입니다. 일반 사용자의 홈 디렉토리와 분리되어 있으며, 시스템 관리와 관련된 중요한 설정 파일들이 위치할 수 있습니다.
  • /sbin: 시스템 관리자만이 실행할 수 있는 필수 시스템 바이너리들이 저장됩니다. 시스템 설정, 네트워크 관리, 파일 시스템 관리 등에 사용되는 명령어들이 포함됩니다 (예: fdisk, ifconfig).
  • /tmp: 시스템이 재부팅될 때 내용이 삭제되는 임시 파일 저장소입니다. 응용 프로그램이나 사용자가 일시적으로 사용하는 파일들을 저장하는 데 사용됩니다. 보안상의 이유로 중요한 정보는 저장하지 않는 것이 좋습니다.
  • /usr: / 디렉토리 다음으로 큰 규모를 가지는 2차 계층 구조로, 대부분의 사용자 유틸리티, 애플리케이션, 관련 라이브러리, 문서 파일 등이 포함됩니다. 읽기 전용으로 마운트되는 경우가 많습니다.
  • /var: 가변적인 데이터를 저장하는 디렉토리입니다. 여기에는 시스템 로그 파일 (/var/log), 스풀 파일 (/var/spool), 임시 애플리케이션 데이터, 패키지 관리자 관련 파일 등이 포함됩니다. 시스템 운영 중에 내용이 자주 변경되는 파일들이 위치합니다.

특징

  • 모든 것이 파일로 취급됩니다: 리눅스에서는 일반 파일, 디렉토리뿐만 아니라 하드웨어 장치, 파이프, 소켓 등 시스템의 모든 요소가 파일로 취급되어 일관된 방식으로 접근하고 관리할 수 있습니다.
  • 대소문자를 구분합니다: 파일 및 디렉토리 이름에서 대문자와 소문자는 서로 다르게 인식됩니다 (예: Filefile은 다른 파일입니다).
  • 숨김 파일은 점(.)으로 시작합니다: 이름이 점(.)으로 시작하는 파일이나 디렉토리는 일반적으로 파일 탐색기나 ls 명령어 실행 시 기본적으로 표시되지 않습니다. 설정 파일 등을 숨기는 데 사용됩니다 (ls -a 명령어로 확인할 수 있습니다).
  • 파일 이름에 공백 사용을 피하고, 구두점은 마침표(.), 대시(-), 밑줄(_)로 제한합니다: 파일 이름에 공백이나 특수 문자를 사용하는 것은 시스템 호환성 문제를 일으킬 수 있으므로 권장되지 않습니다.

이 기본적인 리눅스 파일 시스템 구조를 이해하는 것은 시스템 관리자뿐만 아니라 일반 사용자에게도 매우 중요합니다. 시스템의 동작 방식을 파악하고, 문제 발생 시 원인을 분석하며, 소프트웨어를 효율적으로 관리하는 데 큰 도움이 될 것입니다.

By Low ahn

리눅스를 처음 접하시는 분들은 위한 다양한 리눅스 정보를 공유합니다.

답글 남기기

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