리눅스 기초: 파일 시스템 구조, 탐색 및 파일 관리
최상위 루트 디렉터리 /는 계층 구조의 꼭대기에 있으며, 모든 다른 파티션이 여기에 마운트됩니다. 주요 디렉터리들은 각자의 역할을 명확히 정의합니다: /etc는 설정 파일용, /var는 동적 데이터용, /proc와 /sys는 커널에 대한 가상 인터페이스입니다.
/
├── etc # 시스템 및 앱 설정
├── var # 가변 데이터: 로그, 캐시, 큐
├── proc # 커널 및 프로세스 상태
├── sys # 장치 및 드라이버
├── tmp # 임시 파일
├── home # 사용자 홈 디렉터리
├── root # 루트 사용자 홈
├── dev # 장치 파일
├── usr # 프로그램 및 라이브러리
├── bin # 필수 유틸리티 ( /usr/bin 심볼릭 링크 )
├── sbin # 관리자 명령어 ( /usr/sbin 심볼릭 링크 )
├── opt # 타사 소프트웨어
├── run # 런타임 프로세스 데이터
├── mnt # 수동 마운트 지점
└── boot # 부트로더 및 커널 파일
/etc: 중앙 집중식 설정
서비스, 네트워크 설정, 사용자 관련 설정 파일을 저장합니다. 주요 파일로는 사용자 계정 정보가 담긴 /etc/passwd, 마운트 지점 설정 /etc/fstab, 로컬 호스트명 해석 /etc/hosts, SSH 설정 /etc/ssh/sshd_config 등이 있습니다.
/var: 동적 데이터
변경되는 파일들을 저장합니다. 예를 들어 /var/log에 로그, /var/mail에 메일, /var/spool에 인쇄 큐, /var/www에 웹 서버 콘텐츠가 있습니다. 문제 해결 시 가장 먼저 확인하는 곳입니다.
가상 파일 시스템: /proc와 /sys
/proc는 프로세스와 커널의 실시간 데이터를 제공합니다: CPU 정보는 /proc/cpuinfo, 메모리 통계는 /proc/meminfo, init 프로세스는 /proc/1/. /sys는 장치 인터페이스를 제공해 드라이버와 하드웨어 매개변수를 즉석에서 조정할 수 있습니다.
사용자 디렉터리와 장치
/home/username은 개인 파일과 설정(예: .config, .ssh)을 담습니다. /root는 루트 사용자 전용으로 격리되어 있습니다. /dev는 하드웨어를 나타냅니다: 디스크는 /dev/sda, 출력 버리는 /dev/null, 엔트로피 생성 /dev/random.
탐색: ls, cd, pwd
ls는 디렉터리 내용을 나열하며, 플래그로 세부 정보를 더 볼 수 있습니다.
ls -l: 권한, 소유자, 크기, 날짜.ls -a: 숨김 파일 포함.ls -lh: 사람이 읽기 쉬운 크기(KB/MB/GB).ls -lt: 시간순 정렬.ls -R: 재귀적 나열.
cd로 디렉터리를 이동합니다:
cd /etc: 절대 경로.cd ..: 한 단계 위로.cd ~: 홈 디렉터리.cd -: 이전 디렉터리.
pwd는 현재 경로를 출력합니다: pwd -P로 심볼릭 링크를 해석합니다.
파일 찾기: find와 locate
find는 기준에 따라 재귀적으로 검색합니다.
예시:
find . -name "*.log": 로그 파일.find /var -type f: 파일만.find / -size +100M: 100MB 초과 파일.find /var/log -mtime -1: 지난 1일 내 수정된 로그.find /tmp -name "*.tmp" -delete: 임시 파일 정리.
locate는 데이터베이스를 사용해 빠르게 검색합니다:
locate passwd.sudo updatedb로 인덱스 갱신.
Ubuntu 22.04 이상에서는 성능이 더 좋은 plocate를 사용하세요.
tree는 디렉터리 구조를 시각화합니다: tree -L 2 -a -I "node_modules".
파일 관리: cp, mv, rm
cp로 복사합니다:
cp file.txt /tmp/.cp -r dir1/ /backup/.cp -p로 메타데이터 보존.cp -u로 최신 파일만 업데이트.
mv로 이동 또는 이름 변경: mv old.txt new.txt, mv *.log /archive/.
rm은 휴지통 없이 삭제합니다:
rm -r dir/.rm -rf /— 절대 실행 금지, 극도로 위험.rm -i로 확인 프롬프트.
생성 및 링크: mkdir, touch, ln
mkdir -p /path/to/dir로 중첩 디렉터리 생성.
touch file.txt로 빈 파일 생성 또는 타임스탬프 업데이트: touch -t 202501011200 file.txt.
ln으로 링크 생성:
ln file.txt hardlink.txt— 하드 링크(인오드 공유).ln -s file.txt symlink.txt— 심볼릭 링크(경로 참조).
하드 링크는 파일 시스템 간에 작동하지 않으며, 심볼릭 링크는 원본 삭제 시 깨집니다.
핵심 요약:
/proc와/sys는 메모리 상에만 존재하며, 디스크가 아닌 커널 런타임 데이터용입니다.find는 다재다능하고,locate는 인덱스 유지 시 빠릅니다.rm -rf는 주의 필요—휴지통 안전망 없음.mkdir -p와cd -는 스크립팅 필수.- 하드 링크 vs 심볼릭 링크: 필요에 따라 선택(공유 데이터 vs 경로 참조).
— Editorial Team
아직 댓글이 없습니다.