리눅스 디렉터리(Linux Directory) 구조와 이론 2편입니다.
1편 (/, /bin, /sbi /boot)에 대한 정보는 링크 참고 부탁 드립니다.
오늘 알아볼 디렉터리 4개는 /dev, /etc, /home, /lib 입니다.
Directory | Description |
---|---|
/ | 루트 directory, 파일 시스템의 최상위 directory. |
/bin | 필수 시스템 바이너리. |
/boot | 시스템 부팅에 필요한 파일. |
/dev | 하드웨어 장치를 나타내는 장치 파일. |
/etc | 시스템 전체 구성 파일. |
/home | 일반 사용자를 위한 홈 directory. |
/lib | 시스템 바이너리 및 커널에 필요한 라이브러리. |
/media | 이동식 미디어(예: USB 드라이브)의 마운트 지점 |
/mnt | 임시로 마운트된 파일 시스템의 마운트 지점 |
/opt | 선택적 소프트웨어 패키지. (예:tomcat ~~) |
/proc | 프로세스에 대한 정보를 포함하는 가상 파일 시스템. |
/root | 루트 사용자의 홈 directory입니다. |
/sbin | 시스템 관리를 위한 시스템 바이너리. |
/srv | 시스템에서 제공하는 서비스에 대한 데이터입니다. |
/tmp | 임시 파일(재부팅 시 지워짐). |
/usr | 사용자 관련 프로그램, 라이브러리 및 데이터. |
/var | 로그, 데이터베이스 및 스풀 파일과 같은 가변 데이터. |
/dev 디렉터리
- 리눅스 시스템에서 하드웨어 장치와 관련된 파일들이 위치하는 디렉터리입니다.
- 각 하드웨어 장치는 파일 형태로 다루어지며, 이 파일들을 통해 실제 하드웨어를 제어하거나 정보를 확인할 수 있습니다.
/dev 디렉토리에는 다음과 같은 파일들이 위치합니다.
/dev/null
읽기 작업은 항상 성공하며, 쓰기 작업은 아무런 효과가 없습니다.
이를 통해 출력을 무시하거나 여러 출력을 저장할 수 있습니다.
/dev/zero
읽기 작업은 무조건 0을 반환하며, 쓰기 작업은 비어있는 디스크 영역에 0을 쓰는 작업을 수행합니다.
/dev/random 및 /dev/urandom
리눅스 시스템에서 난수를 생성하는 디바이스 파일입니다.
/dev/random은 클라이언트로부터 엔트로피 값을 수집하여 그 값으로부터 안전한 난수를 생성합니다.
/dev/urandom은 의사 난수 생성 알고리즘을 기반으로 안전한 난수를 생성합니다.
/dev/tty
현재 셸에 접근하는 파일입니다. 이를 통해 셸과 관련된 작업을 수행할 수 있습니다.
/dev/sda 또는 sdb
읽기 또는 쓰기 가능한 하드 디스크 파일입니다. 각 파일은 하드 디스크의 파티션을 나타냅니다.
/dev/pts
가상 터미널(pty)을 통해 생성된 실제 터미널 디바이스 파일입니다.
/etc 디렉터리
- 리눅스 시스템에서 대부분의 설정 파일들이 위치하는 디렉터리입니다.
- 다양한 프로그램과 서비스의 설정 파일들을 포함하며, 이 파일들을 직접 편집하여 시스템 동작을 변경할 수 있습니다.
/etc/passwd
사용자 계정 정보를 저장합니다.
/etc/group
사용자 그룹 정보를 저장합니다.
/etc/fstab
파일 시스템 장치 및 마운트 포인트에 대한 정보를 지정합니다.
/etc/hosts
호스트 이름과 IP 주소의 매핑 정보를 저장합니다./etc/resolv.conf: DNS 이름 서버 정보를 저장합니다.
/etc/network/interfaces
네트워크 인터페이스 설정을 저장합니다.
/etc/sudoers
sudo 권한에 대한 구성 정보를 제공합니다.
/etc/sysconfig
시스템 구성 설정 정보를 저장합니다.
/home 디렉터리
- 리눅스 시스템에서 사용자들의 홈 디렉터리가 위치하는 디렉터리입니다.
- 시스템에 등록된 사용자마다 하나씩의 디렉터리가 생성되며, 이 디렉터리 안에서 사용자가 작업하는 파일들을 관리합니다.
- Desktop: 사용자의 데스크톱에 표시되는 바로 가기 아이콘 및 파일이 저장되는 디렉터리입니다.
- Documents: 사용자의 문서 파일이 저장되는 디렉터리입니다.
- Downloads: 사용자가 다운로드한 파일이 저장되는 디렉터리입니다.
- Music: 사용자의 음악 파일이 저장되는 디렉터리입니다.
- Pictures: 사용자의 그림 파일이 저장되는 디렉터리입니다.
- Videos: 사용자의 비디오 파일이 저장되는 디렉터리입니다.
- .bashrc: Bash 셸의 설정 정보가 저장되는 파일입니다.
- .bash_history: 사용자가 사용한 Bash 셸 명령어의 기록이 저장되는 파일입니다.
- .ssh: SSH 키 및 설정 파일이 저장되는 디렉터리입니다.
- .config: 사용자별 설정 파일이 저장되는 디렉터리입니다.
- .local: 사용자 홈 디렉터리 내에 설치된 로컬 응용 프로그램 및 설정 파일이 저장되는 디렉터리입니다.
/lib 디렉터리
- 리눅스 시스템에서 필요한 라이브러리 파일들이 위치하는 디렉터리입니다.
- 다른 프로그램에서 사용될 수 있는 공통 라이브러리 파일들이 여기에 위치하며, 시스템 전반에서 필요한 라이브러리 파일을 저장합니다.
- 공유 라이브러리 (Shared Libraries): 이들은 여러 개의 애플리케이션에서 동시에 사용할 수 있는 프로그램 코드의 집합입니다. 공유 라이브러리를 사용함으로써 시스템 리소스를 절약할 수 있고, 개별 프로그램의 크기를 줄일 수 있습니다. 공유 라이브러리 파일은 주로
.so
(Shared Object) 확장자를 가집니다. - 커널 모듈 (Kernel Modules): 이들은 시스템 구동 중에 필요한 경우 동적으로 커널에 추가되거나 제거되는 확장 코드입니다. 보통 드라이버 및 하드웨어 지원을 위해 사용되며, 이를 통해 커널이 실행 중인 상태에서도 기능을 동적으로 확장하거나 축소할 수 있게 됩니다.