박봉달의 개발생활
[프로그래밍:서버] UNIX #3 : 유닉스 디렉토리의 개요 본문
안녕하세요!
박봉달입니다!
유닉스는 특히 서버에 많이 쓰이는 운영체제입니다
우리가 많이 쓰는 윈도우와는 다른 방식으로 구성되어있는데요,
오늘은 유닉스(Unix) 디렉터리의 개요 에 대해서 알아보도록 하겠습니다!
1. 유닉스 디렉토리의 개요
* 디렉터리 계층 구조
- 트리 구조 : 리눅스에서 파일의 효율적 관리를 위해 계층적 구성
- 모든 디렉터리의 출발점 : 루트(root), 디렉터리로, 빗금으로 표시
- / : 최상위 디렉토리
- . : 현재 디렉토리
- .. : 나의 상위 디렉토리
- 서브 디렉터리 (하위) : 최상단 루트 디렉터리(/) 아래의 디렉터리 (etc, usr, home)
- 부모 디렉터리 (상위) : 서브 디렉터리 위에 자신을 포함하고 있는 디렉터리 ('..'으로 표시)
ls -F // 서브 디렉터리
/ : 디렉터리
@ : 심볼릭 링크
* 디렉터리 주요 기능
* 작업 디렉터리
- 현재 사용중인 디렉터리를 작겁 디렉터리 또는 현재 디렉터리라고 함
- 현재 디렉터리 : '.' 기호로 표시
- 현재 디렉터리 위치 : pwd 명령으로 확인
* 홈 디렉터리
- 각 사용자에게 할당된 디렉터리로 처음 사용자 계정을 만들때 지정
- 사용자는 자신의 홈 디렉터리 아래 파일이나 서브 디렉터리 생성하며 작업 가능
- 홈 디렉터리는 '~'로 표시 : ~user1
* 절대 경로
- 경로명 : 파일 시스템에서 디렉토리 계층 구조에 있는 특정 파일이나 디렉터리의 위치 표시 (구분자 : /)
- 절대 경로명 : 항상 루트 (/) 디렉터리부터 시작
- 루트 디렉터리부터 시작하여 특정 파일이나 디렉터리의 위치까지 이동하면서 거치게 되는 모든 중간 디렉터리의 이름을 표시
- 특정 위치를 가리키는 절대 경로명은 항상 동일
* 상대 경로
- 현재 디렉터리를 기준으로 시작
- / 이외의 문자로 시작
- 현재 디렉터리를 기준으로 서브 디렉터리로 내려가면 그냥 서브 디렉터리 명을 추가
- 상위 디렉터리로 가려면 '..' 를 추가
- 상대 경로명은 현재 디렉터리가 어디냐에 따라 다름
* 디렉터리 내용보기
-a : 숨길 파일 포함하여 모든 파일 목록 출력
-d : 디렉터리 자체의 정보 출력
-i : 첫번째 행에 inode 번호 출력
-l : 파일의상세 정보 출력
-A : .과 .. 를 제외한 모든 파일 정보 출력
-F : 파일의 종류를 표시
-L : 심벌릭 링크 파일의 경우 원본 파일 정보를 출력
-R : 하위 디렉터리 목록까지 출력
* 상세한 정보 출력하기 : -l 옵션
* ls 명령의 심벌릭 링크 : dir, vdir
- 윈도의 cmd 창에서 사용하는 명령과 동일
2. 유닉스 디렉토리 이동/생성/삭제 등
* 디렉토리 이동 명령어 : cd
- 현재 작업 디렉토리를 지정한 디렉토리로 이동
- 디렉토리 지정하지 않을 시 자신의 홈 디렉토리로 이동
- 형식 : cd[디렉터리]
cd cptest
pwd
/export/home/user1/cptest
cd ..
pwd
/export/home/user1
* 디렉터리 만들기 : mkdir
- 기능 : 디렉터리를 생성
- 형식 : mkdir [옵션] [디렉터리]
- -p : 하위 디렉터리를 계층적으로 새성시 중간단계의 디렉터리가 없으면 자동으로 생성하여 전체 디렉터리 생성
* 디렉터리 삭제하기 : rmdir
- 기능 : 디렉터리를 삭제
- 형식 : rmdir [옵션] [디렉터리]
- -p : 지정한 디렉터리를 삭제하며, 그 디렉터리의 부모 디렉터리가 비었을 경우 그것도 자동 삭제
* find 명령어
- 기능 : 디렉토리 내 파일이나 디렉토리를 찾는 명령어
- 단순히 파일 이름 뿐 아니라 파일 모드, 타입, 크기, 마지막으로 접근한 시간 등 여러 조건으로 검색
- 파일이 아닌 디렉토리를 검색하려면 명령어 맨 끄에 "-type d" 라는 옵션 붙여주어야 함
- 루트 디렉토리 아래서 et로 시자가는 모든 디렉토리 찾을 시 find /-name 'et*' -type d
- '/'는 루트 디렉토리 즉 최상위 디렉토리를 의미
- 형식 : find [검색 디렉토리] [옵션] [파일명]
- 옵션 : -iname/-name
-name : 대소문자 구분
-iname : 대소문자 구분 안함
* type 명령어
- b : 블록 특수 파일
- c : 캐릭터 특수 파일
- d : 디렉토리
- f : 일반 파일
- l : 심볼릭 링크
- p : 파이프
- s : 소켓
* grep 명령어
- 하위 폴더를 포함하여 존재하는 모든 파일에서 원하는 단어를 찾아주는 명령어
- 검색어 내 공백문자 있을 시 " " 사용
- 형식 : grep [옵션] [검색어] [파일명]
-i : 영문의 대소문자 구별 않음
-v : pattern 을 포함하지 않는 라인 출력
-n : 검색 결과의 각 행의 선두에 행번호
-l : 파일명만 출력
-c : 패턴과 일치하는 라인의 개수만 출력
-r : 하위 디렉토리까지 검색
-A : after n줄까지 검색
-B : before n 줄까지 검색
이상으로 유닉스 포스팅을 마칩니다!
정리한 내용이 나중에 쓰이길 바라며 포스트를 마칩니다 :)
'IT > UNIX' 카테고리의 다른 글
[프로그래밍:서버] UNIX #6 : 유닉스 셸의 종류와 기능, 환경 변수 (0) | 2021.01.16 |
---|---|
[프로그래밍:서버] UNIX #5 : vi 에디터 개요와 활용 / 명령어 (0) | 2021.01.13 |
[프로그래밍:서버] UNIX #4: 디렉토리 생성/삭제 (0) | 2021.01.05 |
[프로그래밍:서버] UNIX #2 : 퍼미션/소유자 관리 (0) | 2020.12.30 |
[프로그래밍:서버] UNIX #1 : 유닉스 파일 조작 (0) | 2020.12.30 |