본문 바로가기
컴퓨터공학기초 개념/시스템 프로그래밍

12. shell - 리눅스 파일 시스템 탐색

by devraphy 2021. 9. 10.

0. 시작하기전에 

- 이전 포스팅에서 리눅스 파일 시스템에 대해서 알아보았다. 

- 가장 중요한 부분은 모든 자원(데이터, 디바이스, etc)을 파일로 취급하여 다룬다는 것이다. 

- 파일 시스템은 다양한 외부장치 또는 디바이스도 파일로서 처리하는데, 

- 이것이 가능한 이유는 추상화(abstraction)을 통한 가상파일시스템 인터페이스를 이용하기 때문이다. 

- 추상화라는 개념을 어려워 할 것 같은데, 추상화란 복잡한 기능이나 데이터의 공통적인 특성을 구조화(uniformation) 시킨 것이다. 

- 추상화를 사용하면 기본적으로 제공되는 기능이 있고, 세부적으로 customize 또는 optimize를 하고 싶다면

- 추가적으로 코드를 작성하여 기능을 수정할 수 있다.


1. 파일과 inode

- 리눅스는 모든 자원을 파일로 취급하여 다룬다.

- 그리고 inode라는 파일 시스템 형식을 사용하여 각 파일을 구분한다. 

- 그렇다면 리눅스는 어떻게 파일을 탐색할까? 

 

a) dentry(directory entry)

- 리눅스는 모든 자원에 대해서 전역 네임 스페이스를 사용한다. 

- 전역 네임 스페이스는 모든 자원이 root directory 부터 시작되는 파일경로를 갖는다는 것이다. 

- dentry에는 다양한 정보다 들어있다. 

- dentry에는 파일명, 파일의 inode 번호, 파일이 속해있는 디렉토리 등이 매핑되어 있다. 

- 그러므로 dentry를 통해서 어떤 디렉토리에 어떤 파일 또는 디렉토리가 존재하는지 알 수 있다. 

- 이처럼 dentry를 사용하여 파일의 위치를 탐색할 수 있다. 

 

b) 리눅스의 일반적인 파일구조

- 당연히 환경에 따라 다른 디렉토리가 존재할 수 있다.

- 아래의 그림은 리눅스가 가지고 있는 일반적인 디렉토리 구조이므로, 한번 훑어보는 것을 추천한다. 

▶ home 디렉토리 

   - 유저를 생성하면 자동적으로 home 디렉토리 내부에 username으로 된 디렉토리가 생성된다. 

   - 유저가 로그인을 하면 /home/username 의 경로가 최초 시작점이 된다. 

 

▶ media 또는 mnt 디렉토리

   - 추가적인 저장매체가 컴퓨터와 연결되거나 마운트 작업을 통해 저장공간이 분리되는 경우,

   - media 또는 mnt 디렉토리와 연결된다. 

 

▶ etc 디렉토리

   - 다양한 설정 파일이 위치하는 디렉토리 

 

▶ dev 디렉토리

   - 외부장치가 연결되면 dev 디렉토리 내부에 파일형식으로 구성된다. 

 

▶ bin 또는 sbin 디렉토리 

   - shell 명령어의 실행파일이 존재하는 디렉토리 

   - path 설정을 위한 파일이 여기에 존재한다. 

 

* path 설정이란? 

   - 리눅스는 어떤 파일을 실행시키기 위해 해당 파일의 전체 경로를 입력해야한다. 

   - 실행 명령어와 함께 파일의 경로를 path 설정파일에 미리 등록해놓으면, 경로없이 파일이름 또는 실행명령어 하나로 실행할 수 있다. 

 

▶ /var/log 디렉토리

   - 현업에서 서버의 로그기록을 파일 형태로 저장되는 디렉토리  

댓글