티스토리 뷰

반응형

https://www.youtube.com/watch?v=L133ug7Xxmc

개발자로 일하다 보면 좋든 싫든 리눅스 서버에 접속할 일이 정말 많다. cd, ls, cat 같은 익숙한 명령어를 치며 폴더를 넘나들지만, 문득 궁금해질 때가 있다. ls -al /를 쳤을 때 나오는 수많은 폴더들... 대체 얘네들은 다 뭐 하는 애들일까?

솔직히 고백하자면, 나도 home, etc, var 정도를 제외하면 나머지는 대충 감으로만 알고 있었다. 그러다 얼마 전 유튜브를 보다가 우연히 아래 영상을 발견했다. 단 1분 남짓한 시간에 리눅스의 핵심 폴더 구조를 깔끔하게 설명해 주는데, '아, 이건 한번 정리해둬야겠다'는 생각이 번쩍 들었다.

그래서 오늘은 이 영상을 바탕으로, 리눅스의 주요 폴더들이 각각 어떤 역할을 하는지 내 식대로 정리해 보려고 한다.

리눅스 파일 시스템 핵심 폴더 요약

마치 우리 몸에 장기들이 각자 역할을 하듯, 리눅스의 폴더들도 저마다의 역할이 정해져 있다.

  • / (루트)
    모든 것의 시작. 윈도우의 C:\ 드라이브와 비슷하지만, 리눅스에서는 모든 것이 이 루트 폴더 아래에 나무처럼 뻗어 나간다.
  • /bin & /sbin
    • /bin: ls, cp, cat처럼 시스템을 사용하는 데 필요한 기본적인 명령어(프로그램)들이 들어있다. 일반 사용자들도 쓸 수 있는 필수 명령어들의 모음.
    • /sbin: reboot, fdisk처럼 시스템 관리자(root)용 명령어들이 들어있다. 시스템을 제어하는 중요한 명령어들이라 보통 루트 권한으로 실행한다.
  • /boot
    이름 그대로 부팅에 필요한 파일들이 담겨있다. 리눅스 커널 이미지, 부트로더 설정 파일 등이 여기에 있다. 여기가 망가지면? 시스템이 부팅조차 되지 않는 대참사가 일어난다.
  • /dev
    리눅스의 철학 "모든 것은 파일이다"를 제대로 보여주는 폴더. CPU, 메모리, 하드 드라이브, 키보드 등 모든 하드웨어 장치들이 파일 형태로 존재한다. /dev/null은 뭐든지 집어삼키는 블랙홀 파일로, 출력을 버리고 싶을 때 종종 사용하곤 한다.
  • /etc
    개발자라면 /var 만큼이나 자주 들락거리는 곳. 시스템 전체에 적용되는 각종 설정 파일들이 모여있다. Nginx 설정(nginx.conf), 호스트 정보(hosts), 사용자 계정 정보(passwd) 등이 모두 여기에 있다.
  • /home
    일반 사용자들의 개인 공간. home/worni 처럼 사용자 계정별로 폴더가 생성된다. 내가 만든 문서, 다운로드한 파일, 그리고 중요한 .bashrc.vimrc 같은 개인 설정 파일들이 여기에 저장된다. 나의 소중한 공간!
  • /lib
    /bin/sbin에 있는 프로그램들이 실행될 때 필요한 공유 라이브러리(shared libraries) 파일들이 저장된다. 윈도우의 DLL 파일과 비슷한 역할.
  • /media & /mnt
    둘 다 외부 장치를 연결(마운트)하는 데 쓰이지만, 약간의 관습적인 차이가 있다.
    • /media: USB 드라이브, CD-ROM처럼 자동으로 마운트되는 장치들을 위한 폴더.
    • /mnt: 시스템 관리자가 수동으로 파일 시스템을 잠시 마운트할 때 사용하는 임시 폴더.
  • /opt
    Optional. OS 기본 패키지가 아닌, 서드파티 소프트웨어를 설치할 때 사용되는 경로다. 예를 들어 크롬 브라우저나 슬랙 같은 프로그램을 설치하면 여기에 저장될 수 있다.
  • /proc & /sys
    둘 다 가상 파일 시스템으로, 현재 실행 중인 시스템의 정보를 보여준다.
    • /proc: 프로세스와 시스템 정보를 담고 있다. cat /proc/cpuinfo로 CPU 정보를 보거나 cat /proc/meminfo로 메모리 상태를 확인하는 등, 현재 시스템의 상태를 들여다볼 수 있다.
    • /sys: /proc보다 좀 더 현대적이고 구조화된 방식으로 하드웨어와 커널 정보를 보여준다.
  • /root
    /home이 일반 사용자들의 홈 디렉터리라면, /root는 말 그대로 시스템의 왕, root 사용자의 전용 홈 디렉터리다.
  • /tmp
    이름 그대로 임시(Temporary) 파일을 위한 공간. 프로그램들이 잠시 사용하고 버릴 파일들을 여기에 저장한다. 보통 시스템이 재부팅될 때 내용이 전부 삭제되므로, 중요한 파일을 여기에 뒀다간 큰일 난다. (경험담이다...)
  • /usr
    "User System Resources"의 약자. 사용자가 설치한 대부분의 프로그램과 라이브러리가 여기에 위치한다. /bin이 시스템 부팅에 필요한 최소한의 명령어를 담고 있다면, /usr/bin은 우리가 aptyum으로 설치한 대부분의 애플리케이션 명령어를 담고 있다.
  • /var
    Variable. 시스템이 운영되면서 내용이 계속 변하는 데이터를 저장한다.
    • /var/log: 시스템 로그 파일이 저장되는 곳. 서버에 문제가 생겼을 때 개발자들이 가장 먼저 tail -f를 외치며 달려가는 바로 그곳이다.
    • /var/cache: 애플리케이션들이 사용하는 캐시 데이터.

정리하며

짧은 영상이었지만, 덕분에 막연하게만 알고 있던 리눅스의 폴더 구조를 머릿속에 명확하게 정리할 수 있었다. 각 폴더의 역할을 알고 나니, 왜 프로그램들이 특정 경로에 설치되고, 왜 로그 파일은 /var/log에 있는지 자연스럽게 이해가 됐다. 이제 리눅스 서버를 좀 더 자신 있게 돌아다닐 수 있을 것 같다.

#Linux #리눅스 #서버 #개발자 #DevOps #파일시스템 #초보


참고 영상:

  • Linux Directories Explained in 1 Minute (YouTube): https://www.youtube.com/watch?v=L133ug7Xxmc
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함