CertNote/ 출퇴근 학습 노트
로드맵
KOEN
리눅스마스터 2급 · 2급리눅스마스터 2급
  • Week 1
    • 1.운영체제와 커널: 리눅스가 하는 일
    • 2.리눅스의 탄생: 유닉스에서 리누스까지
    • 3.자유 소프트웨어와 오픈소스: 라이선스가 정하는 것
    • 4.배포판: 커널과 도구를 하나로 묶어 파는 단위
    • 5.Week 1 종합 복습: 리눅스라는 이름의 정체
  • Week 2
  • Week 3
  • Week 4
    • 1.권한의 구조: rwx와 8진수
    • 2.소유권과 umask
    • 3.특수 권한: SetUID · SetGID · Sticky bit
    • 4.디렉터리 계층과 파일 시스템 관리
    • 5.Week 4 종합 복습: 권한 한 장 정리
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
  • Week 11
리눅스마스터 1급 · 1급리눅스마스터 1급
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← 리눅스마스터 2급/Week 4/Day 4

기준: 리눅스마스터 2급 출제 기준·오류 제보

리눅스마스터 2급· AssociateWeek 4 · Day 4읽기 약 9분
핵심 정리
  • 리눅스는 드라이브 문자가 없다. 모든 것이 루트(/) 하나에서 뻗어 나온 하나의 트리다.
  • 디렉터리 이름과 역할은 FHS 라는 표준으로 정해져 있다 — /etc 설정, /var 변하는 것, /bin 명령.
  • /proc은 디스크에 없다. 커널이 메모리에 만들어 주는 가상 파일 시스템이다.
  • mount로 붙이고 umount로 뗀다. 사용 중인 디렉터리는 떼어지지 않는다.
  • df는 파일 시스템 용량, du는 경로별 사용량이다. 짝으로 외운다.

Day 4 - 디렉터리 계층과 파일 시스템 관리

하나의 트리

                    /   (루트)
      ┌────────┬────────┼────────┬────────┬────────┐
    /bin     /etc     /home    /var     /usr     /proc
   실행파일   설정      사용자    변하는것  응용프로그램  커널정보
  • 윈도의 C: D: 같은 드라이브 문자가 없다. 새 디스크도 트리 어딘가에 붙여서 쓴다.
  • 루트 /는 최상위 디렉터리이고, root 사용자의 홈인 /root와는 다른 것이다.

FHS — 어느 디렉터리에 무엇이 있나

디렉터리담는 것
/bin기본 명령어 — ls, cp, cat
/sbin관리자용 명령어 — fdisk, shutdown
/etc설정 파일 — passwd, fstab, hosts
/home일반 사용자의 홈 디렉터리
/rootroot의 홈 디렉터리
/var자주 변하는 데이터 — 로그, 메일, 스풀
/tmp임시 파일. 재부팅 시 지워진다
/usr응용 프로그램과 라이브러리
/lib부팅과 기본 명령에 필요한 공유 라이브러리
/dev장치 파일 — sda, tty, null
/proc커널·프로세스 정보 (가상)
/boot커널 이미지와 부트로더
/opt추가로 설치한 패키지
/mnt, /media마운트 지점 (수동 / 이동식)

짝으로 묻는 값을 붙여서 외운다.

헷갈리는 짝가르는 기준
/bin vs /sbin일반 사용자용 vs 관리자용
/ vs /root최상위 디렉터리 vs root의 홈
/mnt vs /media수동 마운트 vs 이동식 매체 자동
/var vs /tmp로그처럼 남는 것 vs 지워지는 것
/lib vs /usr/lib부팅·기본 명령용 vs 응용 프로그램용 라이브러리
/dev vs /proc장치 파일 vs 커널·프로세스 정보

한 단계 더 내려간 경로도 보기로 나온다.

경로담는 것
/usr/bin, /usr/sbin응용 프로그램의 실행 파일 / 관리자용 실행 파일
/usr/local관리자가 직접 설치한 프로그램 (배포판 패키지와 구분)
/usr/share/man매뉴얼 페이지
/var/log로그 파일 — messages, secure 등
/var/spool처리 대기 중인 작업 — 인쇄, 메일, 예약 작업
/var/tmp재부팅 뒤에도 유지되는 임시 파일
/etc/fstab부팅 때 마운트할 파일 시스템 목록
/lost+foundfsck가 복구한 파일 조각을 모아 두는 곳 (ext 계열)
  • 이름의 유래를 알면 덜 헷갈린다 — /etc는 설정, /var는 variable(변하는 것), /opt는 optional(추가 패키지), /sbin은 system binaries, /dev는 devices다. /usr는 user의 홈이 아니다. 사용자 홈은 /home이다.
  • 최근 배포판은 /bin·/sbin·/lib을 /usr/bin·/usr/sbin·/usr/lib으로 가는 심볼릭 링크로 두는 경우가 많다. 그래도 역할 구분은 그대로 출제된다.
  • /tmp를 언제 비우는지는 배포판 설정에 따라 다르다. "임시 파일용이며 오래 남는다고 기대하면 안 되는 곳"으로 이해한다.

/proc — 디스크에 없는 파일 시스템

cat /proc/cpuinfo      # CPU 정보
cat /proc/meminfo      # 메모리 정보
cat /proc/version      # 커널 버전
ls /proc/1             # PID 1 프로세스의 정보
  • /proc 안의 파일은 디스크에 저장된 것이 아니다. 읽는 순간 커널이 만들어서 보여준다. 크기가 0으로 표시되는 경우가 많다.
  • 비슷한 가상 파일 시스템으로 /sys (장치·커널 설정)가 있다.
  • /dev 도 특수하다. 실제 데이터가 아니라 장치를 가리키는 파일들이 들어 있다.
/proc 안의 파일내용
/proc/cpuinfoCPU 모델·코어 수
/proc/meminfo메모리·swap 사용 현황
/proc/version커널 버전
/proc/partitions인식된 디스크와 파티션
/proc/filesystems커널이 지원하는 파일 시스템 종류
/proc/mounts현재 마운트된 파일 시스템
/proc/swaps사용 중인 swap 영역
/proc/숫자/그 PID 를 가진 프로세스의 정보
  • /proc 아래 숫자로 된 디렉터리는 실행 중인 프로세스다. 프로세스가 끝나면 디렉터리도 사라진다.

붙이고 떼기 — mount와 umount

mount                          # 현재 마운트 상태 전부
mount /dev/sdb1 /data          # sdb1 을 /data 에 붙이기
mount -t ext4 /dev/sdb1 /data  # 파일 시스템 종류를 지정해서
mount -o ro /dev/sdb1 /data    # 읽기 전용으로
umount /data                   # 마운트 지점으로 떼기
umount /dev/sdb1               # 장치 이름으로 떼기
mount -a                       # /etc/fstab 의 항목을 전부 마운트
옵션뜻
-t 종류파일 시스템 종류 지정 (ext4, xfs, iso9660)
-o ro / rw읽기 전용 / 읽기 쓰기
-a/etc/fstab에 적힌 것을 전부

함정 둘. ① unmount가 아니라 umount 다. n이 없다. ② 사용 중인 파일 시스템은 떼어지지 않는다. 그 디렉터리 안에 들어가 있거나 파일을 열어 둔 프로세스가 있으면 device is busy 오류가 난다. 밖으로 나온 뒤 다시 시도하고, 그래도 안 되면 lsof나 fuser로 누가 잡고 있는지 확인한다.

  • 마운트 지점(/data)에 원래 파일이 있었다면 가려진다. 사라지는 것은 아니고, 떼어내면 다시 보인다.
  • 부팅할 때 자동으로 붙이려면 /etc/fstab 에 적는다(W2에서 다뤘다).

마운트의 한 사이클

$ sudo mkdir /data                       ← 마운트 지점은 미리 있어야 한다
$ sudo mount /dev/sdb1 /data
$ mount | grep sdb1
/dev/sdb1 on /data type ext4 (rw,relatime)
$ cd /data
$ sudo umount /data
umount: /data: target is busy.
$ cd ~
$ sudo umount /data
  • 마운트 지점은 이미 있는 디렉터리여야 한다. mount가 디렉터리를 만들어 주지 않는다.
  • mount의 인자 순서는 장치 먼저, 마운트 지점 나중이다 — mount [옵션] 장치 디렉터리.
  • umount는 장치 이름과 마운트 지점 중 어느 쪽을 줘도 된다.
  • 위에서 처음 umount가 실패한 것은 셸이 /data 안에 들어가 있었기 때문이다. 밖으로 나오자 떼어졌다.
장치·매체흔한 마운트 예
추가 디스크의 파티션mount /dev/sdb1 /data
CD/DVDmount -t iso9660 /dev/cdrom /media/cdrom
USB 메모리mount /dev/sdc1 /mnt/usb (장치 이름은 꽂을 때마다 달라질 수 있다)
ISO 이미지 파일mount -o loop image.iso /mnt/iso
-o 옵션뜻
ro / rw읽기 전용 / 읽기·쓰기
remount떼지 않고 옵션만 바꿔 다시 마운트 (mount -o remount,rw /)
loop파일을 장치처럼 마운트 (ISO 이미지)
noexec그 파일 시스템의 실행 파일을 실행 금지
nosuidSetUID·SetGID를 무시
defaults기본 옵션 묶음 (rw 포함)
  • 옵션은 쉼표로 이어 쓴다 — -o ro,noexec. 띄어 쓰지 않는다.

마운트 정보가 적힌 세 곳

파일담는 것누가 쓰나
/etc/fstab부팅 때 마운트할 목록관리자가 직접 편집
/etc/mtab지금 마운트된 목록시스템이 자동 갱신
/proc/mounts지금 마운트된 목록 (커널이 보여 줌)커널
# 장치           마운트지점  종류   옵션       dump  fsck순서
/dev/sdb1        /data      ext4   defaults   0     2
  • /etc/fstab은 공백으로 나뉜 6개 필드다 — 장치, 마운트 지점, 파일 시스템 종류, 옵션, dump 여부, fsck 순서.
  • "예정"은 fstab, "현재"는 mtab 으로 가른다. mount를 인자 없이 치면 보이는 것이 현재 목록이다.
  • fstab에 적혀 있으면 mount /data처럼 한쪽만 써도 나머지를 fstab에서 찾아 붙인다.

용량 보기 — df와 du

명령보는 것단위
df파일 시스템별 전체·사용·남은 용량마운트된 것 기준
du경로별 실제 사용량디렉터리·파일 기준
df -h                   # 사람이 읽기 쉬운 단위로 (G, M)
df -T                   # 파일 시스템 종류까지
df -i                   # inode 사용량
du -h /var/log          # 경로별 용량
du -sh /var/log         # 합계만 (summary)
du -sh * | sort -h      # 현재 위치에서 큰 것부터
  • -h는 human-readable 이다. 두 명령 모두에서 같은 뜻으로 쓴다.
  • du -sh 의 -s는 summary — 하위 항목을 일일이 나열하지 않고 합계만 낸다.
  • "디스크가 꽉 찼다"는 문제는 df -h로 어느 파일 시스템인지 찾고, du -sh로 어느 디렉터리인지 좁혀 들어간다.
$ df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda2      xfs        50G   12G   38G  24% /
/dev/sda1      xfs      1014M  180M  835M  18% /boot
/dev/sdb1      ext4       99G   89G  4.9G  95% /data
tmpfs          tmpfs     1.9G     0  1.9G   0% /dev/shm
열뜻
Filesystem장치 이름
Type파일 시스템 종류 (-T를 줬을 때만)
Size / Used / Avail전체 / 사용 / 남은 용량
Use%사용률
Mounted on마운트 지점
$ du -h /data/logs
1.2G    /data/logs/2026-08
3.4G    /data/logs/2026-09
4.6G    /data/logs
$ du -sh /data/logs
4.6G    /data/logs
  • du는 옵션 없이 쓰면 하위 디렉터리마다 한 줄씩 내고 맨 끝에 합계를 낸다. -s는 그 마지막 한 줄만 남긴다.
  • df /data/logs처럼 디렉터리를 줘도 df는 그 디렉터리가 속한 파일 시스템 전체를 보여 준다. 디렉터리 하나의 크기를 알려 주지 않는다.
옵션dfdu
-h읽기 쉬운 단위읽기 쉬운 단위
-k / -mKB / MB 단위KB / MB 단위
-T파일 시스템 종류 표시—
-iinode 사용량—
-s—합계만
-a모든 파일 시스템디렉터리뿐 아니라 파일도 한 줄씩
-c—맨 끝에 총합 줄 추가

용량은 남는데 파일이 안 만들어지는 경우가 있다. inode가 고갈된 것이다. 작은 파일이 아주 많으면 생긴다. df -i로 확인한다.

점검하기 — fsck

fsck /dev/sdb1          # 검사
fsck -y /dev/sdb1       # 모든 질문에 yes
e2fsck -f /dev/sdb1     # ext 계열, 강제 검사
  • 파일 시스템의 무결성을 검사하고 복구하는 명령이다.
  • ⚠️ 반드시 언마운트한 상태에서 실행한다. 마운트된 채로 검사하면 파일 시스템이 손상될 수 있다.
  • 비정상 종료 후 부팅할 때 자동으로 실행되기도 한다. /etc/fstab의 6번째 필드가 그 검사 순서를 정한다(루트는 1, 나머지는 2, 검사 안 함은 0).
명령관계
fsck파일 시스템 종류에 맞는 검사 프로그램을 대신 불러 주는 명령
e2fsck (fsck.ext4)ext2·ext3·ext4 전용 검사 프로그램
xfs_repairXFS 전용 복구 프로그램 (XFS에는 e2fsck를 쓰지 않는다)
옵션뜻
fsck -y모든 질문에 yes 로 답하며 복구
fsck -n고치지 않고 검사만 (모든 질문에 no)
fsck -A/etc/fstab에 적힌 것을 전부 검사
fsck -t 종류파일 시스템 종류 지정
e2fsck -f문제가 없어 보여도 강제로 검사
e2fsck -p묻지 않고 안전한 범위에서 자동 복구
  • 올바른 순서는 umount → fsck → mount 다. 루트(/)처럼 뗄 수 없는 파일 시스템은 부팅 과정이나 복구 모드에서 검사한다.
  • fsck의 인자는 마운트 지점이 아니라 장치 이름(/dev/sdb1)으로 준다.
  • 복구 과정에서 어디에도 속하지 못한 파일 조각은 그 파일 시스템의 lost+found 디렉터리에 모인다.

함께 쓰는 조회 명령

명령하는 일
lsblk블록 장치를 트리 형태로
blkid장치의 UUID와 파일 시스템 종류
mount현재 마운트 목록
free -h메모리와 swap 사용량

내일은 이번 주의 권한과 파일 시스템을 한 장으로 묶어 정리한다.

📖 용어

  • FHS : 파일 시스템 계층 표준. 리눅스에서 디렉터리의 이름과 역할을 정한 규약.
  • 루트 디렉터리(/) : 파일 시스템 전체의 최상위. root의 홈인 /root와는 다르다.
  • 마운트(mount) : 파일 시스템을 디렉터리 트리의 특정 지점에 연결하는 것.
  • 마운트 포인트 : 파일 시스템이 붙는 디렉터리. 원래 있던 내용은 가려진다.
  • 가상 파일 시스템 : /proc·/sys처럼 디스크가 아니라 커널이 만들어 보여 주는 파일 시스템.
  • df : 파일 시스템 단위의 용량을 보는 명령.
  • du : 경로 단위의 사용량을 보는 명령. -sh로 합계를 낸다.
  • fsck : 파일 시스템의 무결성을 검사·복구하는 명령. 언마운트 상태에서 실행한다.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

다음 중 시스템의 설정 파일들이 주로 저장되는 디렉터리로 알맞은 것은?

문제 2

다음 중 커널과 프로세스 정보를 담고 있으며 디스크가 아닌 메모리에 존재하는 가상 파일 시스템으로 알맞은 것은?

문제 3

다음 중 마운트된 파일 시스템을 분리하는 명령으로 알맞은 것은?

문제 4

다음 중 파일 시스템별 전체 용량과 남은 공간을 확인하는 명령으로 알맞은 것은?

문제 5

다음 중 fsck 명령을 실행할 때 지켜야 할 사항으로 알맞은 것은?

이전특수 권한: SetUID · SetGID · Sticky bitWeek 4 · Day 3다음 Week 4 종합 복습: 권한 한 장 정리Week 4 · Day 5

참고 공식 자료

  • 리눅스마스터 2급 공식 출제 기준(새 탭에서 열림)

이 페이지

  • 하나의 트리
  • FHS — 어느 디렉터리에 무엇이 있나
  • proc — 디스크에 없는 파일 시스템
  • 붙이고 떼기 — mount와 umount
  • 마운트의 한 사이클
  • 마운트 정보가 적힌 세 곳
  • 용량 보기 — df와 du
  • 점검하기 — fsck
  • 함께 쓰는 조회 명령
  • 용어
  • 연습 문제