목록으로
개발

Day 67 - Bash Shell

·5분 읽기
데브코스백엔드부트캠프프로그래머스

이 글은 2026년 06월 26일 작성된 글입니다.

Bash Shell은 리눅스와 macOS에서 사용하는 기본 명령어 인터프리터이다. 백엔드 개발에서는 서버 접속, 파일 관리, Git 사용 등 대부분의 작업을 터미널에서 수행하기 때문에 Bash 명령어를 익혀두는 것이 중요하다.


1. Bash Shell이란?

Bash(Bourne Again SHell)는 사용자가 입력한 명령어를 운영체제가 이해할 수 있도록 전달하는 명령어 인터프리터(Shell)이다.

터미널을 통해 파일 관리, 프로그램 실행, 서버 관리 등 다양한 작업을 수행할 수 있다.

핵심

  • 운영체제와 사용자를 연결하는 CLI(Command Line Interface) 환경이다.
  • 리눅스와 macOS에서 기본적으로 사용되는 Shell이다.
  • 백엔드 개발과 서버 운영에서 가장 많이 사용하는 도구이다.
pwd
ls
cd

2. 파일 및 디렉토리 조회

현재 위치를 확인하거나 파일 및 디렉토리 목록을 조회할 때 사용하는 명령어이다.

명령어설명
pwd현재 위치 출력
ls파일 목록 조회
ls -l상세 정보 조회
ls -al숨김 파일 포함 조회
clear화면 지우기

핵심

  • pwd는 현재 작업 중인 디렉토리를 확인한다.
  • ls -al은 숨김 파일까지 모두 출력한다.
pwd
ls
ls -al
clear

3. 디렉토리 이동

디렉토리를 이동할 때 사용하는 명령어이다.

핵심

  • cd ~는 홈 디렉토리로 이동한다.
  • cd ..는 상위 디렉토리로 이동한다.
  • 절대경로와 상대경로를 모두 사용할 수 있다.
cd ~
cd ..
cd project
cd /Users/minhyuk/project

절대경로와 상대경로

구분설명
절대경로루트(/)부터 시작하는 경로
상대경로현재 위치를 기준으로 하는 경로

4. 파일 및 디렉토리 생성

파일과 디렉토리를 생성할 때 사용하는 명령어이다.

핵심

  • touch는 빈 파일을 생성한다.
  • mkdir는 디렉토리를 생성한다.
  • mkdir -p는 중간 경로까지 한 번에 생성한다.
touch test.txt
 
mkdir project
 
mkdir -p a/b/c

5. 파일 및 디렉토리 삭제

파일과 디렉토리를 삭제할 때 사용하는 명령어이다.

핵심

  • rm은 파일을 삭제한다.
  • rmdir은 비어있는 디렉토리만 삭제할 수 있다.
  • rm -rf는 디렉토리를 강제로 삭제한다.
rm test.txt
 
rmdir project
 
rm -rf project

삭제 명령어 비교

명령어설명
rm파일 삭제
rmdir빈 디렉토리 삭제
rm -rf디렉토리 및 내부 파일까지 강제 삭제

6. echo와 리다이렉션

echo는 문자열을 출력하거나 파일에 저장할 때 사용한다.

핵심

  • >는 기존 내용을 덮어쓴다.
  • >>는 기존 내용 뒤에 이어서 작성한다.
echo "Hello"
 
echo "Hello" > test.txt
 
echo "World" >> test.txt

리다이렉션

기호설명
>덮어쓰기
>>이어쓰기

7. cat 명령어

파일의 내용을 출력할 때 사용하는 명령어이다.

핵심

  • 파일 내용을 빠르게 확인할 수 있다.
  • 텍스트 파일 확인 시 가장 많이 사용하는 명령어이다.
cat test.txt

8. VIM 편집기

VIM은 터미널 환경에서 사용하는 대표적인 텍스트 편집기이다.

핵심

  • 입력 모드와 명령 모드를 구분하여 사용한다.
  • 저장과 종료 명령을 익혀두면 대부분의 작업이 가능하다.
a      입력 모드
 
ESC    명령 모드
 
:wq    저장 후 종료
 
:q!    저장하지 않고 종료

9. Pipe와 fgrep

Pipe(|)는 앞 명령어의 실행 결과를 다음 명령어의 입력으로 전달한다.

fgrep은 특정 문자열이 포함된 결과만 필터링할 때 사용한다.

핵심

  • 여러 명령어를 연결하여 사용할 수 있다.
  • 원하는 결과만 추출할 수 있다.
history | fgrep mkdir
 
ps -aux | fgrep sshd
 
ls -al | less

동작 흐름

명령어 실행

Pipe(|)

fgrep / less

필요한 결과만 출력

10. 파일 이동 및 복사

파일이나 디렉토리를 이동하거나 복사할 때 사용하는 명령어이다.

핵심

  • mv는 이동과 이름 변경을 모두 수행한다.
  • 디렉토리 복사는 cp -r 옵션이 필요하다.
mv aaa bbb
 
cp aaa ccc
 
cp -r folder1 folder2

11. ZIP 압축

파일을 압축하거나 압축을 해제할 때 사용하는 명령어이다.

핵심

  • 여러 파일을 하나의 ZIP 파일로 압축할 수 있다.
  • unzip으로 쉽게 압축을 해제할 수 있다.
zip files.zip a.txt b.txt
 
unzip files.zip

12. 파일 권한(Permission)

리눅스에서는 파일과 디렉토리에 읽기(Read), 쓰기(Write), 실행(Execute) 권한이 존재한다.

핵심

  • r, w, x 권한으로 구성된다.
  • chmod를 이용해 권한을 변경할 수 있다.
chmod 755 run.sh

권한 숫자

권한숫자
rwx7
rw-6
r-x5
r--4

권한 예시

-rwxr-xr-x
  • 첫 글자가 d이면 디렉토리이다.
  • 첫 글자가 -이면 일반 파일이다.

✅ 정리

  • Bash Shell은 운영체제와 사용자가 명령어로 상호작용할 수 있도록 도와주는 명령어 인터프리터이다.
  • pwd, ls, cd는 파일과 디렉토리를 탐색할 때 가장 기본이 되는 명령어이다.
  • touch, mkdir, rm, rm -rf를 이용해 파일과 디렉토리를 생성하고 삭제할 수 있다.
  • echo, cat, 리다이렉션을 이용하면 파일을 생성하고 내용을 저장하거나 확인할 수 있다.
  • VIM은 터미널 환경에서 자주 사용하는 텍스트 편집기로 입력 모드와 명령 모드를 구분해서 사용한다.
  • Pipe와 fgrep을 활용하면 여러 명령어를 연결하여 원하는 결과만 효율적으로 추출할 수 있다.
  • mv, cp, zip, chmod는 파일 관리와 서버 작업에서 자주 사용하는 핵심 명령어이다.
← 목록으로
데브코스백엔드부트캠프프로그래머스