이 글에서 사용된 명령어와 예시는 CentOS8을 기준으로 작성된 것입니다.
디렉토리(Directory) 종류
[/]
: 리눅스 파일 시스템 체계의 최상위 디렉토리 /(루트). 모든 디렉토리들의 시작점이며 모든 파일시스템의 Mount Point가 존재하고 모든 파일시스템의 이름(Name Space)이 존재한다. 모든 디렉토리는 절대 경로를 표시 할 때에 이 디렉토리부터 시작하며, "cd /" 입력하면 바로 root 디렉토리로 이동한다.
* 주의 : 시스템 관리자의 홈 디렉토리인 /root 와는 별개이다.
[/root]
: root 계정(시스템 관리자) 의 홈 디렉토리, root 사용자 환경 파일(.bash_profile, .bashrc) 운영제체 설치 기록 파일(install.log,anaconda-ks.cfg) 들이 있다.
[bin]
: binaries의 약어로 이진 파일들이며 리눅스에서 가장 기본이 되는 명령어들이 모여 있는 디렉토리. 부팅에 필요한 명령어들이 위치하며, 부팅 후에 시스템의 계정 사용자들이 사용할 수 있는 일반적인 명령어들도 위치하고 있다. CentOS 7 부터는 /usr/bin으로 링크되어 있다.
/bin 디렉토리 확인 (* : 실행 파일, @ : 링크 파일)
* cat, chmod, chgrp, chwon, env(현재 홖경 설정 내용 출력),date, ls, mkdir, rm, rmdir, touch, vi, ping...
[sbin]
: 관리자가 사용하는 시스템 관리 명령어들이 있는 디렉토리. CentOS7 부터는 /usr/sbin으로 링크 되어 있다.
/sbin 디렉토리 확인 (* : 실행 파일, @ : 링크 파일)
* ifconfig, reboot, shutdown, mount, fsck(디스크 점검), mkfs(디스크 포멧), iptables...
[etc]
: 리눅스에서 없어서는 안될 디렉토리이며, 리눅스 시스템에 관한 각종 환경 설정에 연관된 파일들과 디렉토리들을 가진 디렉토리. 이 디렉토리에 있는 대부분의 파일들은 시스템 관리자에 의해서 관리되는 파일들이다. 웹 서버 환경 설정, 시스템 계정 사용자 정보, 패스워드 관리, 시스템의 파일 시스템 관리 파일, 여러 가지 시스템 보안에 관련된 파일들, 시스템 초기화 설정 파일, TCP/IP 설정 파일 등 시스템 전반에 걸친 거의 모든 환경 설정 파일들이 모두 이 디렉토리 안에 저장.
디렉토리 | 설명 |
/rc.d | 시스템 부팅 및 시스템 실행 레벨 변경시 실행되는 스크립트들이 저장 (실행 레벨은 'rc0.d ~ rc6.d' 6 개 있음) |
/passwd | 사용자 계정 정보를 관리하는 파일 |
/shadow | 사용자 패스워드를 암호화하여 별도로 관리하는 파일 |
/group | 시스템 그룹에 관련된 내용을 갖고 있는 파일 |
/systemd | systemd 데몬이 관리하는 디렉토리파일 |
/issue | 로그인 메세지를 관리하는 파일 |
/shells | 시스템에서 사용할 수 있는 쉘 정보를 저장하고 있는 파일 |
/fstab | 파일 시스템을 관리하는 파일 |
/services | 서비스 포트 번호를 관리하는 파일 |
/sysconfig/firewalld | 방화벽 내용을 관리하는 디렉토리 파일 |
/sysconfig/network-scripts/ifcfg-ens33 | Eth 인터페이스 정보를 관리하는 파일 |
[usr]
: 사용하면서 공유할 수 있는 디렉토리와 파일, 거의 모든 프로그램과 그에 관련된 명령어 및 라이브러리들이 저장된 디렉토리이며, X 시스템 관련 파일들과 리눅스 커널 소스, 각종 C언어 관련 헤더파일 등도 이 디렉토리 안에 저장되어 있고, 이 디렉토리 아래에 존재하는 하위 디렉토리에 대해 간략하게 설명한다.
디렉토리 | 설명 |
/bin | 시스템에서 사용하는 프로그램에 대한 실행파일들이 존재 |
/etc | 환경설정 파일 및 디렉토리를 갖고 있는 디렉토리. ('/etc' 디렉토리에 있는 파일처럼 필수 조건은 아님) |
/include | C언어 관련 헤더 파일들이 존재 |
/lib | '/usr/bin'과 '/usr/sbin'에 있는 실행 파일들을 위한 라이브러리들이 존재 |
/local | 시스템 관리자에 의해서 별도로 설치되는 일반적인 프로그램들이 존재 |
/sbin | 시스템 관리를 위한 명령어들이 존재 |
/share/man | 메뉴얼 페이지 내용을 저장 |
/share/info | GNU 정보 문서들을 저장 |
/share/doc | 각종 문서들이 저장 |
[boot]
: 부트로더와 부팅을 위한 파일이 있는 디렉토리. 리눅스 커널이 저장하며(건들지 않는 것을 권장), 부팅 프로세스를 시작하는 데 필요한 파일들이 존재한다.
[dev]
: 시스템의 각종 디바이스들의 목록이 들어 있는 디렉토리. 디렉토리를 살펴보면 많은 파일들이 위치하고 있는 것을 볼 수 있다. 하지만 이 디렉토리는 물리적인 용량은 갖지 않는 가상 디렉토리이다. 대표적으로 하드 드라이브, 플로피, CD-ROM 그리고 루프백 장치 등이 존재한다. 리눅스 시스템은 윈도우와 달리 각종 디바이스 장치들을 하나의 파일로 취급한다. 따라서 시스템은 각각의 장치로부터의 정보를 /dev 디렉토리에 존재 하는 해당 장치 파일로부터 가져온다.
디렉토리 | 설명 |
/console | 시스템 콘솔 파일 |
/tty | 가상 콘솔 장치 |
/tty (번호) | 시스템 직열 포트 장치들 |
/lp (번호) | 시스템 병열 포트 장치 |
/hda | IDE 방식 하드 디스크 (CentOS 6.x부터는 hd*도 sd*로 다 표기) |
/sda | SCSI 방식 하드 디스크 |
/null 또는 /zero | 이 장치로 전송된 데이터는 모두 폐기 |
/pts (디렉토리) | 시스템 원격 접속(텔넷, SSH)을 위한 터미널 장치 |
/cdrom | 시디룸 드라이브 장치 |
[var]
: /var 디렉토리는 시스템에서 사용되는 가변적인 파일들이 저장된다. 각종 시스템 로그파일, 사용자 로그인에 대한 보안 기록 그리고 만약 시스템에 메일 서버를 운영한다면 사용자들에게 전송된 메일들을 임시로 저장한다.
[tmp]
: 임시 파일들이 저장되는 디렉토리. 즉 프로그램들이 사용하는 임시 파일들이 생성된다. /tmp 디렉토리안의 내용은 재부팅되면 삭제되고 부팅이 되면서 다시 생성이 된다.
[proc]
: 시스템의 각종 프로세서, 프로그램 정보 그리고 하드웨어적인 정보들이 저장된다. 이 디렉토리는 가상 파일 시스템으로 /dev 디렉토리와 마찬가지로 하드디스크상에 물리적인 용량을 갖지 않는다. 즉, 실제로 존재하지 않는다는 것. 또한 이 디렉토리에 존재하는 파일들은 실제 하드 디스크에 저장되지 않고 커널에 의해서 메모리에 저장된다. 그러므로 그 디렉토리 안의 파일들은 현재의 시스템 설정을 보여주는 것이다.
디렉토리 | 설명 |
/cpuinfo | CPU 정보 |
/devices | 커널에 설정되어 있는 장치 목록 |
/dma | 사용중인 DMA 체널(DMA : CPU 를 거치지 않고 직접 메모리와 읽기/쓰기를 할 수 있는 채널) |
/filesystems | 커널에 설정되어 있는 파일 시스템 |
/interrupts | 사용중인 인터럽트 정보 |
/ioports | 사용중인 I/O 포트 정보 |
/loadavg | 시스템 평균 부하량 |
/meminfo | 시스템 메모리 정보 |
/modules | 커널 모듈 정보 |
/stat | 시스템 상태 정보 |
/uptime | 시스템이 구동되고 있는 시간 |
/version | 커널 버전 |
/net | 네트워크 관렦 정보를 확인할 수 있는 파일들이 존재 |
[lib]
: 프로그램들의 각종 라이브러리들이 존재한다. 대부분 공유 라이브러리로 더 편리하게 사용할 수 있으며 파일 크기를 줄여서 실행할 때 불러 사용하게 된다. CentOS7부터는 /usr/lib으로 링크되어 있고, 64bit의 경우는 /lib64로 링크되어 있으며 /usr/lib64로 링크되어 있다.
[mnt]
: 외부 장치인 플로피 디스크, CD-ROM, NFS, SAMBA 등을 마운트하기 위해서 제공되는 디렉토리. 이 디렉토리는 임시로 사용되는 디렉토리이므로 프로그램은 /mnt 디렉토리에 어떠한 파일 시스템이 마운트 되었는지 자동으로 인식 하지 않는다. 또한 /mnt는 보통 여러 개의 하위 디렉토리로 나누어 사용하며, 평소에는 /mnt 디렉토리의 각 디렉토리들은 비어 있는 상태이다.
* NFS : 사용자가 원격으로 액세스할 때 로컬에 있는 것처럼 처리하는 분산 파일 시스템
* SAMBA: 여러 운영체제간에 자원을 공유하기 위한 파일 시스템으로 보통 리눅스와 윈도우간의 자원공유로 사용
[srv]
: 시스템이 제공하는 서비스를 위한 파일들이 있는 디렉토리. (FTP ,HTTP 등)
[media]
: USB, CD, DVD 와 같은 이동식 디스크가 마운트되는 디렉토리로 이동식 디스크가 장착되면 Automount 기능을 이용하여 자동으로 검색하여 '/media/미디어 이름' 형식으로 마운트된다.
[home]
: 시스템 계정 사용자들의 홈 디렉토리가 저장된다. 이곳의 디렉토리와 파일들은 시스템에서 사용 되지 않는다. 단지 리모트 상에서 시스템으로 접속을 하는 사용자들을 위한 공간.
[lost+found]
: 부팅시 파일시스템에 문제가 발생할 경우 fsck를 이용하여 복구할때 사용하는 디렉토리. 파티션마다 한개씩 있으며, 삭제하지 않는 것을 권장.
'운영체제 > Linux' 카테고리의 다른 글
[Linux_개념] 쉘 (Shell) (0) | 2023.02.21 |
---|---|
[Linux_개념] 프로세스 (Process) (0) | 2023.02.13 |
[Linux_개념] 압축&아카이빙(gzip, bzip2, tar, zip) (0) | 2023.02.07 |
[Linux_개념] su, sudo란? (0) | 2023.02.07 |
[Linux_개념] Shell 메타 캐릭터 (Meta Character) (0) | 2023.02.06 |
댓글