Ubuntu(우분투) 디렉토리 구조

1. /bin bin은 binary(기계어) 라는 뜻으로 보통 실행파일을 의미합니다. (MS윈도우의 경우 bin 파일이 /Windows, /Windows/System32 에 산재되어 있습니다.) ls, cp, mv 등의 기본적인 콘솔 명령어가 이 곳에 위치합니다. 즉 $ cp hello.txt good.txt 는 $ /bin/cp hello.txt good.txt 과 같은 의미입니다. 여기에 있는 프로그램들은 시스템 파일이므로 지워서는 안 됩니다. 2. /boot 전원을 키고 부팅할 경우 필요한 파일들이 위치합니다. 커널에 대한 link, 기타 초기화 파일들이 있어 이 곳은 절대 손대면 안됩니다. (MS도스의 IO.SYS 나 MSDOS.SYS로 이해하시면 편합니다.) /boot/grub 은 부트메니저 grub의 설정이 들어 있습니다. 이 곳의 menu.lst 파일을 조작하면 부팅설정 변경이 가능합니다. 3. /dev dev는 device(장치) 라는 의미입니다. 이 곳에는 컴퓨터에 연결된 모든 장치가 파일로 표현되어 모여 있습니다. 리눅스는 입출력을 파일로 대신하는 구조로 이루어져 있습니다. 플로피나 하드드라이브는 MS윈도우에서 드라이브명(a:, c:) 을 할당 받지만 리눅스에서는 단지 단순한 파일로 대체됩니다. /dev/fd 는 플로피이고 /dev/hd 는 하드디스크 /dev/mouse 는 마우스를 의미합니다. 프린터, 콘솔, 포트등도 모두 이 곳에 위치합니다. ( /dev/hda 는 첫번째 IDE 하드 디스크 전체이고, 그중 /dev/hda1 은 그 하드 디스크의 첫번째 파티션을 의미합니다. 요즘은 거의 sda로 대체되고 있습니다.) 4. /etc 이 곳은 리눅스의 거의 모든 설정 파일이 위치합니다. 여기 파일들을 조작해 프로그램 설정을 변경할 수 있습니다. (MS윈도우의 레지스트리(Registry)에 해당합니다.) 전체 사용자의 암호를 갖고 있는 /etc/pas*s*w*d, X Window, Fonts 설정파일이 있으며 우리가 사용하는 각종 프로그램의 설정 파일들이 이 곳에 위치합니다. 여기를 자주 들려야 리눅스 실력이 향상됩니다. /etc/init.d 와 rcx.d 여기는 MS윈도우의 config.sys에 해당한다고 보시면 됩니다. 하지만 파일이 하나가 아니고 한 디렉토리가 꽉 찹니다. 리눅스 시작시 시동해야 할 데몬이나 스크립트들이 모여있습니다. /etc/profile MS윈도우의 autoexec.bat에 해당합니다. 여기서 프롬프트를 변경하거나 시작 프로그램을 추가할 수 있습니다. /etc/fstab 파일 시스템의 마운팅 여부를 설정합니다. 하드나 파티션을 추가한 경우 이 곳의 설정을 변경합니다. fstab은 시스템에 아주 중요한 파일이며 알아두면 아주 유용합니다. 5. /home 각 사용자들의 홈 디렉토리를 포함하고 있습니다. 예를 들어 hello 사용자의 홈 디렉토리는 /home/hello 가 됩니다. /home/hello 아래에는 각 사용자의 개인설정 파일과 바탕화면, 문서등이 저장됩니다. (MS윈도우의 /Documents and Settings 에 해당합니다.) 시스템을 다시 설치한다면 이 디렉토리는 백업해 두는 것이 좋습니다. 6. /lib 여기에는 시스템 전체 운영에 필수적인 공유 라이브러리가 들어 있습니다. 라이브러리란 프로그램이 실행될 때 가져다 쓰는 프로그램이라 생각하시면 됩니다. 파일을 추가만 하시고 삭제는 하지 마세요. 시스템이 멈출 수 있습니다. 7. /lost+found 파일 시스템을 체크하는 경우 잃어버린 파일(?)을 찾아서 이곳에 위치시킵니다. 8. /media 플로피나 CD, USB 메모리의 마운트 포인트로 활용됩니다. (마운트 포인트는 마운트된 장치에 접근할 수 있는 디렉토리를 말합니다.) 마운트된 플로피의 내용을 보고 싶다면 이 곳을 찾으면 됩니다. CD를 넣으면 이 디렉토리 아래 마운트 포인트가 생성됩니다. 9. /mnt 저장장치나 주변 장치의 마운트 포인트로 활용됩니다. 10. /opt 이 곳은 원래 상용프로그램이 위치하는 장소입니다. 11. /proc 여기 보이는 것은 실제 파일이 아니라 메모리에서 실행되고 있는 프로세스를 보여주는 곳입니다. 프로세스(process)란 실제 메모리에서 실행되는 프로그램이라 생각하시면 됩니다. 볼 수만 있는 것이 아니라 파일같이 이용해서 각 프로세스를 참조할 수도 있습니다. 이러한 방식을 리눅스의 가상 파일 시스템이라고 합니다. 12. /root root 계정 사용자도 홈디렉토리가 있습니다. 하지만 /home에 위치하지 않고 바로 이 곳 /root를 이용합니다. 이유는 남들이 함부로 들어오지 못 하도록 하기 위함입니다. 13. /sbin /bin 와 같은 개념이지만 시스템 관리자가 사용하는 파일들이 저장되어 있습니다. ("sbin"는 "safe binary"의 의미로 superuser만 사용해서 안전하다는 뜻입니다. ) fdisk, mkfs, init, halt 등 시스템 관련 파일이 위치합니다. 잘못 조작할 경우 전체 시스템에 이상을 초래할 수도 있습니다. 14. /srv 서비스 디렉토리로 주로 인터넷 관련 파일이 위치합니다. 15. /subdomain 서브도메인을 사용하지 않으면 비어 있습니다. 16. /sys 리눅스 시스템이 필요로 하는 파일들입니다. 손대지 않는게 좋습니다. 17. /tmp 임시 저장 파일을 담고 있습니다. (MS윈도우 /temp와 같습니다.) 18. /usr /usr 는 시스템에 필수적인 요소는 아니지만 사용자에게는 아주 중요한 디렉토리입니다. 거의 모든 응용프로그램이 이 곳에 위치하며 일부 설정 파일도 들어 있습니다. 라이브러리도 존재하고 컴파일 환경도 위치하고 무엇보다도 X Window가 여기에 있습니다. (MS윈도우의 /Program Files에 해당하지만 더 큰 의미를 가집니다. 리눅스는 X Window도 시스템이라기보다 응용프로그램으로 생각합니다.) 몇 가지 중요한 서브디렉토리를 살펴보겠습니다. /usr/bin 우리가 사용하는 대부분의 응용프로그램이 이 곳에 위치함니다. (적은 의미의 MS윈도우의 /Program Files에 해당합니다.) /usr/X11R6 X 윈도우에 관계되는 모든 프로그램, 설정 파일, 그리고 지원 파일들이 들어 있습니다. /usr/include C 컴파일러에 대한 헤더 파일을 포함하고 있습니다. /usr/lib /lib와 같은 기능을 하지만 주로 응용프로그램에 관련된 라이브러리가 위치합니다. /usr/local 과거에는 이 곳에 응용 프로그램이 많이 설치 되었지만 점차 사용이 줄어들고 있습니다. /usr/share/man 메뉴얼 페이지를 저장하고 있는 디렉토리입니다. 하나씩 읽어보면(?) 배우는게 많습니다. /usr/share/doc 설치된 프로그램에 대한 추가 정보를 볼 수 있습니다. /usr/src 이 디렉토리는 컴파일 되지 않은 다양한 프로그램 소스들이 들어 있습니다. 이 곳에서 비디오 드라이버 모듈을 만들기도 하고 RPM을 만들어 내기도 합니다. 리눅스 커널 소스도 이 곳에 위치합니다. 19. /var 이 곳은 시스템 운영 도중에 파일 크기가 변하는 요소들을 담고 있는 디렉토리입니다. 간단히 말해 게임하다가 최고점이 나오면 점수를 여기에 저장합니다. 그 외에도 시스템 유지에 필요한 중요한 파일들이 이 곳에 위치합니다.

모든 사람들에게 닥치는 문제들에 대한 해답은 성서 안에 써있다.