본문 바로가기
  • 그라데이션
운영체제/Linux

[Linux_개념] 디렉토리(Directory)

by 콩리토 2023. 2. 12.
반응형
이 글에서 사용된 명령어와 예시는 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를 이용하여 복구할때 사용하는 디렉토리. 파티션마다 한개씩 있으며, 삭제하지 않는 것을 권장.

728x90

댓글