사이트 내 전체검색
[linux] Linux 필수 디렉토리 기능설명
로빈아빠
https://cmd.kr/server/421 URL이 복사되었습니다.

본문

Linux 필수 디렉토리 기능설명

도스와는 달리 유닉스는 설치 즉시 상당히 복잡한 파일 시스템이 만들어져있다. 그리고 그것들은 각각의 고유한 의미들을 가지고 있다.

우선 루트로 로그인을 한 후 '/' 디렉토리로 가서 'ls -F' 라고 해보자.
yesyo:~# cd / yesyo:/# ls -F

그러면 etc, bin, var 등등 여러 디렉토리가 나온다. 이제부터 각각에 대해 알아보도록 하자.

1. /bin
/bin은 바이너리나 실행 파일의 줄임말이다. 이 곳에는 시스템의 아주 기본
적인 프로그램들이 위치하고 있다. 'ls -F /bin' 이라고 해보면 cp, ls, mv등과 같은 명령들이 보인다. 여기있는 프로그램들이 바로 우리가 cp, ls, mv 라고 명령을 내렸던 것에 대한 실제 프로그램들이다. 즉, cp 라고 명령을 하면 우리는 /bin/cp를 사용하고 있는 것이다.
또한 대부분이 뒤에 실행 파일을 의미하는 '*' 문자가 붙어 있다.여기있는
중요한 파일들을 나열해 보면 다음과 같다.

cat, cp, ftp, gzip, kill, ln, ls, mail, mkdir, more, mount, mv, ping,
rm, rmdir, su, telnet, tar, pwd, ps, bash, more...............등등.

여기에 있는 프로그램들은 너무도 기본적인 파일이므로 절대 지워서는 안된다.


2. /dev
여기에 들어 있는 파일들을 디바이스 드라이버라고 부른다. 보통 그 파일들은 디스크 드라이버나 메모리 등등의 시스템 장치들, 또는 자원에 접근하기 위해 사용된다. 즉, /dev/mouse 파일을 읽음으로써 마우스로 부터의 입력을 읽어 낼수 있다.
예를 들어, fd로 시작되는 디바이스 드라이버들에 대해 알아보자.
fd0는 첫번째 플로피 디스크 드라이버를 뜻하며, fd1은 두번째 것을 뜻한다.
또 fd1h1440은 3.5인치 1.44메가 디스켓이 들어가는 플로피 드라이브를 뜻한다.

그럼 자주 쓰이는 장치 파일의 목록들을 보자.
1) /dev/console은 시스템의 콘솔을 의미한다. 즉, 리눅스 시스템에 직접 연결되어 있는 모니터를 말하는 것이다.
2) /dev/ttyS, /dev/cua 장치들은 시리얼 포트를 사용하기 위해 필요하다. 예를들어 /dev/ttyS0는 도스에서 COM1을 의미한다.
3) /dev/hd 로 시작하는 파일들은 하드 디스크를 의미한다. 즉, /dev/hda 는 첫번째 IDE 하드 디스크 전체이고, 그중 /dev/hda1은 그 하드 디스크의 첫번째 파티션을 의미한다.   
4) /dev/lp 로 시작하는 장치명들은 패러렐 포트를 뜻한다. 즉, /dev/lp0, /dev/lp1 은 도스에서 LPT1에 해당한다.
5) /dev/tty 로 시작되는 장치들은 가상 콘솔과 연결된다. 즉, /dev/tty1 은 첫번째 가상 콘솔이다.


3. /etc
이 곳에는 다양한 시스템 설정 파일들이 있다. 중요한 파일들의 예를 들어보면 전체 사용자의 암호를 갖고 있는 /etc/passwd, 프린터 셋팅을 가지고 있는 printcap, 시스템 부팅 유틸인 리로의 셋팅을 가지고 있는 lilo.conf, 넷트워킹정보를 가지고 있는 hosts, resolve.conf, 파일 시스템 정보를 담고 있는 fstab등이 있다.


4. /sbin
/bin에 대비되는 디렉토리로써, 바이너리들이긴 하지만 시스템 관리자에 의해 필수적으로 사용되어야 할 것들이 있다. adduser와 같이 사용자를 등록해 주는 스크립트, SLIP 커넥션을 만들어 주는 dip, 파일 시스템과 관계되는 fdisk,mkfs,fsck,mkswap, 슬렉웨어 안의 installpkg, setup 등이 있다.


5. /home
이 디렉토리는 사용자들의 홈 디렉토리를 포함하고 있다. 예를 들어 pey1
사용자의 홈 디렉토리는 /home/pey1 이다. 또 슬렉웨어의 경우에는 ftp 사이트에 사용되는 디렉토리가 여기 있다.


6. /lib
여기에는 시스템 전체 운영에 필수적인 공유 라이브러리 이미지가 들어있다.
또 이러한 파일들은 많은 프로그램이 공유하고 있는 코드를 포함하고 있다.
각 프로그램은 각자 그러한 루틴을 따로 가지고 있는 것이 아니라 /lib 라고 하는 곳에다 공유해서 가지고 있는 것이다. 이렇게 함으로써 실행 파일들의 크기를 줄일 수 있다.
많은 프로그램들이 공유하고 있는 부분이기 때문에 역시 몇개의 /lib 파일이 날아가는 날에는 시스템이 다운되는 사태를 당하게 된다.


7. /proc
이 곳은 리눅스를 알면 알수록 재미있게 해주는 가상 파일 시스템이라고 말할 수 있다. 실제로 /proc는 하드 디스크상에 존재하는 것이 아니라, 메모리에 존재하는 것이다.
메모리에 존재하는 내용을 마치 하드 디스크상의 하나의 파일처럼 다룰 수 있게 해주는 디렉토리 이다. 이 안에는 지금 시스템에서 작동하고 있는
다양한 프로세스들을 참조 할 수 있게 한다.


8. /usr
이 디렉토리는 매우 중요한 디렉토리이다. /usr 디렉토리는 매우 많은 하위
디렉토리를 가지고 있으며, 그 디렉토리들은 시스템에 사용되는 매우 중요한 프로그램들을 포함하고 있고, 설정 파일들도 지니고 있다.
진술한 많은 디렉토리들이 시스템 운영에 있어서 필수적인 것에 반하여, /usr에 있는 파일들은 선택적이라고 말할 수 있다. /usr 이 없다면 cp, ls 등만 있는 지루하고 재미없는 시스템이 될 것이다. 대부분의 흥미로운 소프트웨어들이 여기 /usr 디렉토리에 설치된다.


9. /usr/bin
여기야 말로 유닉스 시스템의 실제적인 프로그램들이 들어 있는 장소이다.
시스템 운영에 최소한의 기본 프로그램들이 든 /bin에서 발견 할 수 없는 대부분의 실행 프로그램들을 저장하고 있다.


10. /usr/X11R6
X 윈도우를 설치 한다면, X 윈도우는 상당히 크고 강력한 그래픽 환경으로써 아주 많은 그래픽 유틸리티와 프로그램들을 가지고 있고, 여러분의 스크린에 창으로 나타난다. 이 디렉토리 아래에는 X 윈도우에 관계되는 모든 프로그램, 설정 파일, 그리고 지원 파일들이 들어 있다.


11. /usr/include
/usr/include 에는 그 이름이 의미하듯, C 컴파일러에 대한 헤더 파일을 포함 하고 있다. 대부분 .h 로 끝나는 해더 파일들은 자료 구조명과 서브 루틴 그리고 C 프로그래밍에 사용되는 모든 상수들을 선언하고 있다. 유닉스 프로그래밍 수준에서 사용되는 파일들은 /usr/include/sys 에 들어 있다.


12. /usr/lib
여기는 /lib에서 볼 수 있는 정적 라이브러리에 해당되는 것, 또는 다른
라이브러리들을 가지고 있다. 프로그램을 컴파일 하려고 할 때 그 프로그램은 바로 /usr/lib에 든 라이브러리와 링크 된다. 그 다음에 /lib를 찾아서 실제코드를 링크해 낸다.


13. /usr/local
이 곳은 /usr과 상당히 유사하다. 시스템 운영에 필수적이지는 않은 다양한
프로그램들을 많이 포함하고 있다. 필수적이지는 않지만 시스템에서 제일 재미있고 흥미로운 프로그램들이 여기에 위치한다고 할 수 있다.
일반적으로 /usr/local에 있는 파일들은 여러분의 시스템에 특별한 프로그램만 설치한다. 즉, 각 유닉스 시스템 서로 간에 /usr/local은 엄청나게 많이 다르다.
예를 들어 TaX, Emacs와 같은 소프트웨어 패키지 등이 여기에 설치되어 있다.


14. /usr/man
맨 페이지를 저장하고 있는 디렉토리이다. 모든 맨 페이지에 대해서는 두개의 하위 디렉토리가 존재한다. 자새한 사항은 'man man' 을 해보기 바란다.


15. /usr/src
이 디렉토리는 컴파일 되지 않은 다양한 프로그램 소스들이 들어 있다. 그중 가장 중요한 것은 뭐니뭐니 해도 /usr/src/linux 라는 디렉토리로써, 리눅스 커널의 소스를 담고 있다. 통상 시스템에 중요한 소스를 /usr/src 밑에서 컴파일 하는 것이 관례이다. 시스템에 덜 중요한 소스들이라면 /usr/local/src 밑에다 하는 것이 또한 관례이다.


16. /var
이 곳은 시스템 운영 도중에 파일 크기가 변하는 요소들을 담고 있는 디렉토리이다. 대부분의 경우 /usr 디렉토리에 존재 하지만, /usr 디렉토리에 있는 것은 시스템 운영중에 변하지 않는 요소라고 보고, 변화하는 요소들을 /var 디렉토리로 보낸다.
이 중에서 중요한 디렉토리의 예를 2개 들어 보겠다.
1) /var/adm
  이 곳은 시스템 관리자에게 관계되는 파일들을 포함하고 있다. 특히, 시스템의 에러나 문제 상황을 기록하는 시스템 로그 파일을 들수 있다. 다른 파일들은 시스템에 로그인 하려 했던 기록을 남겨두고 있다.
2) /var/spool
  이 디렉토리에는 프로그램에 의해서 스풀링 되는 파일들이 들어가는 디렉토리이다. 만약 여러분의 리눅스 시스템이 네트워크에 물려 있다면 시스템으로 들어오는 메일은 여러분이 읽거나 지우기 전까지는 /var/spool/mail에 일단 저장된다. 또, 시스템을 드나드는 뉴스그룹 포스팅 메시지는 /var/spool/news에 일단 저장된다. 특히 리눅스의 프린팅은 BSD 방식의 스풀링을 사용하므로 프린팅할 때 임시로 생성되는 파일 또한 여기에 일단 저장되어 처리된다.

댓글목록

등록된 댓글이 없습니다.

1,139 (10/23P)

Search

Copyright © Cmd 명령어 3.138.122.90