서버/Linux I 2016. 1. 27. 13:50
Linux I - 15. 디렉토리 구조
login as: root
root@192.168.1.2's password:
Last login: Wed Jan 27 13:28:09 2016 from 192.168.1.1
[root@CentOS /root]#
리눅스는 트리 구조로 디렉토리를 구성하며, 명령어, 내용, 사용 권한에 따라서 디렉토리가 구분되어 있다. 또한 FHS(Filesystem Hierarchy Standard)라는 표준 파일 시스템 계층을 사용하고 있기 때문에 같은 목적의 파일들을 같은 디렉토리로 관리하여 시스템 자원 및 프로그램들을 쉽게 찾을 수 있다. 리눅스에서 사용하는 대표적인 디렉토리는 다음과 같다.
[디렉토리 유형]
/ |
root 디렉토리, 디렉토리 트리 구조에서 가장 상단에 위치함 |
/root |
시스템 관리자 홈 디렉토리 |
/bin |
일반 사용자가 사용하는 기본 명령어들이 있는 디렉토리 |
/sbin |
관리자가 사용하는 시스템 관리 명령어들이 있는 디렉토리 |
/etc |
환경 설정 파일 및 디렉토리를 갖고 있는 디렉토리 |
/usr |
프로그램들이 설치되는 디렉토리 |
/boot |
부트로더와 부팅을 위한 파일이 있는 디렉토리 |
/dev |
장치 파일들이 있는 디렉토리 |
/var |
시스템 운영중에 자주 변경되는 파일들이 있는 디렉토리 |
/tmp |
임시 파일들이 저장되는 디렉토리 |
/proc |
프로세스 및 프로그램 정보, 메모리/하드웨어 정보 파일이 있는 디렉토리 |
/lib |
공유 라이브러리와 커널 모듈이 있는 디렉토리 |
/mnt |
NFS와 같은 파일 시스템이 임시로 마운트하는 디렉토리 |
/srv |
시스템이 제공하는 서비스를 위한 파일들이 있는 디렉토리 |
/media |
USB, CD, DVD와 같은 이동식 디스크가 마운트되는 디렉토리 |
/home |
시스템 계정을 위한 사용자 홈 디렉토리 |
/lost+found |
부팅시 파일시스템에 문제가 발생하면, 복구할때 사용하는 디렉토리 |
1. / 디렉토리
root 디렉토리라고 한다. 디렉토리 구조에서 가장 상위 디렉토리이다. 어떤 디렉토리에서든 'cd /'를 실시하면, 바로 root 디렉토리로 갈 수 있다.
[root@CentOS /root]# cd /
[root@CentOS /]# cd -
[root@CentOS /]# cd /etc/yum
[root@CentOS /etc/yum]# cd /
[root@CentOS /]#
[root@CentOS /]# ls /
bin dev home lib64 media mnt opt root selinux sys usr
boot etc lib lost+found misc net proc sbin srv tmp var
2. /root 디렉토리
root 계정의 홈 디렉토리이다. 여기에는 root 사용자 환경 파일(.bash_profile, .bashrc), 운영제체 설치 기록 파일(install.log,anaconda-ks.cfg) 들이 있다.
[root@CentOS /]# cd
[root@CentOS /root]# ls -a
. .gconf .mozilla home.tar.gz
.. .gconfd .nautilus install.log
.ICEauthority .gnome2 .pulse install.log.syslog
.abrt .gnome2_private .pulse-cookie 공개
.bash_history .gnote .ssh 다운로드
.bash_logout .gnupg .tcshrc 문서
.bash_profile .gstreamer-0.10 .themes 바탕화면
.bashrc .gtk-bookmarks .thumbnails 비디오
.cache .gvfs .viminfo 사진
.config .icons .vimrc 음악
.cshrc .imsettings.log anaconda-ks.cfg 템플릿
.dbus .lesshst cfile4.uf@2752A13656932BE71E15DA.rpm
.esd_auth .local home
3. /bin 디렉토리
일반 사용자가 사용하는 기본 명령어들이 있는 디렉토리이다. 'ls'로 열어보면 대부분 실행 파일(연두색, *)들을 볼 수 있으며, 부팅에 필요한 명령어 및 일반 사용자들도 사용할 수 있는 명령어들이 있다.
대표적인 명령어 : cat, chmod, chgrp, chwon, env(현재 환경 설정 내용 출력),date, ls, mkdir, rm, rmdir, touch, vi, ping...
[root@CentOS /root]# ls -F /bin
alsaunmute* dnsdomainname@ kbd_mode* ping* sync*
arch* domainname@ keyctl* ping6* tar*
awk@ dumpkeys* kill* plymouth* taskset*
basename* echo* link* ps* tcsh*
bash* ed* ln* pwd* touch*
cat* egrep* loadkeys* raw* tracepath*
chgrp* env* logger* readlink* tracepath6*
chmod* ex@ login* red* traceroute*
chown* false* ls* redhat_lsb_init* traceroute6@
cp* fgrep* lsblk* rm* true*
cpio* find* mail@ rmdir* ulockmgr_server*
csh@ findmnt* mailx* rnano@ umount*
cut* fusermount* mkdir* rpm* uname*
dash* gawk* mknod* rvi@ unicode_start*
date* gettext* mktemp* rview@ unicode_stop*
dbus-cleanup-sockets* grep* more* sed* unlink*
dbus-daemon* gtar@ mount* setfont* usleep*
dbus-monitor* gunzip* mountpoint* setserial* vi*
dbus-send* gzip* mv* sh@ view@
dbus-uuidgen* hostname* nano* sleep* ypdomainname@
dd* ipcalc* netstat* sort* zcat*
df* iptables-xml@ nice* stty*
dmesg* iptables-xml-1.4.7@ nisdomainname@ su*
4. /sbin 디렉토리
관리자가 사용하는 시스템 관리 명령어들이 있는 디렉토리이다. 'ls'로 열어보면 대부분 실행 파일(연두색, *)들을 볼 수 있으며, 부팅에 필요한 명령어 및 일반 사용자들도 사용할 수 있는 명령어들이 있다.
대표적인 명령어 : ifconfig, reboot, shutdown, mount, fsck(디스크 점검), mkfs(디스크 포멧), iptables...
[root@CentOS /root]# ls -F /sbin
MAKEDEV* fsck.cramfs* iwpriv* mount.nfs* service*
accton* fsck.ext2* iwspy* mount.nfs4@ setfiles*
addpart* fsck.ext3* kdump* mount.tmpfs* setpci*
agetty* fsck.ext4* kexec* mount.vmhgfs* setregdomain*
alsactl* fsck.ext4dev* killall5* nameif* setsysfont*
arp* fsck.msdos@ kpartx* netreport* sfdisk*
arping* fsck.vfat@ ldconfig* new-kernel-pkg* sgpio*
~ 중간 생략 ~
busybox* hwclock* lvmconf* portreserve* telinit*
cbq* ifcfg* lvmdiskscan@ poweroff@ tune2fs*
cfdisk* ifconfig* lvmdump* ppp-watch* udevadm*
chcpu* ifdown* lvmetad* pvchange@ udevd*
chkconfig* ifenslave* lvmsadc@ pvck@ umount.hal*
~ 중간 생략 ~
5. /etc 디렉토리
환경 설정 파일 및 디렉토리를 갖고 있는 디렉토리이며, 웹-서버 환경 설정, 시스템 계정 정보, 패스워드 관리, 시스템 관리, 시스템 보안, 시스템 초기화 설정, TCP/IP 설정과 같은 관리 파일과 디렉토리가 있다
[root@CentOS /root]# ls /etc
ConsoleKit favicon.png makedev.d readahead.conf
DIR_COLORS festival man.config redhat-lsb
DIR_COLORS.256color filesystems maven redhat-release
~ 중간 생략 ~
/etc/rc.d
시스템 부팅 및 시스템 실행 레벨 변경시 실행되는 스크립트들이 저장되어 있다. (실행 레벨은 'rc0.d ~ rc6.d' 6개 있음)
/etc/passwd
사용자 계정 정보를 관리하는 파일이다. 사용자 ID, 패스워드, 그룹, 주석, 사용하는 쉘을 볼 수 있다.
/etc/shadow
사용자 패스워드를 암호화하여 별도로 관리하는 파일이다.
/etc/group
시스템 그룹에 관련된 내용을 갖고 있는 파일이다.
/etc/inittab
init 데몬이 관리하는 파일이다.
/etc/issue
로그인 메세지를 관리하는 파일이다.
/etc/securetty
시스템에 로그인할 수 있는 터미널에 대한 정보가 저장돠어 있는 파일이다.
/etc/shells
시스템에서 사용할 수 있는 쉘 정보를 저장하고 있는 파일이다.
/etc/fstab
파일 시스템을 관리하는 파일이다.
/etc/services
서비스 포트 번호를 관리하는 파일이다.
/etc/sysconfig/i18n
시스템에서 사용하고 있는 언어 정보를 관리하는 파일이다.
/etc/sysconfig/iptables
방화벽 설정 내용을 관리하는 파일이다.
/etc/sysconfig/network-scripts/ifcfg-eth0
Eth0 인터페이스 정보를 관리하는 파일이다.
프로그램들이 설치되는 디렉토리이며, 거의 모든 프로그램들과 이에 관련된 명령어 및 라이브러리들이 있다.
[root@CentOS /root]# ls /usr
bin etc games include lib lib64 libexec local sbin share src tmp
/usr/bin 디렉토리
시스템에서 사용하는 프로그램에 대한 실행파일들이 있다.
/usr/etc 디렉토리
환경 설정 파일 및 디렉토리를 갖고 있는 디렉토리 이지만, '/etc' 디렉토리에 있는 파일처럼 필수 조건은 아니다.
/usr/include 디렉토리
C 언어 관련 헤더 파일들이 있다.
/usr/lib 디렉토리
'/usr/bin'과 '/usr/sbin'에 있는 실행 파일들을 위한 라이브러리들이 있다.
/usr/local 디렉토리
시스템 관리자에 의해서 별도로 설치되는 일반적인 프로그램들이 있다.
/usr/sbin 디렉토리
시스템 관리를 위한 명령어들이 있다.
/usr/share/man 디렉토리
메뉴얼 페이지 내용을 저장하고 있다
/usr/share/info 디렉토리
GNU 정보 문서들을 저장하고 있다.
/usr/share/doc 디렉토리
각종 문서들이 저장되어 있다.
/usr/src 디렉토리
프로그램 컴파일이 되지 않는 소스 파일들을 저장하고 있다.
7. /boot 디렉토리
부트로더와 부팅을 위한 파일이 있는 디렉토리이며, 리눅스 커널이 저장되어 있다. 그렇기 때문에 /boot 디렉토리 안에 있는 파일은 건드리지 않는 것을 권장한다.
[root@CentOS /root]# ls /boot
System.map-2.6.32-504.el6.x86_64 initrd-2.6.32-504.el6.x86_64kdump.img
config-2.6.32-504.el6.x86_64 lost+found
efi symvers-2.6.32-504.el6.x86_64.gz
grub vmlinuz-2.6.32-504.el6.x86_64
initramfs-2.6.32-504.el6.x86_64.img
[root@CentOS /root]# uname -a
Linux CentOS 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@CentOS /root]# cat /boot/grub/grub.conf
~ 중간 생략 ~
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS 6 (2.6.32-504.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=/dev/mapper/vg_centos-lv_root rd_NO_LUKS LANG=ko_KR.UTF-8 rd_LVM_LV=vg_centos/lv_swap rd_NO_MD rd_LVM_LV=vg_centos/lv_root rd_NO_DM KEYBOARDTYPE=pc KEYTABLE=ko rhgb quiet
initrd /initramfs-2.6.32-504.el6.x86_64.img
8. /dev 디렉토리
장치 파일들이 있는 디렉토리이며, 하드디스크, 포트, 콘솔, 루프백과 같은 장치들을 파일로 생성하여 관리한다.
/dev/console
시스템 콘솔 파일이다.
/dev/hda
IDE 방식 하드 디스크이다.
디스크
├── hda (첫번째 하드 디스크)
│ ├── hda1 첫번째 파티션
│ └── hda2 두번째 파티션
├── hdb (두번째 하드 디스크)
│ ├── hdb1 첫번째 파티션
│ └── hdb2 두번째 파티션
└── hdc (세번째 하드 디스크)
├── hdc1 첫번째 파티션
└── hdc2 두번째 파티션
/dev/sda
SCSI 방식 하드 디스크이다.
/dev/lp번호
시스템 병열 포트 장치들이다.
/dev/tty번호
시스템 직열 포트 장치들이다.
/dev/null 또는 /dev/zero
이 장치로 전송된 데이터는 다 폐기된다.
/dev/pts 디렉토리
시스템 원격 접속(텔넷, SSH)을 위한 터미널 장치이다.
/dev/tty
가상 콘솔 장치이다.
/dev/cdrom
시디룸 드라이브 장치이다.
9. /var 디렉토리
시스템 운영중에 자주 변경되는 파일(시스템 로그 파일, 사용자 로그인 기록, 메일 임시 저장)들이 있는 디렉토리이다.
/var/log 디렉토리
로그 파일들이 저장되어 있다.
[root@CentOS /root]# cat /var/log/messages | head -n 5
Jan 27 13:41:01 CentOS rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1735" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Jan 27 13:51:42 CentOS dhclient[26047]: DHCPREQUEST on eth0 to 192.168.1.253 port 67 (xid=0x3b880b76)
Jan 27 13:51:42 CentOS dhclient[26047]: DHCPACK from 192.168.1.253 (xid=0x3b880b76)
Jan 27 13:51:42 CentOS dhclient[26047]: bound to 192.168.1.2 -- renewal in 746 seconds.
Jan 27 13:51:42 CentOS NetworkManager[1809]: <info> (eth0): DHCPv4 state changed renew -> renew
~ 중간 생략~
/var/run 디렉토리
시스템 정보들이 저장되어 있다. 다음과 같이 'atd' 데몬이 동작 중이면, 'var/run'에 'atd' 데몬의 PID 번호를 저장하고 있다.
[root@CentOS /root]# ps -ef | grep atd
rpcuser 1830 1 0 07:45 ? 00:00:00 rpc.statd
root 2322 1 0 07:45 ? 00:00:00 /usr/sbin/atd
root 31311 29600 0 17:35 pts/0 00:00:00 grep atd
[root@CentOS /root]# cat /var/run/atd.pid
2322
/var/spool
메일, 뉴스, atd, crond와 같은 시스템에서 대기 상태인 작업들을 위한 디렉토리이다. 각각의 대기 작업들에 대한 디렉토리는 별도로운영된다.
[root@CentOS /root]# cd /var/spool
[root@CentOS /var/spool]# ls
abrt abrt-upload anacron at cron cups gdm lpd mail plymouth postfix
[root@CentOS /var/spool]#
[root@CentOS /var/spool]# ls /var/spool/mail
root rpc user1 user2
[root@CentOS /var/spool]# cd /
[root@CentOS /]#
10. /tmp 디렉토리
임시 파일들이 저장되는 디렉토리이며, 여기 안에 있는 내용들은 재부팅되면 삭제되고 부팅되면 다시 생성된다.
[root@CentOS /]# ls -a /tmp
. .esd-0 orbit-root vmware-root-2864857996
.. VMwareTools-9.6.1-1378637.tar.gz pulse-TUIvaMVYX0fW vmware-root-4194939452
.ICE-unix gnome-system-monitor.root.644844164 pulse-dU9aqxp5tJZG vmware-tools-distrib
.X0-lock keyring-Yy6ejk virtual-root.WBQVsm
.X11-unix orbit-gdm vmware-root
11. /proc 디렉토리
프로세스 및 프로그램 정보, 메모리/하드웨어 정보 파일이 있는 디렉토리이다. 이 디렉토리에 있는 파일들은 하드 디스크에 저장되는 것이 아니라, 커널에 의해서 메모리에 저장되어 사용된다.
/proc/cpuinfo
CPU 정보
/proc/devices
커널에 설정되어 있는 장치 목록
/proc/dma
사용중인 DMA 체널(DMA : CPU를 거치지 않고 직접 메모리와 읽기/쓰기를 할 수 있는 체널)
/proc/filesystems
커널에 설정되어 있는 파일 시스템
/proc/interrupts
사용중인 인터럽트 정보
/proc/ioports
사용중인 I/O 포트 정보
/proc/loadavg
시스템 평균 부하량
/proc/meminfo
시스템 메모리 정보
/proc/modules
커널 모듈 정보
/proc/stat
시스템 상태 정보
/proc/uptime
시스템이 켜저있는 시간
/proc/version
커널 버전
/proc/net 디렉토리
네트워크 관련 정보를 확인할 수 있는 파일들이 있다.
12. /lib 디렉토리
공유 라이브러리와 커널 모듈이 있는 디렉토리이다.
[root@CentOS /]# ls /lib
alsa crda firmware kbd lsb modules security terminfo udev
[root@CentOS /]# ls /lib/modules/
2.6.32-504.el6.x86_64
[root@CentOS /]#
[root@CentOS /]# ls /lib/modules/2.6.32-504.el6.x86_64/
build modules.block modules.inputmap modules.pcimap source
extra modules.ccwmap modules.isapnpmap modules.seriomap updates
kernel modules.dep modules.modesetting modules.softdep vdso
misc modules.dep.bin modules.networking modules.symbols weak-updates
modules.alias modules.drm modules.ofmap modules.symbols.bin
modules.alias.bin modules.ieee1394map modules.order modules.usbmap
13. /mnt 디렉토리
NFS와 같은 파일 시스템이 임시로 마운트하는 디렉토리이며, 프로그램은 이 디렉토리에 파일 시스템이 마운트 되었는지 자동으로 인식하지 않는다. (NFS : 클라이언트가 서버로부터 파일 시스템을 마운트하는 방식)
14. /srv 디렉토리
시스템이 제공하는 서비스를 위한 파일들이 있는 디렉토리이며, FTP, HTTP 등의 데이터들이 있다.
15. /media 디렉토리
USB, CD, DVD와 같은 이동식 디스크가 마운트되는 디렉토리이다. 이동식 디스크가 장착되면 Automount 기능을 이용하여 자동으로 검색하여 '/media/미디어 이름' 형식으로 마운트된다.
16. /home 디렉토리
시스템 계정을 위한 사용자 홈 디렉토리이다. 각각의 사용자별로 디렉토리가 생성되며, 여기에 있는 파일과 디렉토리는 시스템에서 사용하지 않는다.
17. /lost+found 디렉토리
부팅시 파일시스템에 문제가 발생할 경우, 'fsck' 명령어를 이용하여 복구할때 사용하는 디렉토리이다. 이 디렉토리는 파티션 마다 각각 한개씩 있으며, 삭제하지 않는 것을 권장한다.
'서버 > Linux I' 카테고리의 다른 글
Linux I - 17. 마운트 관리 (0) | 2016.01.28 |
---|---|
Linux I - 16. 파티션 작업 & 파일 시스템 생성 (0) | 2016.01.27 |
Linux I - 14. 파일 타입 (0) | 2016.01.27 |
Linux I - 13. 작업 관리 (at & cron) (0) | 2016.01.26 |
Linux I - 12. 프로세스 관리 (0) | 2016.01.25 |