그럼, 중요한 디렉토리들에 대한 자세한 내용을 살펴 보도록 하겠습니다.
▶ /
루트 디렉토리로 파일 시스템 계층 구조의 시작점입니다. 따라서 빈 상태로 유지하는 것이 바람직합니다.
▶ /boot
환경 설정 파일을 제외한 부팅 과정에서 필요한 모든 구성 요소들이 포함되어 있습니다.
▶ /bin
실행 파일들이 모두 모여 있습니다. 이 디렉토리에는 많은 필수적인 프로그램들이 포함되어 있습니다. "ls /bin"을 해 보면 이 안의 파일들을 볼 수 있으며 cp, ls, mv 같은 몇 개의 명령어들은 알아 볼 수 있을 것입니다. 이것들은 이들 명령어들의 실제 프로그램들입니다. 따라서 "cp"명령을 입력하면, /bin/cp 프로그램이 실행되는 것입니다. "ls -F"를 사용하면, /bin의 대부분의 파일들에서 "*"가 파일명 끝에 추가되어 있는 것을 볼 수 있습니다. 이것은 이 파일이 실행 가능한 파일임을 표시하는 것입니다.
▶ /dev
/dev 안의 파일들은 디바이스 드라이버들입니다. 이것들은 디스크 드라이버, 모뎀, 메모리 등과 같은 시스템 디바이스나 자원들을 접근하는데 사용됩니다. 예를 들면, 파일들로부터 정보를 읽어 볼 수 있는 것과 같이, /dev/mouse를 access함으로써 마우스로부터 입력되는 정보를 읽어 올 수 있습니다. fd로 시작하는 파일 이름들은 플로피 장치들입니다. fd0는 첫 번째의 플로피 디스크 드라이브이며, fd1은 두 번째입니다. 이 이외의 것들은 보통 플로피 디스크의 특정 형태를 표시합니다. 예를 들면, fd0H1440은 첫 번째 드라이브(A: 드라이브)의 고밀도 3.5인치 디스켓을 말합니다.
/dev/console 시스템의 콘솔이며, 모니터가 시스템에 직접 연결되어 있음을 말합니다.
/dev/ttyS? 와 /dev/cua? 직렬 포트를 액세싱합니다. 예를 들면, /dev/ttyS0는 도스 상의 "COM1"을 뜻하며, /dev/cua는 "callout"장치로써, 이것은 모뎀을 직접 액세스할 때 사용됩니다.
hd로 시작하는 디바이스 이름 하드 디스크를 액세스합니다. /dev/hda는 첫 번째 하드 디스크 전체를 뜻하며, hda1은 /dev/hda의 첫 번째 파티션을 의미합니다.
sd로 시작하는 디바이스 이름 SCSI 하드 디스크 드라이브나 테이프 드라이브 같은 SCSI 장치들을 의미합니다. 만약 SCSI 하드 디스크를 가지고 있다면, /dev/hda를 접근하는 대신에 /dev/sda를 액세스해야 합니다.
lp로 시작하는 디바이스 이름 병렬 포트를 말하며, /dev/lp1은 도스의 "LPT1"과 같습니다.
/dev/null "black hole"로써 사용되는 것으로서 어떠한 데이터를 이 장치에 보내면 모두 없어지게 됩니다. 예를 들면, 화면에 아무 것도 출력되지 않기를 바랄 경우, /dev/null로 출력을 보내면 됩니다.
/dev/tty로 시작하는 디바이스 이름 시스템에 있는 "가상 콘솔 : Virtual Console(VC)"입니다. /dev/tty1은 첫 번째 VC이며, /dev/tty2는 두 번째입니다. 가상 콘솔은 한 화면이 여러 개의 가상 터미널을 갖는 것입니다. 각각의 터머널은 [alt]+[F1], [alt]+[F2] 등을 누름으로서 전환할 수 있으며, 같은 사용자나 다른 사용자로 login할 수 있습니다.
/dev/pty로 시작하는 디바이스 이름 이것들은 원격 login 세션에서 사용되는 "pseudo-terminal"들입니다. 예를 들어, 사용 중인 컴퓨터가 네트워크에 연결되어 있고, telnet으로 login하려고 할 때, /dev/pty 디바이스를 사용합니다.
▶ /etc
시스템의 부팅, 셧다운 시에 필요한 파일들과 시스템의 전반에 걸친 설정 파일들 및 초기 스크립트 파일들이 있습니다. 시스템의 전반에 걸친 설정 파일들 및 초기 스크립트 파일들이 있습니다. 시스템에 어떠한 문제가 발생한다거나, 시스템 전체 환경에 관한 설정을 바꾸기 위해서는 이들 디렉토리 내에 포함되어 있는 파일들에 대해서 잘 알아야 합니다.
/etc/rc.d/rc /bin/sh shell이 시스템이 부트되면, 자동적으로 실행되는 스크립트입니다. 이것은 update, crond, inetd 같은 프로그램을 백그라운드로 실행시키며, 파일 시스템 마운팅, 스왑 영역 활성, 그리고 이런 유사한 다른 작업들을 합니다. /etc/rc.d/rc.local과 /etc/rc.d/rc.# 파일이 포함되기도 합니다.
/etc/passwd 사용자에 대한 정보를 포함하고 있는 문서 파일입니다.
/etc/fdprm 플로피 디스크 파라메터 표입니다.
/etc/fstab 이 파일은 /etc/rc.d/rc 파일 안의 mount -a 명령에 의해 마운팅되는 파일 시스템과 스왑 영역의 목록입니다.
/etc/getty (혹은 /sbin/getty) 이 프로그램은 터미널로 누군가가 login하기를 기다립니다. 명령어 init에 의해 자동적으로 실행되며, login 가능한 터미널 라인이나 가상 콘솔 당 한번씩 실행됩니다. 또한, 사용자의 패스워드를 기다리며, login을 실행합니다.
/etc/gettydefs 혹은 /etc/gettytab getty가 터미널 라인의 속도, 패러티 검사 등을 어떻게 사용할 것인가를 설정합니다.
/etc/group /etc/passwd와 유사하며, 사용자 대신에 그룹을 설정합니다.
/etc/init (혹은 /sbin/init) 이 프로그램은 부팅 시에 커널에 의해 첫 번째 프로세스로 실행됩니다. init가 실행된 후에 커널 부팅이 완료됩니다. init는 /etc/rc.d/rc와 getty 등을 실행합니다.
/etc/inittab init가 시작할 때의 getty의 목록 파일입니다.
/etc/issue 로그인 프롬프트 이전에 출력되는 getty 출력 문서 파일입니다. /etc/issue.net 파일은 remote 로그인 시 프롬프트에 출력됩니다.
/etc/mtab 이 파일은 마운팅된 파일 시스템을 포함하고 있습니다. /etc/rc/rc.d와 mount나 unmount 명령에 의한 셋업이며, 마운팅된 파일 시스템의 목록이 필요할 때 사용됩니다.
/etc/shadow 시스템의 shadow패스워드를 포함하는 파일입니다.
/etc/login.defs login 명령에 사용되는 설정 파일입니다.
/etc/printcap /etc/termcap과 유사하며, 프린터를 사용할 때(lpr) 쓰입니다.
/etc/profile Bourne shell(/bin/sh 혹은 bash)에 의해 로그인 할 때 실행되는 파일입니다.
/etc/securetty 터미널 보안을 위해 사용하는 것으로 root는 이 파일에 열거된 터미널로 로그인 할 수 있습니다. 보통 가상 콘솔들이 열거되어 있으며, 모뎀이나 네트워크로 시스템에 접근하여 수퍼 유저의 권한을 얻는 것을 막을 수 있습니다.
/etc/shells shell의 목록으로 chsh 명령으로 사용자 로그인 shell을 바꿀 때, 이 파일의 목록에 있는 shell만 바꿀 수 있도록 합니다.
/etc/termcap 터미널의 기능 데이터베이스입니다. 이것은 문서 파일로서 ESCAPE 문자들로서 터미널을 제어할 때 사용됩니다.
/etc/update (혹은 /sbin/update) /etc/rc.d/rc 에 의해 백그라운드로 실행되는 프로그램의 하나로 매 30초 마다 버퍼 캐시에 있는 하드로 쓰여지지 않은 데이터를 저장합니다. 이러한 것은 전원의 단절이나, 커널의 이상 등을 대비하여 매 30초 마다 데이터를 저장함으로써 데이터 손실의 위험부담을 줄이는 것입니다.
/etc/utmp (혹은 /var/run/utmp) 각각의 터미널에 로그인한 사용자나, 로그인에 관한 정보가 기록되어 있는 이진 파일입니다. 사용자가 로그인하면 login은 누가 로그인을 하고 언제 로그 아웃을 하였는가에 대한 정보를 기록합니다.
/etc/wtmp (혹은 /var/log/wtmp) /etc/utmp와 유사하며, 단지 존재하는 정보를 덮어 쓰지 않고 계속 추가합니다. /etc/ftpusers, /etc/rpc, /etc/exports 네트워크에 관한 파일들입니다.
▶ /home
사용자의 홈 디렉토리로써 login 하였을 경우, 처음으로 위치하게 되는 디렉토리입니다. 예를 들어, /home/foo는 사용자 "foo"의 홈 디렉토리입니다. 시스템이 새로 설치되면, 이 디렉토리 안에 아무 것도 포함되어 있지 않습니다.
▶ /lib
부팅과 시스템 운영에 필요한 공유 라이브러리(Shared Library)와 커널 모듈(Kernel Module)이 위치합니다. 공유 라이브러리란 windows 95/98의 DLL(Dynamic Link Library)과 같이 여러 가지 프로그램들에 의해서 사용되는 기능을 별도의 프로그램으로 분리시켜 놓은 것입니다. 커널 모듈도 공유 라이브러리와 같이 커널 안에 자체적으로 포함되지 않고 독립적인 형태로 분리되어 있으면서 부팅 시에 커널에 동적으로 연결되어서 전체적인 커널을 유기적으로 구성하게 되는 별도의 파일(Object File)들입니다.
▶ /lost+found
파일 시스템의 이상 유무를 진단하고 복구하는 프로그램인 fsck(File System Check)에 의해서 사용되는 디렉토리입니다. 손상된 파일이나 디렉토리를 /lost+found디렉토리로 연결한 뒤에 오류를 수정하게 되며, 평상시에는 null 파일 링크에 의해서 비어있는 상태로 존재합니다. 리눅스의 파일 시스템인 ext2에 의한 fsck.ext2(File System Check.extended2) 프로그램도 이 디렉토리를 사용합니다.
▶ /misc
시스템 아키텍처와 무관한 프로그램들과 자료들이 위치합니다. 레드햇 리눅스는 이 디렉토리를 구성하지 않습니다.
▶ /mnt
루트 파일 시스템에 연결된 파일 시스템들의 마운트 디렉토리입니다. 마운트하지 않은 상태에서는 빈 디렉토리로 존재하지만 마운트시키게 되면 해당 파일 시스템의 내용이 그대로 포함됩니다.
▶ /opt
Add-On 소프트웨어 패키지가 설치됩니다. 레드햇 리눅스는 이 디렉토리를 구성하지 않습니다.
▶ /proc
가상 파일 시스템입니다. 이 디렉토리의 내용들은 시스템에서 운영되고 있는 다양한 프로세서들에 관한 내용과 프로그램에 대한 정보를 포함하고 있습니다. 이 디렉토리에서 볼 수 있는 것은 실제 드라이브에 저장되어 있는 내용이 아니며, 메모리 상에 저장되어 있는 것입니다.
▶ /root
시스템 관리자인 root의 홈 디렉토리입니다.
▶ /sbin
시스템 관리를 위한 전반적인 실행 유틸리티를 담고 있습니다. 이 디렉토리에 있는 명령어들은 일반 사용자는 실행할 수 없습니다.
▶ /tmp
프로세스 진행 중 발생하는 임시 파일들이 저장되는 작업 디렉토리입니다. 따라서 이 디렉토리의 파일들은 수시로 생성되고 삭제되므로 중요한 자료일 경우, 이 디렉토리에 보관해서는 안됩니다. /tmp 디렉토리는 모든 사용자에 대해서 읽기와 쓰기 작업이 허용되며, 스티키 비트(sticky bit)라는 특별한 설정에 의해서 파일의 소유자만이 자신의 소유로 되어 있는 파일을 지울 수 있도록 되어 있습니다.
▶ /usr
루트 디렉토리와 함께 중요한 시스템 디렉토리 계층을 구성합니다. /usr 디렉토리에는 공유 가능한 대부분의 프로그램들이 설치되며 네트워크를 이용해서 여러 개의 시스템을 연결할 경우, 이 디렉토리를 공유해서 설치된 프로그램들을 활용할 수 있게 됩니다. 따라서 /usr 디렉토리는 읽기 전용으로 마운트되어야 하며, 가변 자료들은 /var 디렉토리로 심볼릭 링크시켜서 사용하게 됩니다. /usr 디렉토리는 다른 시스템과 연결될 경우, 시스템 운영과 연관되기 떄문에 내부적으로 전체 루트 디렉토리와 유사한 구조를 갖게 됩니다.
/usr/X11R6 X윈도우 시스템을 설치하였다면 이 디렉토리에 설치가 됩니다. X윈도우 시스템은 방대하며, 많은 그래픽 유틸리티와 프로그램들이 그래픽 윈도우로 출력되는 강력한 그래픽 사용자 환경입니다. 이 디렉토리에는 X윈도우 실행 파일, 사양 파일, 자원 파일들을 포함하고 있습니다. X11R6은 X의 버전과 릴리즈 번호를 뜻합니다.
/usr/bin 시스템이 소유하고 있는 소프트웨어를 담기 위한 warehouse입니다. /bin과 같은 곳에는 없는 유용한 실행 파일들을 가지고 있습니다.
/usr/etc 유틸리티와 파일들이 있습니다. 일반적으로 /usr/etc 에 있는 파일들은 /etc 에 있는 것만큼 반드시 필요로 한 것들은 아닙니다.
/usr/include C 컴파일러를 위한 include 파일을 포함합니다. 이 파일은 데이터 구조 이름과 서브루틴, 상수 같은 C로 작성된 프로그램에서 사용되는 내용을 담고 있습니다. /usr/include/sys 에 있는 파일들은 리눅스 시스템 레벨의 프로그래밍을 할 때 사용됩니다. 만약, C프로그래밍 언어에 익숙하다면, 여기에 printf() 함수가 선언되어 있는 stdio.h 같은 헤더 파일을 찾을 수 있을 것입니다.
/usr/lib /lib에서 찾을 수 있는 "stub"와 "static"와 같은 라이브러리를 포함하고 있습니다. 프로그램을 컴파일할 때, 프로그램은 /usr/lib에 있는 파일들과 link되며 이 라이브러리 안에 실행 코드가 필요로 할 때, /lib를 찾습니다. 또한, 많은 프로그램들이 /usr/lib 안에 사양 파일을 저장합니다.
/usr/local /usr 에 포함된 것과 매우 유사하고, 시스템에 반드시 필요로 하는 것은 아니지만, 매우 유용한 것들을 포함하는 데 사용합니다. /usr/local 에 있는 프로그램들은 시스템의 특성의 결정 짓는 소프트웨어들이 있을 수 있습니다.
/usr/man 이 디렉토리는 실제적인 man page를 포함하고 있습니다.
/usr/src 시스템에 있는 다양한 프로그램의 컴파일 되지 않은 소스 코드를 포함하고 있습니다. 여기서 가장 중요한 것은 /usr/src/linux 이며, 이것은 리눅스 커널의 소스 코드를 포함하고 있습니다.
/usr/dict 사전 파일 디렉토리입니다.
/usr/doc 프로그램의 문서와 관련한 파일들이 저장되는 곳입니다.
/usr/games 게임 프로그램들이 위치하고 있습니다.
/usr/info GNU info파일을 위한 디렉토리입니다.
/usr/sbin 시스템 명령어들이 위치합니다.
/usr/share 아키텍처 독립적인 자료들의 디렉토리입니다.
▶ /var
내용이 수시로 변경될 수 있는 변수를 담고 있는 파일들이 위치합니다. 예를 들면, 부팅 중의 시스템 확인 과정은 부팅 때마다 달라질 수 있으므로 부팅 과정을 기록하는 파일은 이 디렉토리에 위치하게 됩니다. /tmp 디렉토리가 파일 자체에 대한 임시 디렉토리인데 반해서 /var 디렉토리는 변경될 수 있는 자료를 포함하고 있는 파일들을 위한 디렉토리입니다.
/var/adm 시스템 관리적인 문제의 파일, 로그 파일, 커널 크래쉬 덤프를 기록한 파일들을 포함합니다.
/var/spool 스풀 파일들이 위치합니다. |