U E D R , A S I H C RSS

Linux/디렉토리용�

1. 서문

리눅스를 처� 설치를 하면 윈�우와 많� 다른 디렉토리 구조� 지레 �� 먹기 마련�다.
(�어� 나� 경우�는 그랬다)

�대체 윈�우� 있� 다른 드��브로는 어떻게 ��해야하며, 어떻게 CD를 �어야하는지 전혀
모르� 시절�었으니 당연히 그랬다.
� OS만 깔았는� 루트디렉토리� 왜 그렇게 디렉토리가 많�지 �저히 어떤 용�로 쓰�는지를
모르겠었다.
윈�우� Windows, ProgramFiles 만으로 �루어진 그 구조가 왜 그렇게 그립�지 ㅠ.ㅠ

사실 윈�우� 파고들어가면 그냥 쓰면서는 모르는 기능들� 굉장히 다양하다. 그래서 서버OS�가 보다. -_-;
''(어둠� 경로를 통해서 학� 강� 파�� 들어보면 �놈� 중급 웹 서버관리 과정� 공룡책� 나오는
내용� 윈�우�서 강�하는거 같다는 기분�다. �분� 한 2장 보면 파�� 지우는 나 -_-;)''

draft는 웹�� 내용� 기본으로 내가 추가할 만한 부분� 추가함. (그런게 있�지나 모르겠네.. 너무 좋� 내용� 많다)

ps. 내가 아는 부분� 루트� 존재하는 디렉토리� 용�� 조금 �한 수준��서 필요하다면 참고서�� 참고하겠다.
참고) Running Linux/매트 웰시, � 카우프만, 칼레달하�머 저, Oreilly
''� 책� 배��� �존�� 내용� 아니� �그대로 리눅스를 그냥 쓰는 방법� 위주로 나오기 때문�
그래� 기본�� 프로그램� 깔정�가 �면 보는 것� 좋�듯하다. 처�� �걸로 보다가 미치는줄 알았다''

2. 리눅스 디렉토리

리눅스� 디렉토리 구조를 �해하기 전� 마운트�는 개�� �해해야할 필요가 있다. 리눅스는 모든 파티션� /(�하 루트)� ��터를 통해 연결한 마운트� 개�� 통해서 접근� 할 수 있다. 따�서 모든 디렉토리를 �기다른 장치 �기 다른 파티션� 나누어 넣어서 따로 보관할 수 있으며 ��터가 �접 보관�는 디스�를 따로 마운트해서 나중� 시스템� 다시 설치할때� 그 파티션만 지우지 않고 후� 마운팅하는 용�로 사용� 가능하다.

2.1. /

  • 마운트 ë�˜ëŠ” 리눅스 파ì�¼ 시스템ì�´ 있는 최ìƒ�위 디렉토리
  • 시스템ì�˜ 근간ì�„ ì�´ë£¨ëŠ” 가장 중요한 디렉토리
  • 파티션 설정 시 반드시 존재하여야 함
  • 절대경로ì�˜ 기준ì�´ ë�˜ëŠ” 디렉토리
    • 절대경로 - / 디렉토리 기준 예) /usr/local
    • ìƒ�대경로 - 현재 작업 디렉토리 기준 예) ./local'''

2.2. /bin

  • 리눅스ì�˜ 기본 명령어(binary)들ì�´ 들어있는 디렉토리
    • 시스템ì�„ ìš´ì˜�하는ë�° 기본ì �ì�¸ 명령어들ì�´ 들어 있ì�Œ.
  • su, tar 등등ì�˜ 기본ì �ì�¸ 명령어들ì�´ 저장ë�˜ì–´ 잇는 디렉토리ì�´ë‹¤.

2.3. /sbin

  • 시스템 관리ì—� 관련ë�œ 실행 명령어들ì�´ 들어있는 디렉토리
  • 시스템 ì �ê²€ ë°� 복구 명령, 시스템 초기 ë°� 종료 명령 등 시스템 관리ì—� 관련ë�œ 실행파ì�¼ë“¤ 존재.'''
  • reboot, modprobe, insmod 등등ì�˜ root ê°€ 시스템ì�„ 관리하는ë�° 필요한 명령어들ì�´ 존재한다.

2.4. /lib

  • 프로그램들ì�´ ì�˜ì¡´í•˜ê³  있는 ë�¼ì�´ë¸ŒëŸ¬ë¦¬ 파ì�¼ë“¤ 존재.
  • /lib/modules : 커ë„� 모듈 파ì�¼ë“¤ 존재.
  • 대부분ì�˜ ë�¼ì�´ë¸ŒëŸ¬ë¦¬ë“¤ì�€ ë§�í�¬ë¡œ ì—°ê²°ë�˜ì–´ 있ì�Œ.

lib 디렉토리�는 컴파�러를 통해서 혹� 만들어진 파�들� 잠조하는 ��브러리들� 존재한다. �한 하부� modules 디렉토리� 존재하는 커� 모듈� 특수장치를 설치했거나 제거했� 경우 커�� ���으로 모듈� 올리지 못할 경우 insmod, rmmod, modprobe 명령어를 통해서 �런 모듈� 다룰때 �용�다. 커� 모듈� 경우 2.4커��서는 *.o, 2.6 커��서는 *.ko� 확장�를 가지고 있다.

2.5. /proc

  • 시스템ì—� 대한 정보를 제공하는 ê°€ìƒ� 파ì�¼ 시스템.
  • 커ë„�ì�˜ ì–´ë–¤ 기능ì�„ 제어할 수 있는 ì—­í• ì�„ 가지고 있ì�Œ.
  • 대부분 ì�½ê¸° ì „ìš©ì�´ë‚˜, ì�¼ë¶€ 파ì�¼ì¤‘ì—�는 쓰기가 가능한 파ì�¼ì�´ 존재하는ë�° ì�´ëŸ¬í•œ 파ì�¼ë“¤ì—� 특정 ê°’ì�„ 지정하면 커ë„� 기능ì�´ 변하게 ë�¨.
  • ì�´ 디렉토리 ë‚´ì—� 있는 파ì�¼ì�„ cat 명령ì�„ ì�´ìš©í•˜ì—¬ ë³´ë©´ 시스템 정보를 확ì�¸ í•  수 있ì�Œ.
    • 예) ì�¸í„°ëŸ½íЏ ì •ë³´ 확ì�¸ ---> cat /proc/interrupts'''

2.6. /etc

  • 시스템 환경 설정 파ì�¼ì�´ 있는 디렉토리
  • 네트워í�¬ 관련 설정파ì�¼, 사용ìž� ì •ë³´ ë°� 암호정보, 파ì�¼ 시스템 ì •ë³´, 보안파ì�¼, 시스템 초기화 파ì�¼ë“± 중요 설정 파ì�¼ë“¤ì�˜ 위치한 디렉토리
    • /etc/CORBA : Common Object Request Broker Architecture (COBRA)ì—� 관한 파ì�¼ì�´ 들어있ì�Œ.
    • /etc/X11 : 엑스 윈ë�„ìš° 설정ì—� 관련ë�œ 파ì�¼ë“¤ì�´ 있ì�Œ.
    • /etc/cron.d : crontab 명령ì�˜ 설정파ì�¼ì�´ 있ì�Œ.
    • /etc/cron.daily : 매ì�¼ ìž‘ë�™í•˜ê²Œ 하는 crontab 스í�¬ë¦½íЏ 파ì�¼ì�´ 존재.
    • /etc/gnome : GTK+ ì •ì�˜íŒŒì�¼ë“¤ì�´ 있ì�Œ.
    • /etc/httpd (/etc/apache2) : 아파치 웹 서버ì�˜ 설정 ë°� 로그파ì�¼ì�´ 있ì�Œ.
    • /etc/logrotate.d : logrotate 설정 파ì�¼ë“¤ì�´ 있ì�Œ.
    • /etc/mail : 센드메ì�¼ê³¼ 관련ë�œ 파ì�¼ì�´ 있ì�Œ.
    • /etc/ppp : ppp 설정ì—� 관련ë�œ 파ì�¼ë“¤ì�´ 있ì�Œ.
    • /etc/profile.d : 쉘 로그ì�¸ 하여 프로파ì�¼ì�˜ 실행ë�˜ëŠ” 스í�¬ë¦½íЏì—� 대한 ì •ì�˜ê°€ 있ì�Œ.
    • /etc/rc.d : 시스템 초기화와 관련ë�œ 스í�¬ë¦½íŠ¸ê°€ 존재.
    • /etc/samba : 삼바ì—� 관련ë�œ 파ì�¼ë“¤ì�´ 있ì�Œ.
    • /etc/security : 터미ë„� 보안ì—� 관련ë�œ 설정ì�´ 있ì�Œ.
    • /etc/skel : 새로운 사용ìž�를 추가할 때 ìž�ë�™ì �으로 ìƒ�성ë�˜ëŠ” 디렉토리와 파ì�¼ì�´ 있ì�Œ.
    • /etc/squid : squid 프ë¡�시 서버ì—� 관련ë�œ 파ì�¼ì�´ 있ì�Œ.
    • /etc/ssh : secure shell 설정 파ì�¼ì�´ 있ì�Œ
    • /etc/sysconfig : 시스템과 네트워í�¬ 설정ì�„ ë‹´ê³  있ì�Œ.
    • /etc/xinetd.d : 슈í�¼ë�°ëª¬ xinetd.dì�˜ 서비스 ì˜�ì—­ì�„ 설정하는 디렉토리.

아파치를 비롯한 모든 서버� 환경설정 파�� 관리 �는 곳�다. 물론 사용�가 �접 바�너리로 설치했� 경우�는 � 곳� 위치하지 않� 수�있다. 그러나 대부분 패키지 관리�를 통해서 설치� 프로그램� 경우 �곳�서 설정� 가능하다. �접 설치를 하는 경우�면 X11, apache2, init.d, rc.*, skel, xinitd.d 디렉토리를 많� 다루게 �다.

2.7. /var

  • 가변 ìž�료 저장 디렉토리
  • 시스템 ìš´ì˜�중ì—� 시스템 ìž�료 ë�°ì�´í„°ê°€ 변경ë�  때 변경ë�œ ìž�료들ì�´ 저장ë�˜ëŠ” ê³³.
  • 주로 시스템 ìž‘ë�™ê¸°ë¡�(log)들ì�„ 저장.
  • /var/log : 시스템ì—� ë°œìƒ�ë�œ ì�¼ë“¤ì—� 대한 기ë¡� 파ì�¼ì�´ 있ì�Œ
  • /var/named : 네임서버 설정 파ì�¼ë“¤ 존재
  • /var/spool/mail : 수신 ë©”ì�¼ì�„ 사용ìž� 명으로 기ë¡�하는 디렉토리'''

바�너리 파�� 경우가 아니� 실제 시스템� 운��면서 변화하는 �료를 저장하는 부분�다. 웹 서버� 기본 루트디렉토리가 보통 �곳� 존재한다. (alias �경우는 예외) �반�으로 로그가 위치하기 때문� 중요한 곳�다. 시스템� 보안 관계� 문제나 �래쉬가 발�했� 경우 로그 분�� 통해서 ��� 분�한다.

2.8. /usr

  • ì�¼ë°˜ 사용ìž�들ì�„ 위한 대부분ì�˜ 프로그램 ë�¼ì�´ë¸ŒëŸ¬ë¦¬ 파ì�¼ë“¤ì�´ 위치.
  • /usr/bin : ì�‘ìš© 프로그램ì�˜ 실행 파ì�¼ì�´ 위치
  • /usr/sbin : 주로 네트워í�¬ 관련 실행 명령어와 실행 ë�°ëª¬ë“¤ì�„ ë§Žì�´ í�¬í•¨í•˜ê³  있ì�Œ.
  • /usr/X11R6 : X-window 시스템ì—� 관련ë�œ 파ì�¼ 존재.
  • /usr/include : 기본 C ë�¼ì�´ë¸ŒëŸ¬ë¦¬ í—¤ë�” 파ì�¼ê³¼ ê°�종 ë�¼ì�´ë¸ŒëŸ¬ë¦¬ í—¤ë�”파ì�¼ë“¤ì�´ 있ì�Œ.
  • /usr/lib : /usr/binê³¼ /usr/sbinì—� 있는 실행 ë°”ì�´ë„ˆë¦¬ë¥¼ 실행하기 위한 ë�¼ì�´ë¸ŒëŸ¬ë¦¬ 존재.
  • /usr/src : 프로그램소스 ë°� 커ë„� 소스들ì�´ ë³´ê´€ë�˜ì–´ 있는 ê³³.
  • /usr/man : 매뉴얼 페ì�´ì§€ê°€ 담겨있는곳.
  • /usr/local : 새로운 프로그램들ì�´ 설치ë�˜ëŠ” ê³³(windowsì�˜ Program Files 와 유사)

보통 바�너리 프로그램� 설치할 경우 /usr/local � 설치하여 �관성� 유지한다. jdk등� 설치할 때�고 관습� /usr/local � 설치를 해주고, 배��� 패키지 형태로 jdk등� 제공할때�는 배��� 통해 설치하는 것� 패키지� 통�성 � 관리� 편�성 면�서 좋다.

2.9. /mnt

'''- 다른 장치들� 마운트 할때 �반�으로 사용하는 디렉토리
- 다른 디렉토리를 사용하여� �.'''
다른 파티션� 장치들� 마운트하는 관례�� 디렉토리�다.

2.10. /home

'''- �반 사용�� 홈 디렉토리가 만들어 지는 디렉토리
- 사용� 계정� 만들면 게정과 같� �름으로 새로운 사용� 디렉토리가
/home 디렉토리� 하위 디렉토리로 �성�.
예) test 사용� 추가 후 홈 디렉토리 확�하기.
root@test />$adduser test
root@test />$cd /home
root@test home>$ls

test <-- 디렉토리 �성
'''
root계정�외� 계정� 할당�는 곳�다. 서버� 사용�들� � 디렉토리 ��
�신만� 디렉토리를 할당받고 웹 서비스를 �용하게�다.

2.11. /boot

  • 부팅ì—� 핵심ì �ì�¸ 커ë„� ì�´ë¯¸ì§€ì™€ 부팅 ì •ë³´ 파ì�¼ì�„ ë‹´ê³  있는 디렉토리
  • /etc/lilo.confì—�서 지정한 커ë„� 부팅 ì�´ë¯¸ì§€ 파ì�¼ì�´ 들어 있으며 부팅시 매우 중요한 디렉토리

ì�´ 디렉토리ì—�는 커ë„�ì�˜ ë°”ì�´ë„ˆë¦¬ ì�´ë¯¸ì§€ê°€ 위치한다. 보통ì�€ 부트로ë�”를 /vmlinuz 로 부팅하게 설정하고, 현재 ë‚´ê°€ ì“°ê³  ì‹ì�€ 커ë„�ì�˜ 심볼릭 ë§�í�¬ë¥¼ /vmlinuz 로 설정하여서 ì�´ìš©í•œë‹¤. ì�´ 경우 커ë„�ì�˜ 버전업ì�´ë‚˜ 테스팅ì�„ 위해서 커ë„�ì�˜ 버전ì�´ 필요할 경우 관리ìƒ� ìš©ì�´í•˜ë‹¤.

2.12. /root

  • 슈í�¼ìœ ì €(root) 사용ìž�ì�˜ 홈 디렉토리.
  • / 와 /root 디렉토리는 부르는 ì�´ë¦„ì�€ 같지만 서로 다름.'''

3. 실제 설치할때

실제 파티션� 분할할때�는 어떤 목�으로 프로그램� �용하는지� 대한 �해가 필요하다. 처� 설치하는 사용�� 경우�는 전체 파티션� 단� 파티션으로 잡고 설치를 해� 무방하지만 다중 사용� 계정� 지�할 용�가 있는 경우�는

/ 500M/30G 커� �미지, � 프로그램� 설정파�등 �지 않� 파�들� 저장�다.
/usr 8G/30G 실제 �용프로그램� 대부분� 설치�므로 넉넉하게 설정하는 것� 필요하다.
/var 5G/30G 서버 시스템� 운� �황� 대한 로그들 (syslogd, apache etc) � 유지해야하기 때문� 마찬가지로 넉넉하게 잡는 것� 필요하다.
/home 10G/30G 사용�가 몇명�나 �용할지� 대해서 대략�� 추정� 통해 할당한다. quota 기능� �용하면 � 사용�별로 할당�는 공간� 지정가능
/tmp 500M/30G 임시파�들� 저장�는 곳�다. Oracle DB� 경우 � 파티션� �� 경우 설치시 문제가 �다고 함.
swap 1.5G/30G 보통� 메� 메모리� 2배정�를 잡는 다고 하지만 �당한 수준�서 잡는 것� 좋다. 메� 메모리가 충분하다면 없어� 그만

� 5가지 항목으로 �기 다른 파티션� 분할하는 것� 좋다.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:39
Processing time 0.0097 sec