나는 이렇게 학습한다/Etc

리눅스 #디렉토리의 구조

daco2020 2021. 9. 15. 18:15

 오늘 배운 것 

unix 계열은 디렉토리의 용도에 따라서 이름이 정해져있습니다. 

리눅스 디렉토리 스트럭처 검색go

1. / – 루트
모든 파일 및 디렉토리는 루트 디렉토리에서 시작됩니다.
루트 사용자만 이 디렉터리 아래에 쓰기 권한이 있습니다.
/root는 /와 동일한 루트 사용자의 홈 디렉토리입니다.
2. /bin – 사용자 이진(바이너리 = 이진수)
이진 실행 파일을 포함합니다.
단일 사용자 모드에서 사용해야 하는 일반 Linux 명령은 이 디렉토리 아래에 있습니다.
시스템의 모든 사용자가 사용하는 명령은 여기에 있습니다.
예를 들어 ps, ls, ping, grep, cp.
3. /sbin – 시스템 바이너리(바이너리 = 이진수)
/bin과 마찬가지로 /sbin에도 이진 실행 파일이 포함되어 있습니다.
그러나 이 디렉토리 아래에 있는 Linux 명령은 일반적으로 시스템 유지 관리 목적으로 시스템 aministator에서 사용됩니다.
예: iptables, 재부팅, fdisk, ifconfig, swapon
4. /etc – 구성 파일
모든 프로그램에 필요한 구성 파일을 포함합니다.
여기에는 개별 프로그램을 시작/중지하는 데 사용되는 시작 및 종료 셸 스크립트도 포함됩니다.
예를 들어, /etc/resolv.conf, /etc/logrotate.conf
5. /dev – 장치 파일
장치 파일을 포함합니다.
여기에는 터미널 장치, USB 또는 시스템에 연결된 모든 장치가 포함됩니다.
예: /dev/tty1, /dev/usbmon0
6. /proc – 프로세스 정보
시스템 프로세스에 대한 정보를 포함합니다.
이것은 실행 중인 프로세스에 대한 정보를 포함하는 유사 파일 시스템입니다. 예를 들어, /proc/{pid} 디렉터리에는 특정 pid가 있는 프로세스에 대한 정보가 포함되어 있습니다.
시스템 리소스에 대한 텍스트 정보가 있는 가상 파일 시스템입니다. 예: /proc/uptime
7. /var – 가변 파일
var는 변수 파일을 나타냅니다.
증가할 것으로 예상되는 파일의 내용은 이 디렉토리에서 찾을 수 있습니다.
여기에는 시스템 로그 파일(/var/log), 패키지 및 데이터베이스 파일(/var/lib), 이메일(/var/mail), 인쇄 대기열(/var/spool), 잠금 파일(/var/lock), 재부팅 시 필요한 임시 파일(/var/tmp)이 포함됩니다.
8. /tmp – 임시 파일
시스템 및 사용자가 만든 임시 파일이 들어 있는 디렉토리입니다.
시스템을 재부팅하면 이 디렉터리 아래의 파일이 삭제됩니다.
9. /usr – 사용자 프로그램 (위 2번 3번과의 차이점 = 사용자가 설치하는 프로그램(/usr) <> 기본 제공되는 번들 프로그램)
2단계 프로그램의 이진, 라이브러리, 설명서 및 소스 코드를 포함합니다.
/usr/bin에는 사용자 프로그램에 대한 이진 파일이 포함되어 있습니다. /bin에서 사용자 바이너리를 찾을 수 없는 경우 /usr/bin 아래에서 찾아보십시오. 예: at, awk, cc, less, scp
/usr/sbin에는 시스템 관리자를 위한 이진 파일이 포함되어 있습니다. /sbin에서 시스템 바이너리를 찾을 수 없는 경우 /usr/sbin 아래를 확인하십시오. 예: atd, cron, sshd, useradd, userdel
/usr/lib에 /usr/bin 및 /usr/sbin에 대한 라이브러리가 포함되어 있습니다.
/usr/local에는 원본에서 설치하는 사용자 프로그램이 포함되어 있습니다. 예를 들어, 원본에서 Apache를 설치하면 /usr/local/apache2 아래에 들어갑니다.
10. /home – 홈 디렉토리(=Users)
모든 사용자가 개인 파일을 저장할 수 있는 홈 디렉토리.
예: /home/john, /home/nikita
11. /boot – 부트 로더 파일
부트 로더 관련 파일을 포함합니다.
커널 initrd, vmlinux, grub 파일이 /boot 아래에 있음
예: initrd.img-2.6.32-24-일반, VMlinuz-2.6.32-24-일반
12. /lib – 시스템 라이브러리
/bin 및 /sbin 아래에 있는 바이너리를 지원하는 라이브러리 파일을 포함합니다.
라이브러리 파일 이름은 ld* 또는 lib*입니다.*
예를 들어, libncurses.so, libncurses.so.5.7
13. /opt – 선택적 추가 기능 애플리케이션
선택 스탠드는 선택 사항입니다.
개별 벤더의 애드온 애플리케이션을 포함합니다.
애드온 애플리케이션은 /opt/ 또는 /opt/ 하위 디렉토리에 설치해야 한다.
14. /mnt – Mount Directory
sysadmins가 파일 시스템을 마운트할 수 있는 임시 마운트 디렉터리입니다.
15. /media – 이동식 미디어
이동식 장치의 임시 마운트 디렉터리입니다.
예를 들어 CD-ROM의 경우 /media/cdrom, 플로피 드라이브의 경우 /media/floppy, CD 기록기의 경우 /media/cdrecorder 등이 있습니다.
16. /srv – 서비스 데이터
srv는 서비스를 의미합니다.
서버별 서비스 관련 데이터를 포함합니다.
예를 들어 /srv/cvs에는 CVS 관련 데이터가 포함되어 있습니다.

 


어디에 있건 home 디렉토리로 이동하기 위해서는? (=Users)

>>> cd ~ 

>>> pwd (현재 디렉토리 위치 확인 > Print Working Directory 의 약자)

 

특정 파일 위치 알아내는 명령어는?

>>> whereis [이름]

 

 


 

 오늘 느낀 것 

컴퓨터에 기본적으로 설정되어 있는 디렉토리들이 사실은 다 의미가 있었구나 하는 생각이 들었다. 이 강의를 보기 전까지는 각각의 디렉토리가 목적과 용도에 맞게 사용되는지 알지 못했다. 그런데 실제 실무에서는 어떻게 사용될까? 일단 home(=Users) 로 나가는 명령어는 요긴하게 쓰일 것 같아서 외워두면 좋을 것 같다. cd ~  그리고 특정 파일의 위치를 알아내는 명령어 whereis 도 왠지 많이 쓰일 것 같아서 암기해두어야겠다. 외우기 쉽게 생긴 명령어라 다행이다.

근데 막상해보니까 잘 찾아지지 않는다. 찾을 수 있는 대상이 따로 있는 것 같다. 그래서 관련 구글링을 해보았는데 다음과 같다고 한다. 근데 어디에 써먹을지 아직은 잘 모르겠다. 일단 적어는 두자. locate의 경우 시험삼아 해봤는데 데이터베이스에 존재하지 않는다는 오류메시지가 떴다. 오류메시지를 가지고 여기저기 구글링 해보고 시도해보았지만 결국 해결하지 못했다.. 맥 m1 이라서 그런걸까..? 당장 급한건 아니니 일단 넘어가보자..ㅜ

 

which

which는 특정명령어의 위치를 찾아주는 명령어이다.

which find

>>> /bin/find

검색 가능한 모든 경로에서 해당 명령어를 찾음

which -a find 

>>> /bin/find /usr/bin/find

whereis

whereis는 명령어의 실행파일위치, 소스위치, man 페이지파일의 위치를 찾아주는 명령어이다.

whereis find

>>> find: /bin/find /usr/bin/find /usr/share/man/man1/find.1.gz

locate

locate는 다양한 패턴의 파일들을 찾고자 할 때 매우 유용하게 사용되는 명령어이다.

현재 시스템에 존재하는 *.bak 에 해당하는 파일 찾기

locate *.bak

특정패턴에 해당하는 파일들 가운데 지정한 개수만큼 검색

locate -n 10 *.conf