리눅스 트리 계층구조( linux tree directory) 이해

  

 

리눅스는 계층적인 트리 형태로 구성되어 있다.
리눅스는 윈도우즈와는 달리 드라이브 라는 개념을 사용하지 않고 파티션(partition)과 마운트(mount)라는 개념을 사용한다.
리눅스는 유닉스와 마찬가지로 모든것을 파일로 취급하여 처리하며 리눅스의 기본적인 디렉토리 구조는 다음과 같다.
 

 

/ (root)
최상위 디렉토리로서, 루트 디렉토리라고 한다.
모든 디렉토리는 루트를 기준으로 생성되며 루트는 모든 디렉토리의 출발점이자 다른 파티션의 연결점이다.
/bin
시스템에서 사용되는 기본 명령어들이 위치하는 디렉토리로 많은 리눅스 명령이 저장되어 있다.
'bin' 이라는 이름은 이곳의 프로그램 배부분이 이진 파일이라는 것을 의미한다.
/var
내용이 자주 변경되는 가변 자료들이 저장되는 곳으로, 기본적으로는 시스템을 운영할 때 발생되는 로그 파일들이 저장된다.
다은과 같은 서비스를 제공하는 서버로 리눅스를 운영할때 사용 하면 바람직 하다.
- 메일을 송/수신할 때 임시로 저장되는 스풀
- 프린트로 전송하기 위해 임시로 저장하는 프린트 스풀 데이터
- 레드햇 배포판에서 패키지로 제공하는 아파치 웹 서버 관련 자료
- MySQL의 데이터 베이스
- FTP의 최상위 디렉토리 등등

/boot
부팅에 필요한 지원 파일들이 위치하는 디렉토리이며, 시스템 부팅 시 부트로더가 커널의 위치를 참조 한다.
/dev
각 장치에 대한 장치 파일이 위치하는 디렉토리로, 용량을 차지 하지 않는 가상의 디렉토리다.
통상적으로 파일을 저장하지 않는다.
/dev 디렉토리에 있는 유용한 파일 가운데 하나는 null 이다.
이파일은 존재하지 않거나 비어 있는 장치를 의미한다.
/etc
리눅스에서 사용되는 모든 어플리케이션 및 환경 설정에 필요한 설정 파일들이 존재한다.
실행파일은 존재하지 않고 편집기를 이용하여 해당 파일을 변경하여 시스템의 설정을 변경하는 디렉토리다.
시스템을 관리하는데 필요한 프로그램이나 파일이 있다.
가장 유명한 파일은 시스템의 암호 파일인 passwd가 있다.
/home
일반 사용자들의 홈 디렉토리가 위치하는 곳이다.
또한 FTP, MySQL, 등 별도의 공간을 요구하는 서비스를 위한 디렉토리로 사용될 수도 있다.
/lib
기본적인 라이브러리가 위치하는 디렉토리로서, 시스템 운영이나 프로그램을 구동할 때
필요한 공유 라이브러리 및 부팅할 때 사용되는 커널 모듈도 포함된다.
/mnt

시스템 관리자에 의해 임시로 마운트된 파일 시스템들이 위치할 곳이다.
CD-ROM 이나 USB에 대한 기본 마운트 포인트를 제공한다.
/proc
프로세스와 시스템 정보를 제공하기 위한 목적으로 설계된 가상 파일 시스템을 위한 디렉토리다.
/proc은 실제로 하드디스크 상에 존재하는 것이 아니라 메모리에 존재하는 것으로서
메모리에 존재하는 내용을 마치 하드디스크에 있는 하나의 파일처럼 다룰수 있게 해 주는 디렉토리다.
/sbin
sbin은 시스템 바이너리(system binaries)의 약자로 시스템 관리자가 사용하는 시스템운영에 필요한 명령어가 존재하는 디렉토리다.
즉 관리자만 사용하며 해당 명령어로는 fdisk, reboot 등이 있다.
/tmp
프로세스 생성 과정에서 발생되는 임시 파일을 저장하는 디렉토리로, 수시로 파일이 생성되고 삭제된다.
시스템을 재구동하는 경우에는 존재하는 모든 파일이 삭제된다.
일반적으로 짧은 시간 동안만 저장할 필요가 있는 파일을 이곳에 저장한다.
/usr
모든 어플리케이션 및 시스템 파일들, 라이브러리 파일 및 실행 파일이 위치하는 디렉토리로, 비교적 많은 공간이 필요하다.
/usr의 하위 디렉토리

 디렉토리명

 

 /usr/bin

 실행 파일을 보관하는데 사용한다.

 /usr/dict

 리눅스 사전이 사용하는 파일들이 들어 있다.

 /usr/include

 프로그래머들이 사용하는 파일들이 존재한다.

 /usr/lib

 /lib의 일부분처럼 프로그램의 라이브러리들이 존재한다.

 /usr/local

 시스템 관리자가 자신의 프로그램이나 문서를 저장하는데 사용한다

 /usr/man

 매뉴얼에서 사용하는 디렉토리와 파일이 들어 있다.

 

 디렉토리명 
 /usr/bin  실행 파일을 보관하는데 사용한다.
 /usr/dict  리눅스 사전이 사용하는 파일들이 들어 있다.
 /usr/include  프로그래머들이 사용하는 파일들이 존재한다.
 /usr/lib  /lib의 일부분처럼 프로그램의 라이브러리들이 존재한다.
 /usr/local  시스템 관리자가 자신의 프로그램이나 문서를 저장하는데 사용한다
 /usr/man  매뉴얼에서 사용하는 디렉토리와 파일이 들어 있다.
  


 리눅스 디렉토리 구조 -2
 
리눅스는 설치를 하면 최상위 디렉토리가 존재하기 마련인데
바로 루트 디렉토리이다.
 루트 디렉토리는 / 으로 표시한다.
폴더 이름 자체가 / 으로 되어있다는 뜻이다.
 하지만 /(루트) 디렉토리가 존재하는 반면 /root 라는 디렉토리도 존재하는데
 (루트)디렉토리는 말그대로 루트 디렉토리이고, /root 디렉토리는 관리자 홈 디렉토리를 말한다.
 


 리눅스 GUI 환경에서 파일 브라우저로 /를 검색해본 결과 ( 프로그램 -> 파일 브라우저 )
위와 같이 나온다.
 
리눅스의 파일 브라우저는 윈도우에서 탐색기라고 보면된다.
파일이 여러개있다.
루트 디렉토리 안에 들어있는 또다른 디렉토리들에 대한 정보를 알아보자.
 
/root : 관리자 홈 디렉토리
/boot  : 커널 디렉토리 (부팅 관련 파일 )
/etc  : 시스템 설정파일 디렉토리
/usr : 응용프로그램 디렉토리
/var : 로그파일, 메일 디렉토리
/lib : 라이브러리 디렉토리
/tmp : 임시 디렉토리
/home : 일반계정 홈디렉토리
/dev : 장치파일 디렉토리
/proc : 프로세스 정보 디렉토리
/media, /mnt : CDROM 마운트 디렉토리
  
현재,부모,자식 디렉토리
 
1. 현재 디렉토리 : 현재 디렉토리는 현재 자신의 위치한 디렉토리를 말한다.
" . "로 표현
● 사용자가 현재 작업중인 디렉토리
 
2. 부모 디렉토리
" .. "로 표현
● 현재의 디렉토리가 포함되어 있는 바로 위의 디렉토리
 
부모 디렉토리 입장에서 하위 디렉토리를 본다면 그 하위 디렉토리는 자식 디렉토리가 되는것임!
  
상대 경로 이름과 절대 경로 이름
 
경로(path) : 파일이 위치한 부분
 절대경로(absolute path) : 루트(/) 디렉토리부터의 위치
 상대경로(relative path) : 현재의 디렉토리부터의 위치
 
예를 들어보자.
/home 디렉토리에 mulhanbangul 이라는 파일이 있다고 치면
절대 경로로 치면 /home/mulhanbangul 이 되는 것이다.
 
반면에
 
상대경로로 표현하면 ../mulhanbangul 이렇게 된다.
 
절대경로와 상대경로의 쓰임은 다음 포스트에서 명령어를 알아가면서
직접 이해해 볼터니 잘 기억해두자.
 
 
명령어 디렉토리
 
명령어 디렉토리는 명령어가 저장되어있는 디렉토리를 말한다.
한마디로 그 디렉토리마다 명령어 제한이 존재하는데
예를들어 아래처럼 /bin인 경우에는 모든 사용자가 사용이 가능한 명령어를 저장하고있다.
 
/bin : 슈퍼유저(root) + 일반유저 = 모든 사용자가 쓸 수있는 명령어
/sbin : 슈퍼유저(root)용 명령어
/usr/bin : 대부분의 사용자 명령어
/usr/sbin : 시스템 관리용 명령어
/usr/local/bin : 리눅스 OS 설치 후에 추가된 프로그램 명령어
 
 
보면 /bin /usr/bin은 그럼 서로 같은거 아니냐 라고 생각할 수 있겠지만
사실은 /usr/bin보다 /bin이 더 큰 디렉토리라고 보면된다.
 

 

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,