IT world

리눅스 디렉토리 구조 본문

리눅스

리눅스 디렉토리 구조

엄킹 2019. 11. 20. 17:47

리눅스를 설치하면 상당히 많은 디렉토리가 자동으로 생성되고 이러한 디렉토리는 대부분 유닉스와 비슷하다. 

리눅스 시스템의 디렉토리 구조는 전체적으로 트리 구조를 하고 있으며 명령어의 종류와 성격, 사용권한등에 따라 각각 다른 디렉토리들로 구분된다. 




※ 사용 용도별 각 파일이 디렉토리에 나누어져 설치된다는 점에서 사용자는 자세히 알아야 하는 부분이다.





 root & home

- /는 최상의 디렉토리인 루트디렉토리를 의미하며 모든 디렉토리들의 시작점.

- home 디렉토리는 리눅스 사용자들의 개인공간

- 보통 일반사용자는 home 밑에 별도의 설정이 없는 경우 자신의 아이디로 된 디렉토리가 배정된다.


 bin

- 리눅스 사용에 필수적인 명령어들을 모아놓은 디렉토리 즉 기본적인 명령어가 저장된 디렉토리로 mv, cp, rm등과 같은 명령어가 존재

- 이렇게 명령어들을 모아놓은 디렉토리의 위치는 PATH 환경변수에 저장되어 있음


 sbin

- 시스템 관리에 관련된 실행 명령어들이 있는 디렉토리 (시스템 관리를 위한 명령어들이 존재)

- 시스템 점검 및 복구 명령, 시스템 초기 및 종료 명령 등 시스템 관리에 관련된 실행파일들이 존재 



 lib

- 리눅스 상에서 자주 사용되는 라이브러리를 모아놓음 

- 프로그램들이 의존하고 있는 라이브러리 파일들 존재

- 대부분의 라이브러리들은 링크로 연결되어 있음


 etc

- 리눅스 내의 설정 파일들이 위치함 즉 시스템 환경 설정 파일이 있는 디렉토리

- 네트워크 관련 설정파일, 사용자 정보 및 암호정보, 파일 시스템 ㅈ어보, 보안파일, 시스템 초기화 파일등 중요 설정파일등이 위치한

  디렉토리

- 주요 설정 파일들

1. motd : 로그인 성공시 처음에 띄워주는 문구

2. passwd : 사용자에 대한 정보

3. shadow : 사용자 패스워드 정보 (root만 볼 수 있다)

4. sudoers : sudo 권한을 가진 사용자와 권한에 대한 정보

5. fstab : 파일 시스템과 마운트 포인터

6. hosts : 도메인 네임

7. skel/ : 새로운 사용자가 추가될 때 홈 디렉토리에 기본적으로 복사해줄 파일을 포함한 디렉토리

8. init.d/ : 컴퓨터가 부팅될 때 실행될 파일들을 넣어둔 디렉토리


 proc

- 시스템의 각종 프로세서, 프로그램 정보, 하드웨어적인 정보들이 저장됨 (현재 실행되는 프로세스와 실제로 사용되는 장치, 커널이 

   수집한 하드웨어 정보가 저장됨)

- 가상 파일 시스템으로 하드디스크 상에 물리적인 용량을 갖지 않음(실제로 존재하지 않음)

- 실제 하드디스크에 저장되지 않고 커널에 의해서 메모리에 저장됨 즉 RAM위에 존재하며 커널에 의해 제어된다.

- 사용자가 /proc이나 하이ㅜ 파일에 접근할 때마다 커널에서 파일 내용을 동적으로 만들어냄

- 현재 시스템의 설정을 보여줌

- 커널의 어떤 기능을 제어할 수 있는 역할을 가지고 있음

- 각 프로세스는 고유 ID를 가지고 있으며 이 아이디를 가진 디렉토리 밑에 각종 정보를 저장한다.

1. cmdline : 프로세스를 시작한 명령행 내용

2. status : 프로세스의 내부 상태 정보

3. cwd : 프로세스의 현재 작업 디렉토리

4. /proc/meminfo : 총 메모리 사용 현황

5. /proc/stat : 시스템의 상태에 관한 정보

6. /proc/uptime : 시스템이 부팅된 후 흐른 시간

7. /proc/version : 현재 실행되는 커널 버전


 dev

- 실제로 하드 디스크에 존재하지는 않는 정보를 저장

- 모든 하드웨어(hdd, cdrom, 마우스, 가상 장치 등)를 파일로 인식하며 이를 장치파일이라 하며 시스템 디바이스파일을 저장하고 있

  는 디렉토리이다.


 mnt

- 외부 저장 매체가 마운트 되는 디렉토리(탈부착이 가능한 장치들에 대하여 일시적인 마운트포인트로 사용되는 디렉토리)

- 마운트란 한 파일 시스템의 루트 디렉토리를 다른 디렉토리에 붙임으로써 디렉토리를 사용할 수 있게 만들어주며 모든 파일 시스템

  들을 마치 그들이 속해있는 파일시스템의 서브 디렉토리인 것처럼 사용 가능하게 만드는 것

- 수동적으로 마운트 시켜야하는 저장 매체를 마운트 되는 곳으로 쓰인다.


 tmp

- 리눅스 상에서 실행되는 프로세스들의 임시 파일들을 저장하는 위치

- 일명 공용디렉토리로 불리며 시스템을 사용하는 모든 사용자들이 공동으로 사용하는 디렉토리이다.

- 웹해킹에 사용되기도 해서 주의를 요망

- 종료 시 이 위치에 있는 파일들은 모두 삭제됨


 boot

- 부팅에 필요한 필수 파일들이 저장됨

- 리눅스 부트로더(Boot Loader)가 존재하는 디렉토리로 GRUB, lilo 와 같은 부트로더와 커넬에 관한 파일들(grub.conf)이 존재한다 

  (부트로더 : 컴퓨터를 켰을 때 가장 먼저 실행되는 프로그램)


 var

- 리눅스 상에서 자주 변경되는 데이터들을 모아놓음 즉 시스템 운용중에 생성되었다가 삭제되는 데이터를 일시적으로 저장하기 위

  한 디렉토리

- 시스템에서 사용되는 동적인 파일들이 저장됨(가변 자료 저장 디렉토리)

1. /var/lib : 일반적인 시스템 운용시 계속 갱신되는 파일들을 위한 공간

2. /var/local : /usr/local 아래에 설치된 프로그램들의 다양한 데이터가 보관

3. /var/lock : 잠금 파일(lock file)이 있는 곳

4. /var/log : 다양한 프로그램들의 로그 파일

5. /var/log/wtmp : 시스템의 모든 로그인, 로그아웃 정보를 기록

6. /var/log/message : 커널과 시스템 프로그램들의 모든 메시지

7. /var/run : 시스템의 현재 정보, 부팅 시 리셋

8. /var/spool : 대기 상태에 있는 작업들을 위한 디렉토리

9. /var/tmp : /tmp에 있는 임시 파일들 보다는 좀 더 오래 유지될 필요가 있는 임시 파일들, 부팅 시 지워지지 않는다.


 usr

- 리눅스 상에서 가장 큰 공간을 사용하는 디렉토리이며 리눅스 배포판에 따라 많은 차이를 보임

- 시스템이 아닌 일반 사용자들이 주로 사용하는 디렉토리로 c++, chsh, cpp, find, du등과 같이 일반사용자들용 명령어들은 /usr/bin

  에 위치한다.

- 어플리케이션 수준의 프로그램들이 여기에 존재

1. usr/bin : 실행 가능한 명령어가 저장 즉 응용프로그램의 실행 파일들이 위치

2. usr/sbin : 시스템 관리를 위한 명령어, 주로 서버관리용이다.

3. usr/lib : 프로그램과 하위 시스템을 위한 라이브러리. /lib에 들어가지 않은 라이브러리 디렉토리

4. usr/include : C를 위한 헤더 파일

5. usr/src : 시스템을 빌드하는 프로그램의 소스가 저장되는 디렉토리(프로그램 소스, 커널 소스가 저장된다.)

6. usr/man : 명령어들의 도움말을 주는 메뉴얼 페이지 디렉토리 



'리눅스' 카테고리의 다른 글

리눅스 ssh key 생성  (0) 2019.11.25
리눅스 간단한 예제  (0) 2019.11.22
VMware centOS 7 설치  (0) 2019.11.22
리눅스 명령어 모음  (0) 2019.11.20
리눅스란  (0) 2019.11.18
Comments