쉘(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 분야에서는 쉘 스크립팅 능력이 기초이자 핵심

+ Recent posts