1) 학습 요약표
학습 내용 | 설명 |
파일/명령어 위치 검색 | find, locate, which, whereis 등으로 파일 존재 확인 및 위치 검색 |
파일 조건 검색 | find -name, -type, -mtime, -size, -perm, -user 등으로 조건 필터링 |
압축 및 백업 | tar, gzip, zip, unzip 명령으로 파일 백업 및 압축 해제 |
디스크/마운트 상태 확인 | df, du, lsblk 등으로 디스크 공간 및 마운트 정보 확인 |
파일 비교 | diff, cmp로 파일 간 차이 비교 |
2) 이론 설명
(1) 파일 검색 명령어
1. find: 디렉토리 트리에서 조건에 맞는 파일 검색
- 기능 설명: find는 특정 디렉토리부터 하위 경로를 따라가며 조건에 맞는 파일을 찾아줍니다. 예를 들어 이름에 .log가 포함되거나, 소유자가 특정 사용자일 때 등 원하는 조건으로 세밀하게 필터링할 수 있습니다.
- 주요 옵션:
- -name: 이름 기준 검색 (와일드카드 * 사용 가능)
- -type: 파일 타입(f: 일반 파일, d: 디렉토리)
- -mtime: 마지막 수정일 기준 (-3은 최근 3일 이내, +5는 5일 이전)
- -size: 크기 기준 (예: +10M은 10MB보다 큰 파일)
- -perm: 권한 조건 (예: -perm 755, -perm -4000은 SUID 비트 설정된 파일)
- -user: 소유자 기준 검색
- -exec: 검색된 결과에 대해 명령 실행 (예: stat, rm 등)
# 최근 3일 이내에 수정된 로그 파일 검색
find /var/log -name "*.log" -mtime -3
# 소유자가 devuser인 파일 검색
find /home -user devuser
# 퍼미션이 755인 실행 스크립트에 대해 파일 정보 출력
find /scripts -type f -perm 755 -exec stat {} \;
2. locate: 인덱스 기반 빠른 검색
- 기능 설명: locate는 미리 생성된 파일 경로 데이터베이스를 이용해 빠르게 파일 이름으로 검색합니다. 단, 실시간 변경은 반영되지 않으므로 updatedb 명령으로 최신화해야 합니다.
sudo updatedb
locate nginx.conf
3. which, whereis: 명령어 위치 확인
- 기능 설명:
- which: 명령어가 현재 어떤 경로의 실행파일인지 확인 (실제 실행되는 명령 경로)
- whereis: 명령어의 실행파일, 관련 문서, 매뉴얼 위치까지 모두 표시
which python3
whereis ls
(2) 압축 및 백업 명령어
1. tar: 디렉토리 전체 백업
- 기능 설명: 여러 개의 파일이나 폴더를 하나의 묶음(아카이브)으로 만들어 백업하거나 전달할 때 사용합니다.
- 디렉토리를 통째로 백업할 땐 tar -cvzf 조합이 기본입니다.
- 주요 옵션:
- -c: 새로 생성(create)
- -v: 진행 상황 출력(verbose)
- -z: gzip 압축 사용
- -f: 결과 파일 이름 지정
- -x: 압축 해제(extract)
- -C: 압축 해제 시 경로 지정
- --exclude: 제외할 경로 지정
# logs 디렉토리를 logs.tar.gz로 압축
sudo tar -cvzf logs.tar.gz /var/logs
# 특정 서브디렉토리 제외하고 압축
sudo tar --exclude='/var/logs/httpd' -cvzf logs.tar.gz /var/logs
# 압축 해제
sudo tar -xvzf logs.tar.gz -C /backup
2. gzip, gunzip: 단일 파일 압축/해제
- 기능 설명: .log처럼 단일 파일을 간단히 .gz로 압축하거나 복원할 때 사용. 압축 전 원본 파일은 삭제되므로 필요시 백업 권장
gzip access.log # access.log.gz 생성
gunzip access.log.gz # 원래 파일로 복원
3. zip, unzip: Windows 호환 압축
- 기능 설명: .zip 형식은 Windows에서도 바로 풀 수 있어 이식성이 좋습니다.
zip backup.zip file1 file2 dir/*
unzip backup.zip -d /restore_path
(3) 디스크 및 자원 확인
1. df: 디스크 용량 확인
- 기능 설명: 각 마운트 지점별 디스크 사용량을 확인합니다.
- -h: 사람이 읽기 쉬운 형식 (예: GB, MB)
- -i: inode 사용량 확인 (파일 개수와 관련)
df -h
2. du: 디렉토리별 사용량 확인
- 기능 설명: 특정 디렉토리가 얼마나 많은 용량을 쓰고 있는지 확인할 때 유용
- -sh: 요약 출력, --max-depth=n: n단계까지만 출력, -c: 총합 표시
du -sh /var/log
sudo du -h --max-depth=1 /var | sort -hr
lsblk: 블록 장치 확인
- 기능 설명: 연결된 디스크, 파티션 구조를 트리 형태로 보여줌
lsblk
(4) 파일 비교 명령어
1. diff: 텍스트 파일 차이 비교
- 기능 설명: 두 텍스트 파일의 줄 단위 변경사항을 비교 (버전 비교 등)
- 초보자 팁: 설정파일 변경 여부 확인에 유용
diff config_v1.txt config_v2.txt
cmp: 이진 파일 비교
- 기능 설명: 두 파일이 이진적으로 동일한지 바이트 단위로 비교
- 초보자 팁: 텍스트가 아닌 바이너리 파일 비교 시 사용
3) 기본 실습 과제 (5개)
과제 1: 사용자 로그 백업
문제 설명: /var/log 디렉토리 내 최근 3일간 수정된 .log 파일을 /backup/logs/로 복사 후 tar로 백업합니다.
과제 2: 특정 소유자의 파일만 백업
문제 설명: 사용자 dev1이 소유한 /home/dev1 하위 파일만 백업합니다.
$(명령어) : () 안에 있는 명령어를 실행한 결과(output) 를 치환해서 그 자리에 삽입하라는 뜻
과제 3: 디스크 사용량 확인
문제 설명: /var 하위 디렉토리별 디스크 사용량을 확인하고 가장 큰 경로를 찾습니다.
과제 4: SUID 파일 검색
문제 설명: 시스템 전체에서 SUID가 설정된 파일을 찾아 /tmp/suid_list.txt에 저장합니다.
과제 5: 명령어 위치 확인
문제 설명: 시스템에서 curl, nc, traceroute 명령어의 실행 위치와 매뉴얼 파일을 확인합니다.
'리눅스 > 기초 학습' 카테고리의 다른 글
Day 6: 프로세스 및 서비스 관리 (2) | 2025.08.02 |
---|---|
Day 4: 권한 및 소유권 (파일/디렉토리 퍼미션 관리) (2) | 2025.07.30 |
Day 3: 사용자 및 그룹 관리 (2) | 2025.07.24 |
Day 2: 텍스트 출력 & 필터링 (2) | 2025.07.21 |
Day 1.5: 리눅스에서 자주 쓰지만 초보자가 놓치기 쉬운 개념들 (3) | 2025.07.20 |