![[Linux] Linux Shell과 Linux 파일 시스템](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGUal8%2FbtsMTZ7nwmQ%2FXBIXPBEhSJxbXKWFnaBWmk%2Fimg.png)
[Linux] Linux Shell과 Linux 파일 시스템OS/Linux2025. 3. 23. 02:49
Table of Contents
Linux Shell에 대한 개념적 이해와 Linux의 파일 시스템에 대해 정리한 글입니다.
Linux Shell
Shell이란?

Shell(쉘)은 운영체제의 커널(kernel)과 사용자 간의 명령어 전달을 담당하는 인터페이스를 의미한다.
- 사용자 : Shell을 통해 운영체제에 명령을 내리고 결과를 받을 수 있음
- 커널 : Shell로부터 받은 사용자의 명령을 수행하고, 그 결과를 Shell을 통해 사용자에게 전달
Shell의 주요 역할
- 사용자의 명령어를 해석하고 실행
- 프로세스를 관리하고 입출력을 제어
- 스크립트를 통해 작업 자동화를 지원
Shell의 종류
넓은 의미에서 Shell은 CLI Shell (Command-Line Interface Shell)과 GUI Shell (Graphic User Interface Shell)로 구분할 수 있다.
Command-Line Interface Shell (CLI Shell) | Graphic User Interface Shell (GUI Shell) |
✅ 텍스트 기반으로 명령어 입력 ✅ 키보드를 통한 텍스트 입력 ✅ 반복적 작업과 자동화에 효율적 ✅ 빠르고 신속하게 명령 실행 가능 |
✅ 그래픽 기반 환경 ✅ 마우스 클릭, 터치, 키보드 입력 등을 통핸 시각적 조작 ✅ 직관적으고 사용이 쉬움 ✅ 사용자 친화적이지만 상대적으로 느릴 수 있음 |
일반적으로 Shell은 리눅스 시스템에서 사용하는 CLI 기반의 Shell을 의미한다. 리눅스의 GUI Shell은 보통 데스크탑 환경(Desktop Environment)으로 불린다.
리눅스 CLI Shell의 종류
- sh (Bourne Shell) : 최초로 개발된 Unix Shell로서 표준화된 기본적인 기능만 제공
- bash (Bourne Again Shell) : 가장 널리 사용되는 기본 Shell이며, 다양한 기능과 확장성을 제공해 사용자 친화적
- zsh (Z Shell) : bash를 개선하여 더욱 편리한 자동 완성과 강력한 스크립팅 기능을 제공
- csh, tcsh (C Shell) : C언어와 비슷한 문법을 가진 Shell로서, 프로그램 개발자들이 선호
현재 대부분의 리눅스 배포판은 기본적으로 bash를 사용한다.
Shell의 주요 기능
명령어 해석과 실행
- 사용자가 입력한 명령어를 해석하여 실행 가능한 형태로 바꾸고, 커널에 전달
- 입력된 명령은 내장 명령(built-in) 또는 외부 프로그램으로 구분
환경 변수 관리
- 환경 변수(Environment Variables)를 설정하거나 변경하여 시스템 환경을 제어
입출력(I/O) 리다이렉션
- 명령어의 표준 입출력 흐름을 변경할 수 있음
파이프라인(Pipeline) 처리
- 여러 명령어의 결과를 연결하여 효율적으로 처리할 수 있도록 지원
작업 자동화: Shell Script
- 반복적이고 복잡한 작업을 자동화하여 관리할 수 있음
Linux Shell과 Linux File System
- 리눅스는 모든 것이 파일 형태로 관리되는 철학(Everything is a file)을 가지고 있음
- Shell은 파일 시스템을 탐색(navigation), 조작(manipulation), 관리(management)할 수 있는 명령어를 제공
Linux File System
파일 시스템(File System)이란, 운영체제가 저장 장치에 데이터를 저장, 관리하고 접근할 수 있도록 해주는 체계 및 구조를 의미한다.
리눅스 파일 시스템의 특징
- 계층적 구조(Hierachical Structure)를 가진 트리 형태의 구조
- 모든 요소가 파일로 취급 ("Everything is a File")
- 파일, 디렉토리, 장치, 프로세스 등 모든 요소가 파일로 간주됨
- 단일 루트(Single Root) 구조로 모든 파일은 최상위 디렉터리인
/
에서 시작 - 권한 및 소유권(Ownership)을 통해 파일 접근 및 관리 제어 가능
리눅스 파일 시스템 구조
리눅스는 최상위 루트(/
)에서부터 모든 파일과 디렉터리가 시작되는 계층 구조를 가지고 있다.

/bin
(Binary)- 리눅스 기본 명령어(binary)들이 포함된 디렉토리
- 모든 사용자(일반 사용자 및 관리자)가 사용할 수 있는 필수 실행 파일들이 위치함
- 예시 명령어)
ls
,cp
,mv
,rm
,cat
,echo
,pwd
등
/boot
- 부팅과 관련된 파일이 저장된 디렉토리
- 커널 이미지(
vmlinuz
), 부트로더(ex. GRUB) 관련 파일들이 포함 - 삭제하면 시스템 부팅이 불가능해질 수 있음
/dev
(Device)- 리눅스 시스템에서 장치를 파일처럼 다루기 위한 장치 파일이 저장된 디렉토리
- 모든 하드웨어 장치(하드디스크, USB, 프린터, 키보드 등)가 파일로 표현
- 예시)
/dev/sda
(첫 번째 하드디스크)/dev/null
(아무 데이터도 저장되지 않는 특수 장치)/dev/tty
(터미널 인터페이스)
/etc
(Etcetera)- 시스템의 주요 설정(Configuration) 파일들이 저장되는 디렉토리
- 사용자 계정, 네트워크 설정, 데몬(백그라운드 서비스) 설정 파일 등이 포함
- 예시)
/etc/passwd
(사용자 계정 정보)/etc/shadow
(사용자 비밀번호 정보)/etc/fstab
(자동 마운트 설정)/etc/hosts
(호스트 네임 설정)
/home
- 일반 사용자들의 개인 디렉토리가 저장되는 디렉토리
- 사용자의 데이터(문서, 다운로드, 데스크톱 환경 설정 등)가 여기에 저장됨
- 예시)
/home/user1
(user1 사용자의 홈 디렉토리)
/media
- USB, CD-ROM 등 이동식 저장 장치가 자동으로 마운트되는 위치
- 사용자가 USB를 연결하면
/media/usb
같은 디렉토리에 자동으로 연결
/mnt
(Mount)- 임시로 마운트할 디렉토리
- 수동으로 디스크를 마운트할 때 사용됨
/root
- 슈퍼 유저(root)의 홈 디렉토리
- 일반 사용자의 홈 디렉토리(
/home/user
)와는 다르게 관리자(root)만 접근 가능
/sbin
(System Binary)- 시스템 관리자가 사용하는 필수 시스템 명령어들이 저장된 디렉토리
- 일반 사용자는 실행할 수 없으며, root 권한이 있어야 실행 가능
- 예시 명령어)
fdisk
(디스크 파티션 관리)shutdown
(시스템 종료)reboot
(시스템 재부팅)ifconfig
(네트워크 설정)
/sys
(System Information)- 커널이 관리하는 시스템 정보 및 가상 파일 시스템이 포함
/proc
과 유사하지만, 보다 동적인 시스템 정보를 제공- 시스템 하드웨어 정보(
/sys/devices
), CPU 정보(/sys/devices/system/cpu
) 등이 저장
/tmp
(Temporary)- 임시 파일이 저장되는 디렉토리
- 시스템이나 사용자 프로그램이 일시적으로 데이터를 저장하는 공간
- 부팅 시 자동으로 삭제될 수 있음
/usr
(User Binaries and Libraries)- 사용자 프로그램 및 라이브러리가 저장되는 디렉토리
/bin
과/sbin
에는 필수 명령어들이 있지만,/usr/bin
과/usr/sbin
에는 추가적인 유틸리티 프로그램들이 포함- 주요 하위 디렉토리
/usr/bin
: 사용자 명령어(prep
,vim
,nano
등)/usr/sbin
: 관리자 명령어 (apachectl
,postfix
등)/usr/lib
: 라이브러리 파일/usr/share
: 메뉴얼, 문서, 아이콘 등
/var
(Variable)- 로그 파일, 캐시, 임시 파일 등이 저장되는 디렉토리
/tmp
와 유사하지만,/var
의 데이터는 시스템이 재부팅되어도 유지됨- 주요 하위 디렉토리
/var/log
: 시스템 및 애플리케이션 로그 (syslog
,dmesg
,auth.log
등)/var/tmp
: 일시적인 파일 저장소 (/tmp
보다 장기 저장)/var/spool
: 메일 대기열, 프린터 대기열 등
리눅스 파일 시스템 종류
- 일반 파일 (Regular File)
- 텍스트 문서, 이미지, 바이너리 등 일반적인 데이터 저장
- 디렉터리 (Directory)
- 파일과 다른 디렉터리 목록을 담고 있는 특수한 파일
- 장치 파일 (Device File)
- 하드웨어 장치(ex. HDD, SSD, USB)를 나타내는 특수 파일
- 가상 파일 시스템 (Virtual File System)
- 실제 파일이 아닌, 시스템과 관련된 정보를 제공하는 파일 시스템
/proc
,/sys
디렉터리에 위치하며, 시스템 정보를 동적으로 제공
리눅스에서의 파일 경로
리눅스에서 파일 위치를 표현할 때 절대 경로(absolute path)와 상대 경로(relative path)를 사용한다.
절대 경로 (absolute path)
- 루트 디렉터리(
/
)로부터 시작하여 목적지까지 전체 경로를 표기 - ex)
/home/user/Documents/report.txt
상대 경로 (relative path)
- 현재 작업 디렉터리를 기준으로 상대적으로 목적지까지 경로를 표기
- ex) 현재 디렉터리가
/home/user
일 때, 상대경로로./Documents/report.txt
라고 표현 가능
주요 리눅스 파일 시스템 형식
파일 시스템 | 특징 |
ext4 |
✅ 리눅스 기본 파일 시스템, 성능과 안정성 우수 |
XFS |
✅ 대용량 파일 관리에 특화된 고성능 파일 시스템 |
Btrfs |
✅ 스냅샷, 볼륨 관리 지원하는 최신 파일 시스템 |
NTFS, FAT32 |
✅ windows 시스템 호환성 확보 |
'OS > Linux' 카테고리의 다른 글
[Linux] Shell 명령어와 파일 관리 명령어 (0) | 2025.03.26 |
---|---|
[Linux] 리눅스 패키지 관리 시스템 (Linux Package Management System) (feat. Ubuntu) (0) | 2025.03.26 |
[Linux][Ubuntu] Ubuntu에 Chrome 설치 (feat. Ubuntu 24.04 LTS) (0) | 2025.03.23 |
[Linux][Ubuntu] Ubuntu 24.04 LTS 한글 입력기 설치 (feat. IBus-Hangul) (0) | 2025.03.23 |
[Linux][Ubuntu] 가상 머신을 이용한 리눅스 배포판 설치 (feat. VirtualBox & Ubuntu 24.04 LTS) (0) | 2025.03.23 |
@청월누리 :: DevKuk 개발 블로그
since 2025.01.27. ~ 개발자를 향해....🔥