[디렉토리 구조와 파일찾는법]
-
디렉토리 구조
- 명령어 시스템에선 디렉토리가 굉장히 중요하다.
- 디렉토리는 어떤 데이터 또는 실행할 수 있는 프로그램을 정리정돈 하는 수단이다.
- 유닉스 계열에서는 데이터와 실행할 프로그램의 성격에 따라서 정해져 있는 위치에 따른 규칙 존재한다.
- Linux Directory Structure
- / - Root : 최상위 디렉토리.
- /bin - User Binaries : 실행가능한 파일. 바이너리 파일. 사용자들이 사용하는 명령들이 위치한다. 주요 명령 바이너리 디렉토리이다. 기본적인 명령어가 저장된 디렉토리.
- /sbin - System Binaries : 실행가능한 시스템 프로그램. reboot, shutdown과 같이 컴퓨터를 끄거나 재부팅하는 프로그램들이 존재한다. 시스템 관리자(system administrator, root user)가 사용하는 프로그램들이 존재한다.
- /etc - Configuration Files : 설정 파일. 프로그램이 실행될 때 참고하는 시스템 설정 파일이 존재한다. 바이너리 파일은 존재하지 않도록한다.
- /dev - Device Files : 터미널 디바이스나 usb 등 디바이스에 관련된 시스템이 존재한다. (장치 파일)
- /proc - Process Information : 시스템 프로세스에 관련된 정보 존재. /proc/{pid}
- /var - Variable Files : 대부분 내용이 변경될 수 있는 특성을 지닌다. 일시적이고 순간적인 가변 자료가 있는 디렉토리이다. 예) log파일
- /tmp - Temporary Files : 임시파일이 저장된다. 컴퓨터를 껐다키면 자동으로 삭제가 되므로 영구적으로 저장해야 할 데이터를 저장해선 안된다. 임시로 날라가도 되는 파일을 저장할 때 이용한다.
- /usr - User Programs : 프로그램의 세컨드 레벨이다. 실행파일, 라이브러리, 문서, 소스코드가 존재한다. /bin, /sbin 하위에 없는 파일들은 /usr/bin, /usr/sbin에서 찾을 수 있다. 2차적 디렉토리 체계라고 이해하자.
- /home - Home Directory : 사용자의 파일이 저장된다. 사용자의 홈 디렉토리들로 옵션에 해당된다. /home/tester
- /boot - Boot Loader Files : 부트 로더의 고정 파일들이 위치한다.
- /lib - System Libraries : bin과 sbin에 있는 프로그램들이 공통으로 사용하는 라이브러리가 존재한다. 대체 형식의 주요 공유 라이브러리이다.
- /opt - Optional add-on Application : htop 과 같이 사용자가 설치하는 위치를 지정할 경우 유용하다. 추가 애플리케이션 소프트웨어 패키지가 존재한다.
- /mnt - Mount Directory : 시스템 관리자가 파일시스템을 마운트 하는 임시 마운트 디렉토리.
- /media - Removable Media Devices : 지울 수 있는 미디어 디바이스. cdrom, floppy 드라이브, cdrecorder 같은 착탈이 가능한 미디어에 대한 마운트 포인트이다.
- /srv - Service Data : 서버의 특정 서비스와 관련된 데이터로 구성된다. 시스템에 의헤 제공되는 서비스들에 대한 자료가 존재한다.
-
파일 찾는 법
- 파일은 두가지 용도로 사용한다 > 데이터 보관, 해야할 일에 대한(명령어)를 보관하고 있는 실행 파일
- locate
- locate *.log
- 위 명령어는 log 확장자인 파일을 전부 조회한다는 명령어이다.
- 이 명령어의 특징은 검색을 할 때 디렉토리를 검색하는 것이 아니라 mlocate를 검색한다.
- sudo updatedb 명령어는 mlocate(DB)에 접근해서 이 컴퓨터에 있는 파일의 정보를 저장하는 작업을 수행한다.
- 많은 리눅스 시스템에서 이 작업이 하루에 한번씩 정기적으로 수행되도록 설정되어 있다.
- find
- locate와 다르게 실제로 디렉토리를 뒤져서 찾는다.
- find 사용법
- find / -name *.log 모든 디렉토리를 포함해서 .log 확장자가 붙은 파일 검색. 권한이 없는 디렉토리를 검색해서 한다면 sudo를 붙여서 진행해야한다.
- find . -type f -name test.txt 확장자를 f(file)로 지정해서 test.txt가 파일명인 파일을 검색(디렉토리명이 동일해도 제외)
- find . -type f -name "test.txt" -exec rm -f {} \; 명령어를 통해 검색된 파일을 제거하는 명령어를 실행해라.
- whereis
- 원하는 실행 파일을 찾아주는 명령어이다.
- whereis ls : ls 명령어 프로그램이 어디에 있는지 알려줌
- man whereis 를 조회하면 whereis는 지정한 명령어에 대해 실행파일, 소스, 매뉴얼을 보여준다고 나온다.
- $PATH
- 어느 디렉토리에서건 ls 명령어가 실행될 수 있는 이유는 $PATH라고 하는 변수에 있다.
- echo $PATH를 실행하면 이 변수에 담겨있는 정보를 출력할 수 있다.
- 정보는 : 를 기준으로 구분되어 있고, 경로가 담겨있다.
- 이 변수는 리눅스/유닉스 계열에서 기본적으로 가지고있는 변수이다. (= 환경변수)
- ls라는 명령어를 입력 > 컴퓨터는 $PATH에 담겨있는 경로를 검색 > ls라는 실행파일이 존재하는지 순차적으로 이 경로들을 검색한다 > 그 명령어가 발견되면 실행한다.
- 환경변수 덕분에 명령어를 실행할 때마다 전체 경로를 지정하지 않아도 된다.
'CS > OS' 카테고리의 다른 글
[Linux] 자주 사용하는 명령어 정리1 (0) | 2019.09.28 |
---|---|
[Linux] RPM 과 YUM (0) | 2019.09.27 |
[Linux] 리눅스 커맨드라인 툴 기초 (0) | 2019.09.24 |
[Linux] 생활코딩 리눅스 강좌 (2) (0) | 2019.09.17 |
[Linux] 생활코딩 리눅스 강좌 (1) (0) | 2019.09.16 |