728x90
디렉토리 계층 구조
디렉토리 계층 구조
- 데이터를 효율적으로 관리하기 위해 시스템을 계층적인 트리 구조로 구성
- 트리 구조 : 모양이 나무를 거꾸로 한 것과 유사
- 파일이 나무의 잎에, 디렉토리가 나뭇가지에 해당
- 루트(root) 디렉토리
- 모든 디렉토리, 파일의 원조 및 시작
- 슬래시(/) 기호로 표시
여러 가지 디렉토리
- 상위 디렉토리는 기호 ..으로 표시
- 모든 디렉토리의 최상위는 루트 디렉토리(/)
- 루트 디렉토리 : 상위 디렉토리가 없는 유일한 디렉토리
- 작업 디렉토리(working directory), 현재 디렉토리(current directory)
- 현재 작업을 하고 있는 디렉토리
- 기호 ‘.’로 표시
홈 디렉토리
- 기호 틸드(~)로 표시
- 다중 사용자 시스템에서 각 사용자에게 할당된 작업 영역
- 파일의 생성, 삭제를 자유롭게 할 수 있는 디렉토리
리눅스의 계층구조 디렉토리
루트(/) 디렉토리
- 리눅스 시스템의 최상위 디렉토리
- 디렉토리 구조의 시작
- 리눅스는 루트(/)를 기준으로 디렉토리를 생성
$ cd /
$ ls
bin etc lost+found opt run sys var
boot home media proc sbin tmp
dev lib mnt root srv usr
$
기본 실행 명령어 디렉토리 (/bin)
- ‘binaries’, 리눅스 시스템에서 가장 많이 사용되는 디렉토리 중 하나
- 기본 명령어 파일들이 2진수의 형태로 모여 있는 디렉토리
- 대부분의 일반적인 명령어들 포함
시스템 운영 명령어 디렉토리 (/sbin)
- ‘system binaries’, 시스템 관리(부팅, 복구, 보수 등)를 위한 명령어들
- 시스템 운영에 필요한 명령어들 포함
- 관리자 계정인 루트(root)만이 사용할 수 있는 명령어들로 구성
시스템 설정 파일 디렉토리 (/etc)
- 리눅스 시스템에 대한 환경 설정과 관련된 파일 및 디렉토리
- 사용자 관리를 위한 암호 관련 파일, 네트워크 정보를 보유한 파일 등 시스템 관리에 전반적인 파일들 존재
부팅 관련 파일 디렉토리 (/boot)
- 리눅스 커널이 저장되어 있는 디렉토리
- 각종 리눅스 부트에 필요한 부팅 지원 파일들
입출력 장치 연결 마운트 디렉토리 (/mnt)
- ‘mount directory’, 각종 입출력 장치와 연결할 때 마운트하게 되면 해당 파일 시스템의 내용이 이 디렉토리에 저장됨
- 가상 머신으로 리눅스 설치시 비어있음
임시 마운트 디렉토리 (/media)
- CD/DVD 또는 FDD, USB 등이 임시로 마운트되는 역할 수행
- 가상 머신으로 리눅스 설치시 비어있음
응용 패키지 프로그램 설치 디렉토리 (/usr)
- 사용자가 사용할 응용 패키지 프로그램 설치시 사용
- 윈도우 운영체제에서의 [Program Files]와 같은 역할
- 시스템에 사용되는 각종 응용 프로그램들이 설치되는 디렉토리
- 거의 모든 프로그램과 그에 관련된 명령어 및 라이브러리들 포함
- X 윈도우 시스템 관련 파일들과 리눅스 커널 소스, 각종 C 언어 관련 헤더 파일 등 저장
공유 라이브러리 디렉토리 (/lib)
- 프로그램들의 각종 라이브러리들 존재, 대부분 공유 라이브러리
- 평소에는 파일 크기를 줄여서 존재, 라이브러리 실행시 풀어서 사용
일반 사용자들의 홈 디렉토리 (/home)
- 시스템 계정을 사용하는 사용자들의 홈 디렉토리
- FTP, www 등과 같은 서비스 디렉토리들 저장
- 시스템에서 사용되지 않고, 원격지 상에서 시스템으로 접속을 시도하는 사용자들을 위한 공간으로 사용
시스템 디바이스 장치 파일 디렉토리 (/dev)
- 시스템의 각종 장치들을 사용할 수 있도록 장치 드라이버들 저장
- 리눅스에서는 각종 장치들을 하나의 파일로 취급
- 시스템은 각 장치를 설치하는데 필요한 정보를 이 디렉토리에서 가져옴
가상 파일 시스템 디렉토리 (/proc)
- 시스템의 각종 프로세스와 프로그램 정보 및 하드웨어적인 정보들 저장
- 물리적인 하드디스크 용량을 사용하지 않고 커널에 의해 메모리에 저장됨
가변 자료 저장 디렉토리 (/var)
- 시스템에서 사용되는 동적인 파일, 즉 변경되는 파일들 저장
- 각종 시스템 로그 파일, 사용자 로그인에 대한 보안 기록 등
임시 파일 저장 디렉토리 (/tmp)
- 프로그램 수행 과정에서의 임시 파일들 저장
리눅스에 없는 프로그램 추가 설치 디렉토리 (/opt)
- 리눅스에서 제공되지 않는 프로그램을 추가로 설치할 경우 사용
복구 프로그램인 fsck에 의해 사용되는 디렉토리 (/lost+found)
- 수행 중 파일시스템의 이상 유/무를 진단하고 복구하는 프로그램인 fsck(file system check)에 의해 사용되는 디렉토리
- 일반 사용자 계정으로 로그인한 상태에서는 접근 불가
- 관리자 계정인 root로 접속해야 디렉토리의 내용을 볼 수 있음
$ cd /lost+found
-bash: cd: /lost+found: Permission denied
$
디렉토리 계층 구조
디렉토리
- 서로 연관이 있는 파일들을 하나의 그룹으로 만들어서 저장할 수 있도록 구분된 공간을 의미
- 각 디렉토리의 이름은 “/”로 구별
- 특정 파일을 지정할 때는 맨 마지막에 파일이름을 쓴다.
- 파일시스템의 맨 상위 디렉토리를 root 디렉토리
- root 디렉토리는 “/”로 표기
경로명(path name)
- 파일이나 디렉토리의 전체 이름
- 디렉토리 계층 구조에 있는 특정 파일이나 디렉토리의 위치를 나타내는 것
- 디렉토리와 디렉토리, 디렉토리와 파일을 구별하는 구별자로 “/”를 사용
- 경로명이 디렉토리 이름으로 끝나는 경우 제일 뒤에 “/”를 붙이거나 붙이지 않을 수 있음
- 절대경로명과 상대경로명이 있음
- 파일 이름이나 디렉토리 지정하는 방법도 절대경로명을 사용하거나 상대경로명을 사용하는 방법
- 파일을 명시할 때, 별도의 경로명을 써주지 않으면 현재 디렉토리를 가리킴
절대경로명
- 루트 디렉토리를 기준으로 파일의 위치를 나타낸 것
- 루트 디렉토리부터 시작해서 특정 파일의 위치까지 이동하는데 거치는 모든 디렉토리의 이름 표시
- 항상 “/”로 시작
- 특정 파일을 가리키는 절대경로명은 항상 동일
상대경로명
- 현재 디렉토리를 기준으로 파일의 위치를 나타낸 것
- 현재 디렉토리부터 시작해서 하위로 내려가면 디렉토리 이름 추가
- 루트를 향해 올라가면 “..”을 추가
- “/” 이외의 문자로 시작
- 상대경로명은 현재 디렉토리의 위치에 따라 달라짐
탐색 경로
- 명령어를 실행시키면 리눅스는 명령어의 실행 파일이 있는 위치를 찾음
- 탐색 경로 : 명령어를 어디에서 찾아야 할지 명시하는 것
- 명령어가 존재하는 디렉토리가 탐색 경로에 없으면 명령어 이름만으로 실행시킬 수 없음
- 절대 경로명을 다 써주어 실행시키거나
- 현재 작업 디렉토리를 나타내는 “.”을 사용
명령 실행시 탐색 경로의 예
- test 파일의 내용이 다음과 같은 경우
$ cat test
ls
date
cat test
$
- 현재 작업 디렉토리가 탐색 경로에 지정되지 않았으므로 실행되지 않음
$ test
$
- 현재 작업 디렉토리를 지정한 경우
$ ./test
Desktop Downloads Music Public Videos
Documents examples.desktop Pictures Templates
2015. 06. 01. (월) 13:34:25 KST
ls
date
cat test
$
- 또는 절대경로명을 다 써줄 수 있음
$ /home/ksshin/test
기호로 디렉토리 이동
- ~ : 홈 디렉토리로 이동
- . : 현재 디렉토리 지정
728x90
'프로그래밍 > Unix' 카테고리의 다른 글
유닉스 디렉토리 생성, 삭제 (0) | 2020.03.23 |
---|---|
유닉스 디렉토리 이동 (0) | 2020.03.23 |
유닉스 파일의 종류 (0) | 2020.03.22 |
유닉스 일반 명령어 (0) | 2020.03.22 |
유닉스 사용자 계정 (0) | 2020.03.22 |