[Tip] Ubuntu 폴더 구조 및 핵심 명령어 (2)

우분투의 파일 구조

이 포스트는 자습을 목적으로 DaddyMarkes, pxd UX Lab, webdir의 포스팅을 참고하여 작성하였습니다.


소프트웨어학과를 진학 중인 학생으로써 학교 과제, 개발 등을 하다보면 Ubuntu라는 운영체제에 대해 알게된다. 문제는 Window만 사용하다 보니 막상 Ubuntu를 사용해야 할 때 왜 사용해야 하는지, 명령어는 무엇인지, 왜 오류가 발생하는지도 모르는 것이다. 이번 포스팅을 기회로 Ubuntu와 좀 더 가까워지는 계기가 됬으면 좋겠다.

우분투의 파일 구조

ubuntu

우리는 지난 포스트에서 우분투, 리눅스, GNU에 대해 간략히 알아보았다. 우리는 터미널 창에서 command를 입력할 때 심심치 않게 /usr/bin 등 다양한 디렉토리를 입력한다. 이번 포스트에서는 우분투의 파일 구조가 우분투의 핵심 명령어 들에 대해 알아보도록 하겠다.

우분투의 파일 구조

우분투는 리눅스의 일종으로 폴더 파일 시스템표준 FSSTND(Linux File System Standard)을 따른다.

structure

리눅스의 파일 구조는 윈도우와는 다른 구조를 가지고 있다. 기본적으로 디렉토리를 구분하는 기호로 우분투에서는 ‘/’, 윈도우에서는 ‘'를 사용한다. 디렉토리 또한 그 명칭을 리눅스에서는 디렉토리(directory), 윈도우에서는 폴더(folder)라고 부른다.

structure

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

디렉토리(directory)설명(Expanation)
/(루트)최상위 디렉토리인 루트 디렉토리를 의미, 리눅스의 모든 디렉토리들의 시작점이다. 즉, 모든 디렉토리들은 절대 경로로 표기할 때에 이 디렉토리부터 시작한다.
/bin기본적인 명령어가 저장된 디렉토리. 리눅스 시스템 사용에 있어서 가장 기본적이라고 할 수 있는 명령어들이 이 디렉토리에 존재한다. 루트 사용자와 일반 사용자가 함께 사용할 수 있다.
/boot리눅스 부트로더(Boot Loader)가 존재하는 디렉토리로 GRUD와 같은 부트로더에 관한 파일들을 가지고 있다.
/dev시스템 디바이스 파일을 저장하고 있는 디렉토리. 하드디스크, CD-ROM 장치 등과 같은 장치파일들이 존재하는 디렉토리.
/etc시스템 대부분의 모든 설정 파일이 존재하는 디렉토리.
/etc/mai/sendmail의 설정파일들이 존재하는 디렉토리.
/etc/ssh/SSH 서비스, 즉 sshd 데몬에서 사용하는 각종 설정파일 들이 존재하는 디렉토리.
/etc/squid/squid 프락시 서버의 설정파일들이 저장된 디렉토리.
/etc/skel/계정 사용자 생성 시의 초기화 파일들이 저장된 디렉토리.
/etc/rc.d/부팅레벨 별 부팅스크립트파일들이 존재하는 디렉토리.
/etc/rc.d/init.d/시스템 초기화 파일들의 실제 파일들이 존재한다.
/etc/pam.d/PAM 설정 정보파일들이 저장된 디렉토리.
/etc/httpd/RPM으로 설치된 아파치 설정파일들이 저장된 디렉토리.
/etc/xinetd.dxinetd 수포 데몬에 의해 서비스되는 서비스 설정 파일이 존재한다.
/home사용자의 홈 디렉토리, useradd 명령어로 새로운 사용자를 생성하면 대부분 사용자의 ID와 동일한 이름의 디렉토리가 자동으로 생성된다.
/lib커널이 필요로 하는 커널 모듈 파일과 라이브러리 파일, 각종 라이브러리 파일들이 존재하는 디렉토리.
/mediaDVD, CD-ROM, USB 등과 같은 탈부착이 가능한 장치들의 마운트포인트로 사용되는 디렉토리.
/mnt/media 디렉토리와 비슷한 용도로 탈부착이 가능한 장치들에 대하여 일시적인 마운트포인터로 사용하는 디렉토리.
/proc“가상파일시스템” 이라고 하는 곳으로 현재 메모리에 존재하는 모든 작업들이 파일형태로 존재하는 곳. 디스크 상에 실제 존재하는 것이 아니라 메모리 상에 존재하기 때문에 가상파일 시스템이라고 부른다.
/root시스템 최고관리자인 root 사용자의 개인 홈 디렉토리.
/sbinifconfig, ethtool 등과 같이 시스템 관리자들이 사용하는 시스템 관리자용 명령어를 저장하고 있는 디렉토리.
/tmp“공용 디렉토리” 시스템을 사용하는 모든 사용자들이 공통으로 사용하는 디렉토리.
/usr시스템이 아닌 일반 사용자들이 주로 사용하는 디렉토리. 일반 사용자들용 명령어들은 /usr/bin에 위치한다.
/usr/bin/일반 사용자들의 사용가능한 명령어 파읻들이 담긴 디렉토리.
/usr/X11R6/X 윈도우 시스템의 루트 디렉토리.
/usr/include/C프로그램에 필요한 헤드파일의 디렉토리.
/usr/lib//lib에 포함되지 않은 라이브러리 디렉토리.
/usr/src/프로그램 소스(커널)가 조정되는 디렉토리.
/usr/local/Apache, PHP 등과 같은 애플리케이션들을 소스로 컴파일 설치 할 때 사용되는 장소
/usr/share/man/명령어들의 도움을 주는 메뉴얼 페이지 디렉토리.
/var/시스템 운용 중에 생성되었다가 삭제되는 데이터를 일시적으로 저장하기 위한 디렉토리
/var/tmp//tmp 디렉토리와 같은 공용 디렉토리.
/var/log/시스템 로그파일이 저장되는 디렉토리.
/var/ftp/FTP 서비스를 위한 FTP 홈 디렉토리.
/var/named/DNS에서 사용되는 zone파일들이 저장되는 디렉토리.
/var/spool/mail/각 계정 사용자들의 메일파일이 저장되는 디렉토리.
/var/spool/lpd/프린트를 하기 위한 임시 디렉토리.
/var/spool/at/예약작업에 관한 파일들이 저장되는 디렉토리.
/lost+found최상위 디렉토리인 ‘/’ 디렉토리에만 존재하는 것이 아니라 파일 시스템마다 존재할 수 있는 디렉토리. 이 디렉토리는 파일 시스템 체크 및 복구 유틸리티 실행 후에 주로 생성 되는 것으로 복구되지 않은 채로 블록만 존재하는 파일, 연결이 끊어진 inode들이 숫자 파일 형태로 존재하는 곳이다. 숫자 형태로 존재하는 파일들은 파일이름만 바꾸면 바로 복구 가능하다.
생각보다 많은 디렉토리가 존재했고, 각 디렉토리마다의 저장된 내용들도 신기한 것들이 많았다. 포스팅을 하면서도 어떤 부분은 이해가 잘 안가지만 이 글을 쓰기 전보다는 지식이 늘어난 것 같아서 기분이 좋다. 생각보다 파일 구조에 관한 글이 길어진 관계로 다음 포스팅에서 우분투의 핵심 명령어들에 대해서 알아보도록 하겠다.
출처

DaddyMarkes
pxd UX Lab
Wiki
Naver
webdir