일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- lua
- 영화
- effective stl
- 암시적 변환
- exception
- 보편 참조
- virtual function
- implicit conversion
- 반복자
- c++
- 티스토리챌린지
- 상속
- 오블완
- 예외
- operator new
- reference
- 언리얼
- more effective c++
- std::async
- universal reference
- Effective c++
- iterator
- 게임
- 영화 리뷰
- effective modern c++
- UE4
- resource management class
- 스마트 포인터
- 참조자
- Smart Pointer
- Today
- Total
스토리텔링 개발자
[Linux] 디렉토리(Directory) 본문
개요
리눅스에는 루트와 그 아래로 수많은 디렉토리들로 구성되어 있습니다.
그 많은 디렉토리들은 대체 어디에 쓰이는 걸까요.
디렉토리들에 대해 말하기 이전에 다음 문장을 먼저 이야기해 보도록 하겠습니다.
Everythig is file
모든 건 파일이다.
이 문장은 유닉스 시스템의 모토입니다.
그 뜻은 말 그대로입니다.
유닉스와 그 계보를 잇는 리눅스들은 일반 파일, 디렉토리, 하드 드라이브, 키보드, 프린터, 소켓, 파이프 등, 다룰 수 있는 모든 것들을 파일로 처리합니다.
모든 걸 파일로 처리하기 위해 리눅스는 파일 디스크립터(file descriptor) 라는 것을 사용합니다.
루트 디렉토리, 홈 디렉토리
본격적으로 디렉토리들을 다뤄보기 전에, 루트 디렉토리와 홈 디렉토리의 개념에 대해 잠깐 다루고 지나가도록 하겠습니다.
'/ ' 루트 디렉토리
최상위 디렉토리로, 모든 디렉토리들의 시작점입니다.
윈도우 시스템의 C 드라이브라고 할 수 있겠습니다.
'~' 홈 디렉토리
사용자로 시작하면 루트가 아니라 '~' 라는 경로에서 시작하죠.
이는 사용자의 홈 디렉토리를 의미합니다.
즉, 사용자에게 허용된 공간 중 루트 공간이라고 볼 수 있죠.
경로로 치면 /home/사용자 이름/ 입니다.
/home 은 사용자의 홈 디렉토리를 모아둔 장소입니다.
상세
자, 그럼 본격적으로 디렉토리들에 대해 다뤄보도록 하겠습니다.
물론 그 광범위한 모든 디렉토리를 다룰 순 없고, 제 리눅스의 루트 아래에 있는 폴더들만 다뤄보겠습니다.
/bin, /sbin(binary)
OS의 구동에 필요한 것이 들어 있습니다.
대표적으로는 ls, mkdir, cat, chomd, chown 같은 프로그램들이 말이죠.
sbin은 bin과 같은 용도지만, 루트유저 전용 프로그램들입니다.
/dev(device)
디바이스들이 파일 형태로 채워져 있습니다.
각 디바이스는 노드(node)라고 하며, 하드웨어 장치일수도 있고 가상 장치일 수도 있습니다.
각 장치에 읽기 / 쓰기를 처리할 수 있는데요.
예를 들어 프린터에 쓰기 명령어를 사용하면 프린팅이 됩니다.
/home
사용자의 홈 디렉토리들이 들어 있습니다.
/mnt(mount)
사용자가 명령어를 통해 마운트 했을 때 파일 시스템 마운팅 포인트입니다.
즉, 사용자가 명령어로 마운트 시킨 cd-rom, usb 등이 들어가는 디렉토리입니다.
/opt
응용 프로그램 패키지 설치 디렉토리입니다.
패키지 매니저가 자체적으로 설치와 삭제를 수행합니다.
/root
시스템 관리자(root 계정)의 홈 디렉토리입니다.
/srv(server)
서버를 위한 디렉토리입니다.
주로 FTP, SFTP, RSync 같은 프로토콜로 외부 사용자와 공유하기 위해 사용합니다.
/tmp(temporary)
현재 작업 내용 같은 임시 파일들이 저장되는 디렉토리입니다.
/var(variable)
각종 로그, 데이터베이스 캐싱파일, 웹서버 이미지 파일들이 기록되는 디렉토리입니다.
웹서버 운영 시엔 /var/www 에 기본 웹 서비스 페이지가 들어 있습니다.
DB 서버 운영 시 각종 DB 데이터들도 /var 하위에 기본으로 저장됩니다.
/media
os가 자동으로 마운트 했을 때 파일 시스템 마운팅 포인트입니다.
즉, os가 자동으로 마운트 시킨 cd-rom, usb 등이 들어가는 디렉토리입니다.
/proc(process)
각 프로세스들이 파일화 되어 있는 디렉토리입니다.
현재 cpu 사용값, IO 포트 등 여러 정보들을 포함합니다.
실제 디스크 공간에는 존재하지 않습니다.
/run
계속 실행되고 있는 프로세스들이 들어 있는 디렉토리입니다.
/sys(system)
실제 디스크의 물리 영역이 아니라 가상 영역(RAM 베이스의) 디렉토리입니다.
현재 커널의 시스템 전반에 대한 내용을 제공합니다.
재구동할 시 새로 생성됩니다.
/usr(user)
시스템이 아닌 일반 사용자가 사용하는 프로그램이 설치되는 디렉토리입니다.
CentOS 7 이상부터 루트 아래의 bin, sbin, lib 같은 폴더들은 사실 심볼릭 링크이며
usr 디렉토리 아래에 실제 폴더가 위치하고 있습니다.