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 인코딩, 해시 생성 등을 제공합니다.
관련 리소스
- Git 명령어 치트시트 -- 버전 관리 필수 명령어
- 원격 근무 개발자 도구 2026 -- 원격 개발자 도구
- 비밀번호 보안 가이드 -- 시스템과 계정 보안
- 정규식 테스터 -- 브라우저에서 grep 패턴 테스트
- 해시 생성기 -- 온라인 SHA 해시 생성