CS/OS

[Linux] 생활코딩 리눅스 강좌 (3)

창문닦이 2019. 9. 23. 09:37

[디렉토리 구조와 파일찾는법]

  • 디렉토리 구조

    • 명령어 시스템에선 디렉토리가 굉장히 중요하다.
    • 디렉토리는 어떤 데이터 또는 실행할 있는 프로그램을 정리정돈 하는 수단이다.
    • 유닉스 계열에서는 데이터와 실행할 프로그램의 성격에 따라서 정해져 있는 위치에 따른 규칙 존재한다.
    • 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라는 실행파일이 존재하는지 순차적으로 경로들을 검색한다 > 명령어가 발견되면 실행한다.
      • 환경변수 덕분에 명령어를 실행할 때마다 전체 경로를 지정하지 않아도 된다.