본문 바로가기
Linux

리눅스(Linux) 디렉토리 구조 이해하기 /bin? /dev? /etc?

by 클수저 2025. 3. 20.
728x90
반응형

클라우드 쪽 업무를 계속하면 필수적으로 리눅스 위에서 작업을 하는 경우가 많다.

리눅스의 운영체제 이해도가 부족하면 어려운 경우가 종종 있다.

특히나 디텍토리를 모르면 더더욱 어렵다. /var, /bin........

그래서 가장 많이 들어보고 사용해봤던 디렉토리 위주로 정리해서 개념을 이해해보고자 한다.

 

리눅스의 기본구조

리눅스 파일 시스템은 루트 디렉터리를 시작으로 트리 구조(directory tree)로 구성
항상 시스템 전체에 단 하나의 트리만 가진다.
리눅스에서는 디스크가 여러개 있다면 루트디렉토리 어딘가에 연결되어(마운트) 루트는 1개를 가진다.

 

1. /bin (필수 실행 파일이 있는 곳)

  • 비유: 주방에 있는 필수 조리 도구
  • 설명: bin"binary"의 줄임말이고, 여기에는 리눅스가 동작하는 데 꼭 필요한 프로그램(명령어)존재.
    • ls (파일 목록 보기)
    • cp (파일 복사)
    • mv (파일 이동)
    • rm (파일 삭제)
    • cat (파일 내용 보기)

즉, 리눅스가 부팅될 때부터 기본적으로 필요한 명령어들이 들어 있는 곳이야.

  • 초록색이 모두 실행파일이다.  
  • 사진에 있는 명령어 ls도 /bin 안에 들어있다.


2. /dev (장치 파일이 있는 곳)

  • 비유: 집안의 전기 콘센트나 수도 배관
  • 설명: dev는 "device"의 줄임말이고, 컴퓨터 안에 있는 하드웨어(장치)들을 파일처럼 관리하는 곳이야.
    • 예를 들어, dev/sda1은 하드디스크를 나타내고, dev/tty는 키보드와 모니터 같은 입출력 장치
    • 마치 콘센트에 전기 플러그를 꽂으면 전기가 들어오듯, 프로그램들이 이 파일을 통해 하드웨어와 연결


3. /opt (추가 소프트웨어가 설치되는 곳)

  • 비유: 집에 새로 들여온 가구나 전자제품
  • 설명: opt는 "optional"의 줄임말이고, 기본적으로 리눅스가 제공하는 소프트웨어가 아니라 추가로 설치한 프로그램이 저장
    • 예를 들어, 직접 다운로드한 프로그램이 여기 설치
    • 예전에는 많이 쓰였지만, 요즘은 usr/local을 더 많이 사용

4. /var (변하는 데이터를 저장하는 곳)

  • 비유: 냉장고나 우편함 (자주 바뀌는 데이터가 저장됨)
  • 설명: var는 "variable"*의 줄임말이고, 리눅스를 실행하면서 자주 바뀌는 데이터가 저장
    • 로그 파일 (var/log) → 컴퓨터가 작동하면서 기록하는 로그
    • 이메일 저장소 (var/mail) → 받은 이메일이 저장됨
    • 웹 서버 데이터 (var/www) → 웹사이트 파일이 저장됨


5. /etc (설정 파일이 있는 곳)

  • 비유: 집안의 스위치나 리모컨 (설정 변경하는 곳)
  • 설명: etc는 시스템의 설정 파일(configuration files)이 모여 있는 곳
    • 예를 들어, 네트워크 설정, 사용자 계정 정보, 서버 설정 파일 등 존재
    • etc/passwd → 사용자 계정 정보가 저장됨
    • etc/hostname → 컴퓨터의 이름을 저장하는 파일

이곳에서 설정을 바꾸면 리눅스의 동작 방식을 변경됨.

 

/etc에서 작업을 하다보면 흔하게 보는게 .conf.d이다. 사실 뭐 들어가서 수정하고 했지만 무엇을 담당하는지 잘 몰랐다.... 

.conf 파일과 .d 디렉토리의 의미

리눅스에서 /etc 디렉토리는 설정 파일들이 모여 있는 곳인데, 여기에서 .conf 파일.d 디렉토리는 리눅스에서 설정을 관리하는 중요한 방식


1. .conf 파일이란?

  • 비유: "메뉴판" 또는 "설정표"
  • 설명: .conf는 "configuration (설정)"의 줄임말로, 프로그램이 어떻게 동작해야 하는지를 정의
  • 예제:
    • /etc/ssh/sshd_config → SSH 서버 설정
    • /etc/nginx/nginx.conf → 웹서버 Nginx 설정
    • /etc/fstab → 부팅 시 자동으로 마운트할 디스크 설정 (보통 .conf는 안 붙지만 설정 파일)

특징

  • 대부분 텍스트 파일로 되어 있어서 cat, nano, vim 같은 명령어로 열어서 내용을 확인하고 수정
  • 특정 프로그램의 동작을 바꾸고 싶다면 .conf 파일을 수정

2. .d 디렉토리는?

  • 비유: "폴더 정리함"
  • 설명: .d로 끝나는 디렉토리는 여러 개의 작은 설정 파일들을 모아두는 용도
  • 왜 필요할까?
    • 한 개의 .conf 파일이 너무 길고 복잡해지면, 설정을 여러 개의 작은 파일로 나누어 관리하기 용이
    • 예를 들어, 어떤 프로그램이 /etc/program.conf 파일 하나만 읽는다면, 설정을 변경할 때마다 이 파일을 수정.
      하지만 /etc/program.d/ 폴더 안에 여러 개의 작은 파일을 두면 개별적으로 설정을 추가하거나 변경

예제

  • /etc/sudoers.d/ → 사용자별로 sudo 권한을 관리하는 파일 모음
  • /etc/nginx/conf.d/ → 여러 개의 Nginx 서버 설정 파일을 따로 관리
  • /etc/apt/sources.list.d/ → 패키지 저장소 목록을 여러 개의 파일로 나눠서 관리

어떻게 동작할까?

  • 보통 .d 폴더가 있으면, 프로그램은 그 안에 있는 모든 파일을 읽어서 설정을 적용해.
  • 예를 들어, /etc/nginx/nginx.conf 안에 이런 코드가 있다고 가정 
include /etc/nginx/conf.d/*.conf;
  • 이러면 /etc/nginx/conf.d/ 폴더 안의 모든 .conf 파일이 자동으로 적용

3. .conf vs .d 정리


이름 역할 예제
.conf 파일 하나의 설정 파일 /etc/nginx/nginx.conf
.d 디렉토리 여러 개의 설정을 모아둠 /etc/nginx/conf.d/

쉽게 말하면,

  • .conf 파일은 하나의 설정서
  • .d 디렉토리는 여러 개의 설정 파일 모음집

6. /sys (시스템 정보를 저장하는 곳)

  • 비유: 자동차의 계기판 (현재 상태를 확인하는 곳)
  • 설명: sys는 리눅스 커널(운영체제의 핵심)이 시스템 정보를 저장하는 곳
    • sys/class/net/ → 네트워크 장치 정보
    • sys/devices/ → 하드웨어 장치 정보
    • 프로그램들이 여기 있는 정보를 읽어서 시스템의 상태를 확인

 


집으로 비유한 디텍토리 정리

디렉토리 역할 비유
/bin 필수 프로그램 주방 조리 도구
/dev 장치 파일 (하드웨어) 전기 콘센트, 수도 배관
/opt 추가 소프트웨어 새로 들여온 가구, 전자제품
/var 변하는 데이터 저장소 냉장고, 우편함
/etc 설정 파일 저장소 스위치, 리모컨
/sys 시스템 정보 자동차 계기판

 

728x90
반응형