/var/log/messages
리눅스 디렉토리 구조 본문
저번 글에서는, 명령어를 사용하는 체계와 명령어 사용법을 찾는 법을 알아봤다.
이번 글에서는 리눅스 디렉토리 구조에 대해서 알아보고자 한다.
일단, 디렉토리는 윈도우로 비유하면 폴더와 같은 말이다.
음악 파일을 찾고 싶으면 음악 폴더에 가고, 사진 파일을 찾고 싶으면 사진 파일에 가는 거 처럼
용도를 알아야 정보를 찾을 수 있다.
또한 어떤 파일을 다운 받았는데 그 파일이 어느 디렉토리에 존재해야 되는 건지,
설정 정보를 보고 싶으면 어느 디렉토리에 가야 되는 지 등등
생각보다 큰 나비효과를 불러올 수 있는 것이 디렉토리 구조를 아는 것이다.
개인의 생각을 적는 것 보단, 공식 문서를 보고 적는 것이 좋다고 판단해서
linux foundation, redhat.com, suse.com, man hier의 설명을 보고 적는 것을 앞서 밝힌다.
리눅스를 접해 봤으면 이런 식의 그림을 봤을 것이다. 바로 디렉토리 구조를 보기 쉽게 나타낸 것이다.
디렉토리 설명과 이 그림을 보면서 이해하면 도움이 될 것이라고 생각한다.
1. /, 루트 디렉토리
시스템이 시작 시 가장 먼저 탑재 되는 곳이다. 그림에서 알 수 있듯이, ' / ' 밑에 수 많은 파일들이 있는 것을 볼 수 있다.
2. /bin
사용자가 기본적으로 사용 할 수 있는 명령어들이 들어있는 곳이다.
기본적인 ls, cp, ping 부터 압축 툴인 tar, gzip, cpio 도 확인 할 수 있다.
아래 사진 처럼 그 디렉토리에 이동해서 ls 만 입력해봐도 사용할 수 있는 명령어가 무엇인지도 볼 수 있다.
ll로 입력하면 아래 사진 처럼 나타난다.
그럼, 여기서 vi는 하나의 심볼릭 링크인 것을 알 수 있다. /usr/bin에 가보면
또 심볼릭 링크인 것을 알 수 있다. /etc/alternatives를 보면
심볼릭 링크가 되게 많은 것을 볼 수 있다. 쉘 스크립트를 조금이라도 해봤으면 다른 디렉터리에서 실행 했다는 메시지를 본 적이 있을것이다. 그럼 우린 어떤 이유로 아무 위치에서 ls를 호출할 수 있었을까? 그건 다음에 다뤄보도록 하겠다. 너무 알고 싶으면 PATH의 개념을 이해하는 것을 추천한다.
3. /sbin
시스템 관리에 필요한 명령어들이 있는 곳이다.
루트 사용자만 사용할 수 있는 명령어들이 있는 곳 이기도 하다.
사진을 보면, 디스크의 파일시스템을 정할 수 있는 mkfs 명령어도 볼 수 있다.
이처럼, 시스템 관리에 사용되는 명령어들이 있는 곳이 /sbin이다.
4. /boot
부팅 과정에 필요한 모든 것들이 들어 있는 곳이다.
당연히, 이 곳에 있는 파일을 지우게 되면 부팅하는데 문제가 생긴다.
vmlinuz 및 initrd 링크로 확인되는 커널 및 initrd 파일이 포함된다.
5. /dev
nic를 제외한, 이 서버의 하드웨어 구성 요소가 제공된다.
그리고 커널이 제공하는 가상 장치가 포함되기도 한다.
대부분의 응용 프로그램은, 하드웨어 정보를 읽어야 할 때가 오면 이 곳 혹은 /proc를 참조하기도 한다.
Null 장치: - /dev/null 장치 없음: - /dev/zero 시스템 콘솔: - /dev/console 가상 터미널: - /dev/tty1 직렬 포트 - /dev/ttyS0 병렬 포트: - /dev/lp0 플로피 디스크 드라이브: - /dev/fd0 하드 드라이브: - /dev/sda 하드 디스크 파티션: - /dev/sda1 CD-ROM 드라이브: - /dev/scd0 |
6. /etc
리눅스 자체의 시스템이나 서비스를 운영 중일 경우, 서비스의 구성 파일이 포함된다.
대부분 아스키 파일이라 용량이 좀 있는 편이다.
이 디렉토리에는 허가권에 대해서 신경을 써야 한다.
/etc/passwd, /etc/shadow 같이 직접적인 개인 정보가 담겨 있는 곳이기도 하니 말이다.
또한, 리눅스 기반 환경에서 기본적으로 제공하는 프로그램들이 아닌 파일들의 설정들이 있는 곳이기도 하다.
자세한건 /opt 디렉토리를 설명할 때 보면 되겠다.
7. /home
모든 시스템 사용자에게는 로그인 후 현재 작업 디렉토리가 되는 파일 영역이 할당된다.
이 영역은 기본적으로 /home에 있다.
/home의 파일 및 디렉토리는 별도의 파티션에 있거나 네트워크상의 다른 컴퓨터에 있을 수 있다.
각 계정마다 설정을 다 다르게 되거나, 할 수 있기에 특정 계정을 조사할 경우 가정이 아닌 확인을 해야 한다.
( 루트 계정은 /root에 저장 된다. )
8. /lib, /lib64
명령어 동작에 필요한 라이브러리들이 있는 곳이다.
lib64는 64비트로 이루어진 라이브러리를 의미한다.
9. /mnt
임시로 마운트가 되는 곳이고, 실제 디스크들을 마운트 할 때 사용하면 안 되는 곳이다.
10. /opt
배포가 안 되고, 타사 프로그램들이 저장되는 위치이다.
( 배포가 되는 건 /usr/lib에 저장 된다. )
설치 시 각 응용 프로그램의 파일에 대해 해당 응용 프로그램의 이름이 있는 디렉토리가 생성된다.
( /opt/aaa )
이때 /etc/opt에는 opt에 있는 파일들의 설정 파일들이 생긴다.
man page에는 /opt에 설치된 추가 기능 애플리케이션에 대한 호스트별 구성 파일이란 설명이 있다.
11. /srv
리눅스 제공하는 서비스 ( 웹 서비스, ftp 서비스 등)를 통해 얻은 데이터를 저정하는 곳이다.
알아둬야 할 점은, 이 곳의 하위 디렉토리 이름은 프로토콜 명으로 저장이 된다.
그래도 대규모에서는 따로 이름을 정하는 것을 추천한다.
12. /tmp
프로그램을 실행하는 동안 임시 파일이 생성되는 위치
즉, 이 디렉터리 안에 있는 파일들은 cron이나 boot up 할때, 삭제한다는 메시지도 없이 삭제가 된다.
14. /usr
는 다음 글에서 작성해보려고 한다. 이 디렉토리 자체로만 한 글을 적을 수 있기 때문이다.
15. /var
마찬가지로 다음 글에 적어보려고 한다.
혹시 이 내용보다 더 많이 알고 싶다면, man hier라고 입력해보길 바란다.
'SUSE' 카테고리의 다른 글
리눅스 파일시스템이란 (0) | 2023.02.22 |
---|---|
/var, 로그 메시지가 생기는 과정 (0) | 2023.02.13 |
/usr 디렉터리 (0) | 2023.02.11 |
리눅스 명렁어 사용 방법 (2) | 2023.01.22 |
SUSE Linux 설치 가이드 (0) | 2023.01.16 |