쉘(Shell)의 정의
쉘은 사용자와 운영체제 커널 사이에서 명령을 전달하는 인터페이스입니다.
리눅스에서 우리가 명령어를 입력하는 화면이 "쉘"입니다.

- 사용자 > 쉘에 명령어 입력 > 쉘이 커널에 전달 > 결과 출력
쉘의 종류
리눅스에는 다양한 종류의 쉘이 존재합니다.
| 쉘 종류 | 설명 |
| sh (Bourne Shell) | 가장 기본이 되는 쉘 |
| bash (Bourne Again Shell) | 대부분의 리눅스에서 기본 쉘, 가장 많이 사용 |
| zsh | 고급 자동 완성, 테마 등 편의 기능이 풍부 |
| fish | 친절한 문법과 컬러 하이라이팅 |
| csh / tcsh | C언어 스타일의 문법 |
내 쉘을 확인하는 방법
echo $SHELL
기본 쉘 변경
chsh -s /bin/bash # bash로 변경
쉘의 기본 기능
1. 명령어 실행
ls -l
cd /home
touch file.txt
2. 파이프 & 리디렉션
cat file.txt | grep "hello" # | : 앞 결과를 뒤에 전달
ls > list.txt # 출력 리디렉션
echo "test" >> list.txt # 덧붙이기
3. 환경 변수
echo $HOME
export MY_VAR="hello"
echo $MY_VAR
4. 명령어 기록 & 자동완성
history
유용한 Bash 기능 예시
| 기능 | 설명 | 예시 |
| alias | 명령어 단축 | alias ll='ls-alF' |
| jobs, fg, bg | 백그라운드 작업 관리 | sleep 60 & |
| $(command) | 명령어 결과를 변수처럼 사용 | echo "오늘은 $(date)입니다." |
| .bashrc | 쉘 설정 저장 | 자동 alias 등록 등 |
쉘을 배워야 하는 이유
- 서버에서는 GUI가 거의 없기 때문에 쉘은 필수 도구
- 리눅스 시스템 제어, 자동화, 모니터링 등에 광범위하게 활용
- DevOps/SysOps 분야에서는 쉘 스크립팅 능력이 기초이자 핵심
'linux' 카테고리의 다른 글
| systemd와 systemctl을 활용한 서비스 관리 (0) | 2025.05.14 |
|---|---|
| 리눅스에서 자주 사용하는 명령어 & 문법 정리 -2 (2) | 2025.05.08 |
| 리눅스에서 자주 사용하는 명령어 & 문법 정리 -1 (0) | 2025.05.08 |
| 리눅스 커널이란? (0) | 2025.04.30 |
| Linux란 무엇인가.? (0) | 2025.04.29 |