-리눅스의 디렉토리 종류 및 구조에 대해 알아본다.
-생활코딩의 리눅스 강의를 바탕으로 학습 및 보충학습하였다.
-ubuntu 12.10을 사용하였다.
리눅스에서는 루트 디렉토리(/)를 기준으로 트리형태로 여러 디렉토리가 존재한다. 디렉토리의 종류와 성격마다 명령어, 파일들이 분류되어 있다. 이는 리눅스가 파일시스템표준안(Filesystem Hierachy Standard, FHS)을 따르기 때문이다. FHS에 맞게 명령어와 파일들이 적절한 디렉토리에 잘 정리가 되어 있다. 표준안은 강제성이 없기 때문에 현재 일부 리눅스 시스템은 FHS를 잘 따르지 않는다고 한다.
현재는 자주 안 쓰이는 디렉토리들도 있고 필수적으로 쓰이는 디렉토리들도 있는데 알아야 하는 디렉토리들을 정리한다.
/(root)
가장 최상위 디렉토리이다. 절대경로로 접근할 때는 반드시 /로 시작한다. 윈도우와 다른 특징은 키보드, 마우스 등의 장치도 파일시스템상의 디렉토리나 파일 형태로 존재한다는 것이다. USB를 꼽으면 또 다른 루트(F드라이브 등)가 만들어지는 것이 아니라 /dev/sdx처럼 루트로부터 시작하는 하위 디렉토리에 붙어 보여진다.
외부 장치를 디렉토리 형태로 붙이는 것을 마운트(Mount)라고 한다.
bin&sbin
Binary의 약자이다. OS의 최소한의 정상 구동을 위한 명령어와 파일들이 들어있다.cat, chmod, chown 등 기본적인 프로그램이 내장되어 있다. 또한 루트사용자와 일반사용자 모두 접근 가능하다.
Sbin은 System Binary의 약자로 루트 유저만 실행할 수 있는 프로그램들이 들어있다. (reboot, ifconfig 등)
boot
부트로더와 같은 시스템 부팅에 필요한 파일들이 들어있다.
/dev
Device의 약자이다. 위에서 언급했듯이 입출력 장치 등이 파일, 디렉토리 형태로 존재한다.
/var
variable의 약자로 변할 수 있는 파일들이 위치한다. log나 db 캐싱파일, 웹서버 이미지 파일 등이 위치할 수 있다.
/tmp
temp files. 컴퓨터를 끄고 키면 사라지는 임시파일들이 위치한다. 세션정보나 워드프로세서 현재 작업내용 등이 저장된다. 그렇기 때문에 영구적으로 사용할 파일을 만들면 안 된다.
/home
등록된 사용자의 홈 디렉토리이다. 생성된 유저들은 /home/유저명과 같은 식으로 위치한다. 그러나 최고 관리자인 root의 홈 디렉토리는 /home에 저장되지 않고 별도로 /root에 저장된다.
/opt
optional의 약자로 윈도우의 Programs files폴더와 비슷한 기능을 한다. 각종 응용프로그램들이 이곳에 저장된다.
/usr
루트 디렉토리와 함께 중요한 시스템 디렉토리 계층을 구성한다. 공유 가능한 대부분의 프로그램들이 설치되며 네트워크를 이용해서 여러 개의 시스템을 연결할 경우 이 디렉토리를 공유해서 설치된 프로그램들을 활용한다. 그렇기 때문에 항상 읽기 전용으로 마운트 되어야 한다. /opt와 비슷한 성격이지만 /usr이 좀 더 중요하고 공유가능한 프로그램들이 위치하는 것 같다.(정확하지 않을 수 있기 때문에 틀린 경우 피드백 부탁드립니다.)
이번 포스팅은 여러 블로그들을 참고했다. 실무적으로 경험이 많이 없기 때문에 단순한 설명 가지고는 와닿지 않는 포인트들이 있기 떄문에 여러 포스팅의 글을 참고해봤고 실제로 cd 명령어로 들어가 ls -al로 파일이나 폴더를 보면서 학습했다. 지금은 크게 실무에 영향을 주는 내용들은 아니지만 추후 리눅스를 사용한다면 상식적으로 알아야할 것 같아 정리해보았다.
그리고 이밖에도 여러 필수적으로 알아야할 디렉토리들이 있으니 다른 블로그도 많이 참고할 필요가 있을 것 같다.
출처 : medium.com/harrythegreat/%EB%A6%AC%EB%88%85%EC%8A%A4-%EA%B8%B0%EC%B4%88-%EB%A3%A8%ED%8A%B8%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EA%B5%AC%EC%A1%B0-b3e4871af4b3, jadehan.tistory.com/3, www.tuwlab.com/ece/11309, firedev.tistory.com/entry/Linux-Unix-%EB%A6%AC%EB%88%85%EC%8A%A4%EC%8B%9C%EC%8A%A4%ED%85%9C-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EA%B5%AC%EC%A1%B0%EC%99%80-%EA%B8%B0%EB%8A%A5
'개발자 일지 > Linux' 카테고리의 다른 글
[리눅스마스터2급]1차 시험 문제 학습하기 (0) | 2021.05.08 |
---|---|
[리눅스 기초]백그라운드, 포그라운드 프로세스 (0) | 2021.05.06 |
[리눅스 기초]파일을 찾는 방법(location,find,whereis) (0) | 2021.05.04 |
[리눅스 기초]프로세스 확인하기(ps, top) (0) | 2021.05.03 |
[리눅스 기초]쉘 스크립트(Shell Script) 개념 및 사용법, 컴파일 언어와 인터프리터 언어의 차이점 (0) | 2021.03.14 |
[리눅스 기초]I/O Redirection 개념 및 사용법 (1) | 2021.03.12 |
[리눅스 기초]CLI 개념 및 사용 이유, 다중명령어(세미콜론,파이프라인 등) (0) | 2021.03.09 |
[리눅스 기초]다운로드 방법 - wget, git clone (2) | 2021.03.07 |