📂 파일 시스템이란?

파일 시스템은 데이터를 하드디스크나 SSD와 같은 저장장치에 어디에, 어떻게 저장할지를 정의하는 규칙과 구조입니다.

만약 책장이 아무 기준 없이 책을 꽂는 공간이라면, 원하는 책을 찾기 어렵겠죠? 파일 시스템은 바로 그 ‘책꽂이 규칙’입니다.


📌 파일 저장 과정 시각화

sequenceDiagram
  participant User
  participant FileSystem
  participant SSD

  User->>FileSystem: love-letter.txt 저장 요청
  FileSystem->>SSD: 빈 공간 검색
  SSD-->>FileSystem: 사용 가능한 메모리 주소 제공
  FileSystem->>SSD: love-letter.txt 조각 저장 (0x1100, 0x2100, 0x5100)
  FileSystem->>FileSystem: 메타데이터 기록 (/home/guru/love-letter.txt)
  SSD-->>User: 저장 완료


🗂 주요 디렉토리 구조

디렉토리 설명
/ 최상위 루트 디렉토리
/home 사용자별 홈 디렉토리
/etc 시스템 설정 파일
/var 로그, 캐시 등 가변 데이터
/bin 기본 실행 명령어
/sbin 관리자용 시스템 명령어
/usr 사용자 애플리케이션, 라이브러리
/lib 필수 시스템 라이브러리
/tmp 임시 파일 저장소 (재부팅 시 삭제됨)
/dev 하드웨어 장치 파일
/opt 선택 설치 소프트웨어 디렉토리
/root 관리자(root) 홈 디렉토리

🖥️ 리눅스 명령어란?

명령어는 사용자가 컴퓨터에게 일을 시키는 약속된 언어입니다.

flowchart TD
  A[사용자] --> B[터미널]
  B --> C[명령어 입력]
  C --> D[bash 쉘이 해석]
  D --> E{내장 명령어?}
  E -- 예 --> F[즉시 실행]
  E -- 아니오 --> G["/bin 등에서 실행 파일 찾기"]
  G --> H[실행]


📦 명령어 구조

명령어 [옵션] [인자]
구성 요소 설명 예시
명령어 수행할 작업 ls
옵션 동작 방식을 제어 -l, --help
인자 명령어의 대상 /home/guru

🧰 자주 사용하는 명령어 정리

명령어 설명 자주 쓰는 옵션 / 예시
ls 현재 디렉토리 파일 목록 확인 ls -l, ls -a
mkdir 새 디렉토리 생성 mkdir myfolder
cd 디렉토리 이동 cd /home/guru
mv 파일 이동 또는 이름 변경 mv a.txt b.txt, mv a.txt /tmp
cp 파일 복사 cp a.txt b.txt
rm 파일 삭제 rm file.txt, rm -r folder
cat 파일 전체 내용 출력 cat readme.txt
more 페이지 단위 출력 (위→아래) more bigfile.txt
less 페이지 단위 출력 (위⇄아래 가능) less bigfile.txt
nano 단순 텍스트 편집기 nano memo.txt
vim 고급 텍스트 편집기 vim code.java
uname 시스템 정보 표시 uname -a
df 디스크 사용량 확인 df -h
du 디렉토리 용량 확인 du -sh folder
top 실시간 프로세스 확인 top