Unix / Linux - 파일 시스템 기초

안녕하세요, Unix/Linux 열의자 여러분! 매력적인 파일 시스템의 세계를 함께 탐험해 나가는 여정에 환영합니다. 여러분의 가이드로서 여러 해 동안의 교육 경험을 바탕으로, 프로그래밍에 전혀 익숙하지 않으신 분들도 이 개념을 이해할 수 있도록 도와드리겠습니다. 시작해 보겠습니다!

Unix / Linux - File System Basics

디렉토리 구조

Unix/Linux 파일 시스템은 나무처럼 구조화되어 있으며, 루트 디렉토리 (/)가 상단에 있습니다. 이 구조는 파일을 효율적으로 정리하고 접근하는 데 필수적입니다.

이하는 일반적인 Unix/Linux 디렉토리 구조의 단순화된 시각입니다:

/
├── bin
├── etc
├── home
│   └── user
├── usr
└── var

이 디렉토리들은 각기 특정 목적을 가지고 있습니다:

  • /bin: 필수 시스템 바이너리( 실행 가능한 프로그램)를 포함
  • /etc: 시스템 설정 파일을 저장
  • /home: 사용자 홈 디렉토리를 보관
  • /usr: 사용자 프로그램과 데이터를 저장
  • /var: 로그와 일시 파일과 같은 변동 데이터를 포함

주요 디렉토리와 그 기능

디렉토리 기능
/bin 필수 시스템 바이너리
/etc 시스템 설정 파일
/home 사용자 홈 디렉토리
/usr 사용자 프로그램과 데이터
/var 변동 데이터 (로그, 일시 파일)

파일 시스템 탐색

이제 구조를 이해했으므로, 어떻게 이동하는지 배우겠습니다. 새로운 도시를 탐험하는 것처럼 생각해 보세요 - 지도를 읽고 길을 찾는 방법을 알아야 합니다!

기본 탐색 명령어

  1. pwd (Print Working Directory)

    $ pwd
    /home/user

    이 명령어는 여러분이 파일 시스템에서 어디에 있는지 알려줍니다. 지도에서 현재 위치를 확인하는 것과 같습니다.

  2. ls (List)

    $ ls
    Documents  Downloads  Pictures  Music

    이 명령어는 현재 디렉토리에 무엇이 있는지 보여줍니다. 주변을 둘러보는 것과 같습니다.

  3. cd (Change Directory)

    $ cd Documents
    $ pwd
    /home/user/Documents

    이 명령어는 다른 디렉토리로 이동할 수 있게 해줍니다. 도시의 새로운 위치로 걸어가는 것과 같은 비유입니다.

기억하시자, 연습이 완성입니다! 이 명령어를 시도해 보고 파일 시스템에서 자유롭게 이동하는 데 익숙해지세요.

df 명령어

df 명령어, "disk free"의 약자로, 디스크 공간 사용량을 확인하는 데 사용하는 도구입니다. 옷장에 얼마나 많은 공간이 남았는지 확인하는 것과 같습니다!

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G   15G  4.0G  79% /
/dev/sdb1       100G   50G   50G  50% /home

-h 옵션은 출력을 사람이 이해할 수 있게 만듭니다. 각 열의 의미는 다음과 같습니다:

  • Filesystem: 디스크 파티션
  • Size: 파티션의 총 크기
  • Used: 사용된 공간
  • Avail: 사용 가능한 공간
  • Use%: 사용된 공간 비율
  • Mounted on: 파일 시스템에 마운트된 위치

du 명령어

df는 개요를 제공하지만, du (disk usage)는 더 깊이 탐구하는 데 도움이 됩니다. 옷장에서 어떤 옷이 가장 많은 공간을 차지하는지 조사하는 것과 같습니다.

$ du -sh *
4.0K    Documents
2.0G    Downloads
500M    Pictures
1.5G    Music

-s 옵션은 각 인수에 대한 요약을 제공하며, -h는 사람이 이해할 수 있게 만듭니다.

파일 시스템 마운트

마운트는 USB 드라이브를 컴퓨터에 연결하는 것과 같습니다. 파일 시스템을 접근하고 사용할 수 있게 합니다.

파일 시스템을 마운트하려면:

$ sudo mount /dev/sdb1 /mnt/mydrive

이 명령어는 /dev/sdb1 장치를 /mnt/mydrive 디렉토리에 마운트합니다.

파일 시스템 언마운트

언마운트는 마운트의 반대입니다. USB 드라이브를 안전하게 분리하는 것과 같습니다.

파일 시스템을 언마운트하려면:

$ sudo umount /mnt/mydrive

드라이브를 물리적으로 제거하기 전에 항상 언마운트하면 데이터 손실을 방지할 수 있습니다!

사용자 및 그룹 퀵트

퀵트는 디스크 공간 사용량을 설정하는 것과 같습니다. 사용자가 너무 많은 공간을 사용하여 다른 사용자에게 영향을 미치는 것을 방지하는 데 도움이 됩니다.

퀵트를 설정하려면:

$ sudo edquota -u username

이 명령어는 사용자한테 퀵트 제한을 설정할 수 있는 편집기를 엽니다.

퀵트를 확인하려면:

$ quota -v

이 명령어는 현재 사용자의 퀵트 사용량을 보여줍니다.

퀵트 명령어

명령어 기능
edquota 사용자 퀵트 편집
quota 디스크 사용량과 제한 보기
repquota 파일 시스템에 대한 퀵트 보고

이제 Unix/Linux 파일 시스템의 기본을 다룬 것입니다. 실천이 최고의 학습법입니다! 터미널을 열고 탐험을 시작해 보세요. 실수는 두려워 말아세요 - 그게 우리가 배우는 방법입니다!

마무리하며, 한 학생이 파일 시스템을 배우는 것은 자전거 타는 것과 같다고 했습니다 -처음에는 어려워 보일 수 있지만, 한 번 익숙해지면 그 없이는 어떻게 살 수 없을 것 같아집니다.

계속 연습하고, 호기심을 가지고, 행복한 컴퓨팅을 기원합니다!

Credits: Image by storyset