리눅스 가상 디렉토리 구조 이해하기

Linux Virtual Directory Feature

리눅스를 처음 사용하는 사용자들은 배워야 할 정보의 거대한 산에 직면하게 됩니다. 이 터미널은 뭐죠? 소프트웨어 업데이트는 어떻게 하나요? 어떤 배포판을 선택해야 할까요? 이러한 질문들은 모두 흔한 질문입니다. 그러나 더 경험이 풍부한 리눅스 사용자들을 괴롭히는 질문이 하나 있습니다: 리눅스 가상 디렉토리 시스템의 각 디렉토리에는 뭐가 들어 있나요? 여기에서는 “/”에서 “/boot”까지 리눅스 가상 디렉토리 시스템에 대한 가이드를 다룹니다.

리눅스 가상 디렉토리 시스템이란?

가상 디렉토리 시스템은 컴퓨터 운영 체제에서 파일과 디렉토리를 구성하는 방법입니다. “가상”이라고 불리는 이유는 실제 물리적 구성 요소가 없기 때문입니다. 윈도우에서는 “C:” 드라이브, “D:” 드라이브 등이 있습니다. 리눅스에서는 모든 물리적 디스크가 가상 디렉토리 시스템의 파일로 취급됩니다. 그래서 “모든 것은 파일이다”라는 문구가 탄생했습니다. 심지어 당신의 운영 체제를 위해 작업하고 있는 시스템의 디스크조차도 파일로 간주됩니다.

추가 읽기: 디렉토리 내용 나열에 유용한 리눅스 명령어

가상 디렉토리 시스템 이해하기

루트 디렉토리: /

먼저 가장 처음부터 시작합시다. “/” (또는 “루트”) 디렉토리는 시스템의 모든 것이 포함된 곳입니다. cd / 명령어를 실행하면 시스템에서 가능한 한 멀리 확대됩니다. “/” 디렉토리로 이동한 후 ls 명령어를 실행해보세요. 제가 무슨 의미인지 이해하게 될 것입니다. “문서,” “다운로드” 또는 “사진” 대신에 “bin,” “dev,” “home”과 같은 것들이 나옵니다. 배포판에 따라서 조금 다를 수 있지만, 거의 항상 존재하는 몇 개의 핵심 디렉토리가 있습니다. 여기서부터 모든 디렉토리는 시작 부분에 “/”가 붙어 있습니다. 이것이 모든 것의 루트이기 때문입니다 – 그래서 “루트”라는 이름이 붙었습니다.

Linux Virtual Directory Fedora

Linux Virtual Directory Ubuntu

바이너리 디렉토리: /bin

“/bin” 디렉토리는 시스템의 모든 바이너리 프로그램을 보관합니다. 그곳을 살펴보면 이미 사용한 cdls와 같은 일반적인 명령어를 볼 수 있습니다. which cd 또는 which ls 명령어를 실행하여도 찾을 수 있습니다. 최신 배포판에서는 대부분 “/bin” 디렉토리가 “/usr/bin” 디렉토리에 링크되어 있습니다. “/usr” 디렉토리는 나중에 다루지만, 간단히 말해, 시스템 및 관리자를 위한 바이너리는 “/bin” 디렉토리에, 시스템 사용자가 위한 바이너리는 “/usr/bin” 디렉토리 안에 배치됩니다.

Linux Virtual Directory Which Cd

부트 디렉토리: /boot

“/boot” 디렉토리는 시스템이 부팅할 때 필요한 매우 기본적인 정보를 보관합니다. 시스템에 설치된 모든 커널, 이 커널을 위한 모든 구성 파일, Grub에 대한 정보 등이 모두 포함되어 있습니다. 매우 중요한 디렉토리이며, 시스템과 분리된 EFI 시스템 파티션으로 취급됩니다. 그래서 수동으로 파티션을 만들 때는 “/”와 “/boot”를 별도로 만들어야 합니다.

Linux Virtual Directory Boot

디바이스 디렉토리: /dev

“/dev” 디렉토리는 시스템의 모든 디바이스 파일을 보관합니다. 이는 시스템의 모든 하드웨어 구성 요소(또한 “null” 및 “random”과 같은 몇몇 중요한 가상 장치 포함)입니다. 살펴보면 “cpu,” “sda,” “tty,” “stderr,” “stdin,” “stdout”과 같은 것들을 볼 수 있습니다. 이들은 매일 상호작용하는 중요한 디바이스 파일입니다.

Linux Virtual Directory Lsblk

기타 디렉토리: /etc

이곳은 랜덤한 것들을 위한 것입니다. “/etc” 디렉토리(에트시와 발음됨)는 시스템의 대부분 사항을 위한 구성 파일을 찾을 수 있는 곳입니다. SSH, Pipewire, systemD 및 Firefox와 같은 것들은 모두 여기에서 구성 파일을 가지고 있습니다. 이는 가상 디렉토리 시스템의 정크 서랍과 같은 것으로, 매우 중요하지만 물건을 찾기가 다소 번거롭습니다.

추가 읽기: 리눅스에서 소프트웨어를 제거한 후 잔여 파일 삭제 방법

홈 디렉토리: /home

“/home” 디렉토리는 사용자의 모든 개인 파일을 보관합니다. 사용자가 생성될 때, 일반적으로 “/home” 디렉토리와 그 자신의 “/home” 디렉토리 내 파일만 수정할 수 있는 권한이 부여됩니다. 일부 사용자에게는 관리자 권한이 부여되며, sudo 명령어로 얻는 것입니다. 이는 단지 루트 사용자의 권한을 가정하는 것입니다. whoamisudo whoami를 연속적으로 실행하면 알게 될 것입니다. 이 디렉토리는 아마도 당신이 가장 익숙한 디렉토리일 것입니다.

Linux Virtual Directory Whoami

라이브러리 디렉토리: /lib, /lib32, 및 /lib64

“/lib” 디렉토리는 “/bin” 또는 “/sbin”에서 사용하는 특정 라이브러리를 포함합니다. 이는 펌웨어 및 커널과 커널 모듈의 다양한 부분을 설치하는 데 사용되는 라이브러리입니다. 자매 디렉토리인 “/lib32”와 “/lib64”는 각각 32비트 및 64비트 운영 체제를 위한 버전을 포함하고 있으며, 기본 “/lib” 디렉토리와 거의 동일합니다.

Linux Virtual Directory Lib

미디어 디렉토리: /media 및 /mnt

이 두 개는 함께 그룹화할 것입니다. 이는 종종 같은 목적을 갖기 때문입니다. “/media” 디렉토리는 CD, DVD 또는 기타 이동식 미디어의 내용이 저장되는 곳입니다. USB 드라이브를 연결하면 대부분의 시스템에서 “/media”에 나타나는 것을 볼 수 있습니다.

“/mnt” 디렉토리는 장기적인 마운트를 위해 사용됩니다. 예를 들어, 시스템에 다른 SSD를 추가하는 경우, “/mnt” 디렉토리에서 영구 마운트 포인트를 설정할 수 있습니다. 또는, 집에 NAS가 있다면 해당 정보를 “/mnt” 디렉토리에서도 마운트할 수 있습니다.

/opt

“/opt” 디렉토리는 사용자를 위한 추가 소프트웨어 패키지를 수용합니다. 생각보다 훨씬 작습니다 – 제 디렉토리에는 Brave, Google Chrome 및 Sublime Text의 파일만 들어 있습니다. 소프트웨어의 저장소를 추가하면 아마도 그 소프트웨어는 “/opt”에서 찾을 수 있을 것입니다.

/proc

“/proc” 디렉토리는 하드웨어 정보와 진행 중인 프로세스 정보를 보관합니다. 시스템이 하드웨어 환경을 이해하면서, 그 정보는 “/proc” 디렉토리에 저장됩니다. 예를 들어, cat /proc/cpuinfo 명령어를 실행하면 CPU에 대한 정보를 훨씬 더 알 수 있습니다.

추가 읽기: /proc 파일 시스템을 사용하여 리눅스 내부 작동 examine

/root

이는 단지 루트 사용자의 “/home” 디렉토리 버전입니다. 루트 사용자로 많이 작업하면 그곳에서 여러 가지를 발견할 수 있습니다.

/run

“/run” 디렉토리는 “/proc”와 유사합니다 – 하드웨어 대신 “/run”은 소프트웨어에 초점을 맞춥니다. 두 디렉토리는 “휘발성 실행 시간 데이터”를 저장하며, 즉 이 디렉토리는 시스템을 재부팅할 때마다 거의 지워지지만, OS가 시스템에 대해 더 배우는 동안 유용한 정보를 저장합니다.

/sbin

“/sbin” 디렉토리는 오직 루트 사용자에게만 제공해야 하는 바이너리 프로그램을 보관합니다. 예를 들어, 시스템을 종료하는 바이너리 프로그램(poweroff)은 아마도 “/sbin”에 있어야 할 것입니다.

Linux Virtual Directory Which Poweroff

/srv

이 디렉토리는 여러분이 실행 중인 웹 접근 가능 서비스에 기반한 사이트 전용 데이터를 보관합니다. FTP와 HTTP와 같은 것들은 여기에 특정 정보를 저장합니다. 저는 아무것도 실행하지 않으므로 제 “/srv” 디렉토리는 비어 있습니다.

/sys

“/sys” 디렉토리는 시스템의 주요 장치에 대한 정보를 보관합니다. 저의 시스템에서는 “/sys/dev,” “/sys/firmware,” 및 “/sys/kernel”과 같은 것들을 볼 수 있습니다. 이는 “/dev” 디렉토리의 슈퍼 중요한 하드웨어 장치를 추려낸 것입니다.

Linux Virtual Directory Sys

/tmp

“/tmp” 디렉토리는 시스템의 다양한 프로그램에서 임시 정보를 저장하는 데 사용됩니다. 정보는 재부팅하지 않고 몇 일 동안 여기에 저장되며, 임시적으로 정보를 잠금하여 다른 저장 공간을 자유롭게 유지합니다. 대부분의 사용자에게 “/tmp” 디렉토리와 관련하여 해야 할 일이 많지 않습니다.

/usr

“/usr” 디렉토리는 점점 더 자주 사용되고 있습니다. 이제 “/bin,” “/lib,” 및 “/sbin”과 같은 디렉토리는 “/usr”의 해당 디렉토리와 링크되어 있습니다. 시스템에서 ll 명령어를 실행할 때 이를 볼 수 있습니다.

이들은 소프트 링크이므로 링크를 끊을 수 있지만, 시스템은 “/usr/bin” 또는 “/usr/sbin” 디렉토리에서 읽게 되며, “/bin” 또는 “/sbin” 디렉토리에서 읽지 않습니다. 이는 계층 구조를 단순화하고 이러한 프로그램을 더 쉽게 찾을 수 있도록 하기 위함입니다. 이는 리눅스에서 유닉스로 전환할 때 더욱 쉽게 여러 바이너리의 고정 위치가 없게 해주는 좋은 품질의 생활 개선입니다.

/var

“/var” 디렉토리는 “/tmp” 디렉토리와 유사하나, 데이터를 조금 더 오랫동안 보관합니다. 로그 파일 및 KVM 가상 머신 디스크 이미지와 같은 것도 저장합니다.

보시다시피, 리눅스 가상 디렉토리 시스템은 시스템에서 사용할 파일을 정리하고 시스템을 관리하는 데 더 간편하게 만들기 위해 만들어졌습니다. 물론 이 시스템으로 자신이 원하는 것을 할 수 있지만(그것이 리눅스의 아름다움입니다), 대부분의 데스크탑 사용자에게는 있는 그대로 두는 것이 괜찮고 멋진 일입니다. 2021년 리눅스에 가장 적합한 파일 시스템을 찾고 싶을 수도 있습니다.