일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gitmoji
- built-in function
- self
- f-string
- neural network
- 구글코랩
- Colab
- 실수
- 정적 메서드
- mnist
- 정수
- 맴버연산자
- cache locality
- ITER
- randrange
- Keras
- 비공개 속성
- 깃모지
- Next.js
- 식별연산자
- class
- 추상 클래스
- 메서드
- nextjs
- PYTHON
- __init__
- choice
- 인공신경망
- 캐시의 지역성
- 메서드채이닝
- Today
- Total
IT world
리눅스 디렉토리 구조 본문
리눅스를 설치하면 상당히 많은 디렉토리가 자동으로 생성되고 이러한 디렉토리는 대부분 유닉스와 비슷하다.
리눅스 시스템의 디렉토리 구조는 전체적으로 트리 구조를 하고 있으며 명령어의 종류와 성격, 사용권한등에 따라 각각 다른 디렉토리들로 구분된다.
※ 사용 용도별 각 파일이 디렉토리에 나누어져 설치된다는 점에서 사용자는 자세히 알아야 하는 부분이다.
■ 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 |