본문 바로가기

TEAM STUDY/LINUX

유닉스 디렉토리 계층 구조

728x90
반응형

유닉스 디렉토리 계층 구조

 

  • ~(홈디렉토리)

    • 현재 사용자 계정의 홈디렉토리
    • ~뒤에 로그인한 사용자 ID가 오면 해당 사용자의 홈디렉토리를 나타냄
  • .(현재 디렉토리)

    • 현재 사용 중인 디렉터리를 작업 디렉터리(Working directory) 또는 현재 디렉터리(Current directory)라고 함
    • 현재 디렉터리 위치: pwd 명령으로 확인
  • /(루트 디렉토리)

    • root 계정의 홈디렉토리로 최상위 디렉토리를 의미

 

 

디렉토리의 주요 기능

  • dev
    • 장치 파일이 담긴 디렉터리
  • home
    • 사용자 홈 디렉터리가 생성되는 디렉터리
  • media
    • CD-ROM이나 USB 같은 외부 장치를 연결(마운트라고 함)하는 디렉터리
  • opt
    • 추가 패키지가 설치되는 디렉터리
  • root
    • root 계정의 홈 디렉터리 [주의] 루트(/) 디렉터리와 혼동하지 않도록 해야 함
  • sys
    • 리눅스 커널과 관련된 파일이 있는 디렉터리
  • usr
    • 기본 실행 파일과 라이브러리 파일, 헤더 파일 등 많은 파일이 있음 [참고] usr는 ‘Unix System Resource’의 약자
  • boot
    • 부팅에 필요한 커널 파일을 가지고 있음
  • etc
    • 리눅스 설정을 위한 각종 파일을 가지고 있음
  • lost+found
    • 파일 시스템에 문제가 발생하여 복구할 경우, 문제가 되는 파일이 저장되는 디렉터리로 보통은 비어 있음
  • mnt
    • 파일 시스템을 임시로 마운트하는 디렉터리
  • proc
    • 프로세스 정보 등 커널 관련 정보가 저장되는 디렉터리
  • run
    • 실행 중인 서비스와 관련된 파일이 저장됨
  • srv
    • FTP나 Web 등 시스템에서 제공하는 서비스의 데이터가 저장됨
  • tmp
    • 시스템 사용 중에 발생하는 임시 데이터가 저장됨 [주의] 이 디렉터리에 있는 파일은 재시작하면 모두 삭제됨
  • var
    • 시스템 운영 중에서 발생하는 데이터나 로그 등 내용이 자주 바뀌는 파일이 주로 저장됨

 

작업 디렉토리와 홈 디렉터리

작업 디렉터리

현재 사용 중인 디렉터리를 작업 디렉터리(Working directory) 또는 현재 디렉터리(Current directory)라고 함

현재 디렉터리: ‘.’ 기호로 표시

현재 디렉터리 위치: pwd 명령으로 확인

 

경로명: 파일 시스템에서 디렉터리 계층 구조에 있는 특정 파일이나 디렉터리의 위치 표시(구분자: / ) 

 

절대 경로명: 항상 루트(/) 디렉터리부터 시작 작업 디렉터리

- 반드시 /으로 시작

- 루트 디렉터리부터 시작하여 특정 파일이나 디렉터리의 위치까지 이동하면서 거치게 되는 모든 중간 디렉터리의 이름을 표시

- 특정 위치를 가리키는 절대 경로명은 항상 동일

 

상대 경로명: 현재 디렉터리를 기준으로 시작 작업 디렉터리

- / 이외의 문자로 시작

- 현재 디렉터리를 기준으로 서브 디렉터리로 내려가면 그냥 서브 디렉터리명을 추가

- 현재 디렉터리를 기준으로 상위 디렉터리로 가려면 ..(마침표 두 개)를 추가

- 상대 경로명은 현재 디렉터리가 어디냐에 따라 달라짐

홈 디렉터리

각 사용자에게 할당된 디렉터리로 처음 사용자 계정을 만들 때 지정

사용자는 자신의 홈 디렉터리 아래에 파일이나 서브 디렉터리를 생성하며 작업 가능

홈 디렉터리는 ‘~’ 기호로 표시: ~user1

 

 

유닉스 현재 디렉토리 확인 / 디렉토리의 파일 목록 확인

pwd

 기능: 현재 위치를 확인함 → 현재 디렉터리의 절대 경로명을 출력함

 

 

ls 옵션들

  • -a
    • 숨길 파일을 포함하여 모든 파일의 목록을 출력함
  • -d
    • 디렉터리 자체의 정보를 출력함
  • -i
    • 첫 번째 행에 inode 번호를 출력함
  • -l
    • 파일의 상세 정보를 출력함
  • -A
    • .(마침표)와 ..(마침표 두 개)를 제외한 모든 파일 목록을 출력함
  • -F
    • 파일의 종류를 표시함(*: 실행 파일, /: 디렉터리, @: 심벌릭 링크)
  • -L
    • 심벌릭 링크 파일의 경우 원본 파일의 정보를 출력함 -
  • R
    • 하위 디렉터리의 목록까지 출력함

 

상세한 정보 출력하기: -l 옵션

  • -
    • 일반(정규) 파일
  • d
    • 디렉터리 파일
  • t
    • 심벌릭 링크 파일
  • b
    • 블록 단위로 읽고 쓰는 블록 장치 파일
  • c
    • 섹터 단위로 읽고 쓰는 문자 장치 파일
  • p
    • 파이프 파일(프로세스 간 통신에 사용되는 특수 파일)
  •  s
    • 소켓(네트워크 통신에 사용되는 특수 파일) 

 

디렉터리 이동하기: cd

  • 현재 작업 디렉토리를 지정한 디렉토리로 이동
  • 디렉토리명을 지정하지 않으면 자신의 홈 디렉토리로 이동
  • 기능: 지정한 디렉터리로 이동함

 

디렉터리 만들기: mkdir

  • 기능: 디렉터리를 생성

 

디렉터리 삭제하기: rmdir

  • 기능: 디렉터리를 삭제

 

find 명령어

  • 디렉토리 내의 파일이나 디렉토리(폴더)를 찾는 검색 명령어
  • 단순히 파일 이름만을 가지고 찾는 것은 물론, 파일 모드, 파일 타입, 크기, 마지막으로 접근한 시간 등 여러 가지 다양한 조건으로 검색
  • 파일이 아닌, 디렉토리를 검색하려면 명령어 맨 끝에 “- type d” (따옴표 제외) 라는 옵션을 붙여 주어야 함
  • 루트 디렉토리 아래에서, et 로 시작하는 모든 디렉토리를 찾으려면 find / -name ‘et*’ -type d
  • “/” 는 루트 디렉토리 즉 최상위 디렉토리를 의미
  • b: 블록 특수 파일(block device)
  • c: 캐릭터 특수 파일 (character deice)
  • d: 디렉토리(directory)
  • f: 일반파일(file)
  • l: 심볼릭 링크(link)
  • p: 파이프 (pipe)
  • s: 소켓 (socket)

 

grep 명령어

  • 하위폴더를 포함하여 존재하는 모든 파일에서 원하는 단어를 찾아주는 명령어
  • 검색어 내에 공백 문자가 있을 경우는 " " 를 사용
  • -i: 영문의 대소문자를 구별하지 않음
  • -v: pattern을 포함하지 않는 라인을 출력
  • -n: 검색 결과의 각 행의 선두에 행 번호를 넣음(first line is 1)
  • -l: 파일명만 출력
  • -c: 패턴과 일치하는 라인의 개수만 출력
  • -r: 하위 디렉토리까지 검색
  • -A: after n줄까지 출력
  • -B: before n줄까지 출력

 

  • grep hello test.
    • test 라는 파일에서 hello 라는 문구가 들어간 모든 행을 찾아 출력
  • grep -n hello test
    • test 라는 파일에서 hello 라는 문구가 들어간 모든 행을 보여주며, 라인까지 출력
  • grep -r hello cptest
    • cptest 라는 폴더 내의 모든 파일 중에 hello 라는 문구가 들어간 행을 출력
  • grep -i hello test
    • test 라는 파일에서 hello라는 문구를 대,소문자 구분 없이 검색해서 출력
  • grep -E "a|b|c" test
    • test 라는 파일에서 a 또는 b 또는 c 가 있는 모든 행을 찾아 출력
  • grep hello -A 5 test
    • test 라는 파일에서 hello라는 단어를 찾아 이후 5행까지 출력
  • grep hello -B 5 test
    • test 라는 파일에서 hello라는 단어를 찾아 이전 5행까지 출력
728x90
반응형

'TEAM STUDY > LINUX' 카테고리의 다른 글

vi 에디터의 개요  (0) 2021.01.09
유닉스의 디렉토리 조작하기  (0) 2021.01.03
GRUB 패스워드 설정  (0) 2020.12.30
퍼미션/소유자 관리  (0) 2020.12.26
운영체제  (0) 2020.12.24