Linux 명령줄 필수 가이드: 개발자가 알아야 할 60+ 명령어

Linux 명령줄 필수 가이드: 개발자가 알아야 할 60+ 명령어

개발자를 위한 궁극의 Linux 명령줄 참조 가이드. 파일 관리, 텍스트 처리, 네트워킹, 시스템 관리, 생산성을 위한 60개 이상의 필수 명령어를 실용적인 예제와 함께 설명합니다.

2026년 3월 12일8분 소요

서론: 명령줄의 힘

명령줄은 소프트웨어가 만들어지는 곳입니다. 수십 년간의 그래픽 인터페이스 발전에도 불구하고, 터미널은 컴퓨터와 상호작용하는 가장 강력하고, 유연하며, 효율적인 방법으로 남아 있습니다. 2026년, 클라우드 컴퓨팅, 컨테이너화, CI/CD 파이프라인, 원격 개발이 표준이 되면서 명령줄 능숙도는 그 어느 때보다 중요합니다.

이 가이드는 카테고리별로 정리된 60개 이상의 필수 Linux 명령어를 다룹니다. 각 명령어는 실제 업무에서 사용하는 실용적인 예제를 포함합니다. Linux, macOS, Windows WSL 어디서든 이 명령어들이 생산성을 높여줄 것입니다.

파일 및 디렉토리 작업

탐색

# 현재 디렉토리 출력
pwd

# 디렉토리 변경
cd /var/log            # 절대 경로
cd ../                 # 상위 디렉토리
cd ~                   # 홈 디렉토리
cd -                   # 이전 디렉토리

# 파일 목록
ls                     # 기본 목록
ls -la                 # 상세 형식, 숨김 파일 포함
ls -lah                # 사람이 읽기 쉬운 파일 크기
ls -lt                 # 수정 시간순 정렬
ls -lS                 # 파일 크기순 정렬

파일 관리

# 파일 생성
touch newfile.txt

# 파일 복사
cp source.txt destination.txt        # 파일 복사
cp -r source_dir/ destination_dir/   # 디렉토리 재귀 복사
cp -p file.txt backup.txt            # 권한과 타임스탬프 보존

# 이동 및 이름 변경
mv oldname.txt newname.txt           # 파일 이름 변경
mv file.txt /path/to/destination/    # 파일 이동

# 삭제
rm file.txt                          # 파일 삭제
rm -r directory/                     # 디렉토리 재귀 삭제
rm -rf directory/                    # 강제 삭제 (매우 주의!)
rm -i file.txt                       # 대화식: 삭제 전 확인

# 디렉토리 생성
mkdir new_directory                  # 디렉토리 생성
mkdir -p path/to/nested/directory    # 중첩 디렉토리 생성

파일 정보

# 파일 유형 감지
file document.pdf
# 출력: PDF document, version 1.7

# 파일 크기와 디스크 사용량
du -sh directory/                    # 디렉토리 전체 크기
du -sh *                             # 현재 디렉토리 각 항목 크기
du -sh * | sort -rh                  # 크기순 정렬

df -h                                # 전체 파일시스템 디스크 사용량

# 파일 통계
wc filename.txt                      # 줄, 단어, 바이트 수
wc -l filename.txt                   # 줄 수만
wc -w filename.txt                   # 단어 수만

빠른 텍스트 분석은 글자 수 세기 도구를 사용해보세요.

텍스트 처리

파일 보기

# 파일 내용 표시
cat file.txt                         # 전체 파일 출력
cat -n file.txt                      # 줄 번호 포함

# 파일의 시작/끝 보기
head -n 20 file.txt                  # 첫 20줄
tail -n 20 file.txt                  # 마지막 20줄
tail -f logfile.log                  # 실시간 로그 추적

# 페이지 단위로 파일 보기
less file.txt
# Space = 다음 페이지, b = 이전 페이지
# / = 앞으로 검색, ? = 뒤로 검색
# g = 시작, G = 끝, q = 종료

grep으로 검색하기

# 기본 검색
grep "error" logfile.log             # "error" 포함 줄 찾기
grep -i "error" logfile.log          # 대소문자 무시
grep -n "error" logfile.log          # 줄 번호 표시
grep -c "error" logfile.log          # 일치하는 줄 수
grep -v "debug" logfile.log          # 반전: 일치하지 않는 줄

# 재귀 검색
grep -r "TODO" src/                  # 디렉토리의 모든 파일 검색
grep -rn "import React" src/         # 줄 번호와 함께
grep -rl "deprecated" src/           # 파일명만 표시

# 정규식
grep -E "error|warning" logfile.log  # OR 패턴
grep -E "^[0-9]{4}-" logfile.log     # 년도로 시작하는 줄

# 일치 주변 컨텍스트
grep -A 3 "error" logfile.log        # 일치 후 3줄
grep -B 2 "error" logfile.log        # 일치 전 2줄
grep -C 2 "error" logfile.log        # 전후 2줄

grep에서 사용하기 전에 정규식 테스터로 패턴을 확인해보세요.

텍스트 변환

# sed: 스트림 편집기
sed 's/old/new/' file.txt            # 줄당 첫 번째 일치 치환
sed 's/old/new/g' file.txt           # 모든 일치 치환
sed -i 's/old/new/g' file.txt        # 파일 직접 편집
sed -n '10,20p' file.txt             # 10-20줄 출력
sed '/^#/d' config.txt               # 주석 줄 삭제

# awk: 패턴 처리
awk '{print $1}' file.txt            # 첫 번째 열 출력
awk -F',' '{print $2}' data.csv      # CSV: 두 번째 열
awk '{sum += $1} END {print sum}' numbers.txt  # 열 합계

# sort: 줄 정렬
sort file.txt                        # 알파벳순 정렬
sort -n numbers.txt                  # 숫자순 정렬
sort -r file.txt                     # 역순 정렬
sort -u file.txt                     # 정렬 후 중복 제거

# uniq: 중복 줄 처리
sort file.txt | uniq                 # 인접 중복 제거
sort file.txt | uniq -c              # 발생 횟수
sort file.txt | uniq -d              # 중복만 표시

# cut: 열 추출
cut -d',' -f1,3 data.csv            # CSV에서 1, 3열 추출

# tr: 문자 변환
echo "HELLO" | tr 'A-Z' 'a-z'       # 소문자로 변환
echo "hello" | tr 'a-z' 'A-Z'       # 대문자로 변환

대소문자 변환기로도 텍스트 변환을 할 수 있습니다.

권한 및 소유권

권한 이해하기

-rwxr-xr-- 1 user group 4096 Mar 16 10:00 file.txt
│└┬┘└┬┘└┬┘
│ │  │  └── 기타: 읽기만
│ │  └───── 그룹: 읽기와 실행
│ └──────── 소유자: 읽기, 쓰기, 실행
└────────── 유형: - = 파일, d = 디렉토리, l = 심볼릭 링크

chmod / chown

# 권한 변경
chmod 755 script.sh                  # rwxr-xr-x
chmod 644 file.txt                   # rw-r--r--
chmod 600 private.key                # rw------- (소유자만)

# 소유권 변경
chown user:group file.txt
chown -R user:group directory/       # 재귀적 소유권 변경

프로세스 관리

# 프로세스 보기
ps aux                               # 모든 프로세스 상세 보기
ps aux | grep node                   # 특정 프로세스 찾기
top                                  # 대화식 프로세스 뷰어
htop                                 # 개선된 뷰어 (설치 필요)

# 프로세스 제어
kill PID                             # SIGTERM (정상 종료)
kill -9 PID                          # SIGKILL (강제 종료)
killall node                         # 이름으로 모든 프로세스 종료
pkill -f "node server"               # 명령 패턴으로 종료

# 백그라운드와 포그라운드
command &                            # 백그라운드 실행
jobs                                 # 백그라운드 작업 목록
fg %1                                # 작업 1을 포그라운드로
nohup command &                      # 터미널 종료 후에도 실행

# 모니터링
lsof -i :3000                        # 포트 3000을 사용하는 프로세스
watch -n 2 'ps aux | grep node'      # 2초마다 반복

네트워킹

# 네트워크 정보
ip addr show                         # 네트워크 인터페이스 (Linux)
ifconfig                             # 네트워크 인터페이스 (macOS)

# 연결 테스트
ping -c 5 google.com                 # 5번 핑

# DNS 조회
nslookup google.com
dig +short google.com                # IP만

# HTTP 요청
curl https://api.example.com         # GET 요청
curl -o output.html https://example.com  # 파일로 저장
curl -I https://example.com          # 헤더만
curl -X POST -d '{"key":"value"}' \
  -H "Content-Type: application/json" \
  https://api.example.com/data       # POST JSON

# 포트 확인
ss -tulnp                            # 리슨 중인 포트 (Linux)
lsof -i :8080                        # 포트 8080 사용자

API 요청의 URL 인코딩에는 URL 인코더를 사용하세요.

압축 및 아카이브

# tar
tar -czf archive.tar.gz files/       # gzip 압축 아카이브 생성
tar -xzf archive.tar.gz              # gzip 아카이브 추출
tar -xzf archive.tar.gz -C /target/  # 특정 디렉토리에 추출
tar -tf archive.tar.gz               # 내용 목록만 보기

# zip
zip -r archive.zip directory/        # 디렉토리 압축
unzip archive.zip                    # 추출
unzip -l archive.zip                 # 내용 목록

파이핑과 리다이렉션

# 파이프: 한 명령의 출력을 다른 명령으로
ls -la | grep ".txt"                 # .txt 파일 찾기
cat logfile.log | grep "error" | wc -l   # 에러 줄 수
ps aux | sort -k4 -rn | head -10    # 메모리 사용 상위 10개

# 출력 리다이렉션
echo "hello" > file.txt              # 파일에 쓰기 (덮어쓰기)
echo "world" >> file.txt             # 파일에 추가
command 2> errors.log                # stderr를 파일로
command > output.log 2>&1            # stdout과 stderr 모두
command > /dev/null 2>&1             # 모든 출력 무시

# tee: 파일과 stdout 모두에 쓰기
command | tee output.log             # 출력 표시 및 저장

개발자를 위한 유용한 조합

파일 전체에서 찾기와 바꾸기

# 패턴 포함 파일 찾기
grep -rl "oldFunction" src/

# 파일 전체에서 찾아 바꾸기
find src/ -type f -name "*.ts" -exec sed -i 's/oldFunction/newFunction/g' {} +

# 코드베이스에서 TODO 찾기
grep -rn "TODO\|FIXME\|HACK" src/ --include="*.ts"

# 코드 줄 수 세기
find src/ -name "*.ts" -o -name "*.tsx" | xargs wc -l | tail -1

로그 분석

# 로그에서 가장 흔한 에러
grep "ERROR" app.log | awk '{print $5}' | sort | uniq -c | sort -rn | head -10

# 가장 많이 사용한 명령어
history | awk '{print $2}' | sort | uniq -c | sort -rn | head -10

Docker 명령어

docker ps                            # 실행 중인 컨테이너
docker logs -f container_name        # 로그 실시간 추적
docker exec -it container bash       # 컨테이너 쉘 접속
docker compose up -d                 # 서비스 백그라운드 시작
docker compose down                  # 서비스 중지 및 제거
docker system prune -a               # 미사용 리소스 모두 제거

빠른 참조 표

작업명령어
현재 디렉토리pwd
파일 목록 (상세)ls -la
디렉토리 변경cd path/
파일 생성touch file.txt
디렉토리 생성mkdir -p path/to/dir
파일 복사cp source dest
이동/이름 변경mv source dest
파일 삭제rm file.txt
파일 보기less file.txt
파일 내 검색grep -rn "패턴" dir/
파일 찾기find . -name "*.txt"
권한 변경chmod 755 file
프로세스 목록ps aux
프로세스 종료kill -9 PID
디스크 사용량du -sh *
파일 다운로드curl -O URL
압축tar -czf archive.tar.gz dir/
추출tar -xzf archive.tar.gz
포트 확인lsof -i :PORT

결론

명령줄은 단순한 도구가 아닌 초능력입니다. 이 가이드의 명령어들은 모든 개발자가 손끝에 두어야 할 필수 도구 키트입니다. 기초부터 시작하여 정기적으로 연습하고, 점진적으로 더 고급 명령어를 워크플로우에 통합하세요.

브라우저 기반 개발 도구가 필요하다면 무료 온라인 도구를 확인하세요 -- 정규식 테스트, JSON 포맷팅, Base64 인코딩, 해시 생성 등을 제공합니다.

관련 리소스

관련 글