Linux 명령어 모음

Linux 필수 명령어를 카테고리별로 정리한 치트시트입니다.

139개 명령어

파일 & 디렉토리

명령어설명
ls
현재 디렉토리 파일 목록
ls -la
숨김 파일 포함 상세 목록 (권한, 크기, 날짜)
ls -lh
파일 크기를 읽기 쉽게 표시 (KB, MB)
ls -lt
수정일 기준 최신 파일 먼저 정렬
cd <dir>
디렉토리 이동
cd ~
홈 디렉토리로 이동
cd -
이전 디렉토리로 이동
pwd
현재 디렉토리 절대 경로 출력
mkdir <dir>
디렉토리 생성
mkdir -p a/b/c
중첩 디렉토리 한 번에 생성
cp <src> <dest>
파일 복사
cp -r <src> <dest>
디렉토리 재귀 복사
cp -i <src> <dest>
덮어쓰기 전 확인
mv <src> <dest>
파일/디렉토리 이동 또는 이름 변경
rm <file>
파일 삭제
rm -rf <dir>
디렉토리 강제 재귀 삭제 (주의!)
touch <file>
빈 파일 생성 또는 타임스탬프 갱신
ln -s <target> <link>
심볼릭 링크 생성
readlink -f <link>
심볼릭 링크의 실제 경로
tree
디렉토리 트리 구조 출력
tree -L 2
깊이 2까지 트리 출력

파일 내용 보기

명령어설명
cat <file>
파일 전체 내용 출력
cat -n <file>
줄 번호 포함 출력
head -n 20 <file>
파일 처음 20줄 출력
tail -n 20 <file>
파일 마지막 20줄 출력
tail -f <file>
파일 실시간 모니터링 (로그 확인)
tail -f -n 100 <file>
마지막 100줄부터 실시간 모니터링
less <file>
파일 내용 페이지 단위로 보기 (q로 종료)
wc -l <file>
파일 줄 수 세기
wc -w <file>
파일 단어 수 세기
diff <file1> <file2>
두 파일 차이점 비교
diff -u <file1> <file2>
unified 형식으로 비교 (git diff 스타일)

검색

명령어설명
find . -name "*.txt"
파일 이름으로 검색
find . -name "*.log" -delete
검색된 파일 삭제
find . -type d -name "src"
디렉토리만 검색
find . -type f -size +100M
100MB 이상 파일 검색
find . -mtime -7
최근 7일 내 수정된 파일
find . -perm 777
특정 권한의 파일 검색
grep "pattern" <file>
파일에서 문자열 검색
grep -r "pattern" <dir>
디렉토리 재귀 검색
grep -rn "pattern" <dir>
재귀 검색 + 줄 번호
grep -i "pattern" <file>
대소문자 무시 검색
grep -v "pattern" <file>
패턴을 포함하지 않는 줄
grep -c "pattern" <file>
매칭된 줄 수 출력
grep -l "pattern" *.txt
패턴이 포함된 파일 이름만 출력
which <command>
명령어의 실행 파일 경로 찾기
whereis <command>
명령어의 바이너리, 소스, 매뉴얼 위치
locate <file>
파일 빠르게 검색 (DB 기반, updatedb 필요)

권한 & 소유권

명령어설명
chmod 755 <file>
권한 설정: rwxr-xr-x (소유자 전체, 그룹/기타 읽기+실행)
chmod 644 <file>
권한 설정: rw-r--r-- (소유자 읽기+쓰기, 그룹/기타 읽기)
chmod 700 <file>
권한 설정: rwx------ (소유자만 전체 권한)
chmod +x <file>
모든 사용자에게 실행 권한 추가
chmod u+x <file>
소유자에게만 실행 권한 추가
chmod -R 755 <dir>
디렉토리 재귀 권한 설정
chown user:group <file>
파일 소유자:그룹 변경
chown -R user:group <dir>
디렉토리 재귀 소유자 변경
chgrp <group> <file>
파일 그룹만 변경
umask 022
새 파일의 기본 권한 마스크 설정

프로세스 관리

명령어설명
ps aux
모든 프로세스 상세 목록
ps aux | grep <name>
특정 프로세스 이름으로 검색
top
실시간 프로세스 모니터링 (q로 종료)
htop
향상된 프로세스 모니터링 (색상, 그래프)
kill <pid>
프로세스에 SIGTERM 전송 (정상 종료)
kill -9 <pid>
프로세스에 SIGKILL 전송 (강제 종료)
killall <name>
이름으로 프로세스 모두 종료
pkill -f "pattern"
명령행 패턴으로 프로세스 종료
pgrep -f "pattern"
명령행 패턴으로 PID 검색
nohup <command> &
로그아웃 후에도 백그라운드 실행
jobs
현재 셸의 백그라운드 작업 목록
fg %1
백그라운드 작업을 포그라운드로 전환
bg %1
정지된 작업을 백그라운드에서 실행
lsof -i :8080
포트 8080을 사용하는 프로세스 확인

네트워크

명령어설명
curl <url>
URL에 GET 요청
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' <url>
JSON POST 요청
curl -o file <url>
파일 다운로드 (이름 지정)
curl -I <url>
응답 헤더만 확인
wget <url>
파일 다운로드
wget -r -np <url>
웹사이트 재귀 다운로드
ping <host>
호스트 연결 확인 (ICMP)
ping -c 5 <host>
5회만 핑 전송
ip addr
네트워크 인터페이스 IP 확인
ss -tulpn
열린 포트와 프로세스 확인
netstat -tulpn
열린 포트 확인 (레거시)
nslookup <domain>
DNS 조회
dig <domain>
상세 DNS 조회
ssh user@host
SSH 원격 접속
ssh -p 2222 user@host
포트 지정 SSH 접속
scp file user@host:/path
SSH로 파일 전송 (로컬→원격)
scp user@host:/path file
SSH로 파일 전송 (원격→로컬)
rsync -avz <src> <dest>
효율적인 파일 동기화 (차이분만)

압축 & 아카이브

명령어설명
tar -czf archive.tar.gz <dir>
tar.gz 압축 생성
tar -xzf archive.tar.gz
tar.gz 압축 해제
tar -xzf archive.tar.gz -C <dir>
지정 디렉토리에 압축 해제
tar -tzf archive.tar.gz
압축 내용 미리 보기 (해제 안함)
tar -cjf archive.tar.bz2 <dir>
tar.bz2 압축 생성 (더 높은 압축률)
zip -r archive.zip <dir>
zip 압축 생성
unzip archive.zip
zip 압축 해제
unzip -l archive.zip
zip 내용 미리 보기
gzip <file>
파일 gzip 압축 (원본 삭제)
gunzip <file>.gz
gzip 압축 해제
zcat <file>.gz
gzip 파일 내용 출력 (해제 안함)

디스크 & 시스템

명령어설명
df -h
마운트된 파일시스템 디스크 사용량
du -sh <dir>
디렉토리 전체 크기 확인
du -sh * | sort -hr
현재 디렉토리 항목별 크기 정렬
du -sh * | sort -hr | head -10
가장 큰 10개 항목
free -h
메모리 사용량 (RAM + Swap)
uname -a
커널/OS 전체 정보
cat /etc/os-release
Linux 배포판 정보
uptime
시스템 가동 시간 및 부하
whoami
현재 로그인 사용자 이름
id
현재 사용자의 UID, GID, 그룹 정보
date
현재 날짜/시간 출력
date +"%Y-%m-%d %H:%M:%S"
포맷 지정 날짜 출력
history
명령어 히스토리 (최근 실행 명령어)
history | grep <keyword>
히스토리에서 특정 명령 검색
alias ll="ls -la"
명령어 별칭 설정 (현재 세션)
env
현재 환경 변수 목록
export KEY=VALUE
환경 변수 설정
crontab -e
크론 작업 편집
crontab -l
크론 작업 목록

파이프 & 리다이렉션

명령어설명
command > file
표준 출력을 파일로 저장 (덮어쓰기)
command >> file
표준 출력을 파일에 추가
command 2> error.log
에러 출력(stderr)만 파일로
command &> all.log
표준 출력 + 에러 출력 모두 파일로
command 2>&1
stderr를 stdout으로 합치기
cmd1 | cmd2
cmd1의 출력을 cmd2의 입력으로 파이프
cmd1 | tee file | cmd2
출력을 파일에 저장하면서 파이프
sort <file>
파일 내용 정렬
sort -r <file>
역순 정렬
sort -n <file>
숫자 기준 정렬
sort file | uniq
정렬 후 중복 행 제거
sort file | uniq -c | sort -rn
빈도수 기준 정렬
awk '{print $1}' file
첫 번째 컬럼만 출력
awk -F: '{print $1}' /etc/passwd
구분자 지정하여 컬럼 출력
sed 's/old/new/g' file
문자열 전체 치환
sed -i 's/old/new/g' file
파일 직접 수정 (in-place)
cut -d: -f1 /etc/passwd
구분자 기준 특정 필드 추출
xargs
표준 입력을 명령어 인자로 변환
find . -name '*.log' | xargs rm
검색 결과를 인자로 삭제

자주 묻는 질문

chmod 777은 무슨 뜻인가요?
chmod의 각 숫자는 소유자/그룹/기타 사용자의 권한을 나타냅니다. 7은 읽기(4)+쓰기(2)+실행(1)=7로 모든 권한입니다. 777은 모든 사용자에게 모든 권한을 부여하므로 보안상 위험합니다. 일반 파일은 644, 실행 파일은 755를 권장합니다.
grep과 find의 차이는 무엇인가요?
find는 파일 이름, 크기, 수정일 등 파일 속성으로 파일을 검색합니다. grep은 파일 내용에서 특정 문자열 패턴을 검색합니다. "find . -name '*.log' | xargs grep 'error'"처럼 함께 사용하면 강력한 검색이 가능합니다.
sudo와 su의 차이는 무엇인가요?
sudo는 특정 명령어를 관리자 권한으로 일회성 실행합니다. su는 다른 사용자(기본: root)로 완전히 전환합니다. sudo는 자신의 비밀번호를, su는 대상 사용자의 비밀번호를 입력합니다. 보안상 sudo 사용을 권장합니다.
tar 명령어의 옵션 -czf, -xzf는 무슨 뜻인가요?
c=create(생성), x=extract(해제), z=gzip(압축), f=file(파일 지정)입니다. tar -czf는 gzip 압축 파일 생성, tar -xzf는 gzip 압축 파일 해제입니다. -t는 내용 미리보기, -v는 상세 출력입니다.
tail -f와 less의 차이는 무엇인가요?
tail -f는 파일 끝부분을 실시간으로 모니터링합니다. 로그 파일에 새 내용이 추가되면 자동으로 표시됩니다. less는 파일 전체를 페이지 단위로 탐색하며, 위아래 스크롤과 검색(/)이 가능합니다.
pipe(|)와 리다이렉션(>)의 차이는 무엇인가요?
pipe(|)는 왼쪽 명령어의 출력을 오른쪽 명령어의 입력으로 연결합니다. 리다이렉션(>)은 명령어의 출력을 파일로 저장합니다. >>는 파일에 추가(append), 2>는 에러 출력만 저장합니다.
awk와 sed는 어떤 차이가 있나요?
sed는 스트림 편집기로 텍스트 치환(s/old/new/g)에 주로 사용합니다. awk는 패턴 처리 언어로 필드 단위 데이터 처리에 강합니다. 간단한 치환은 sed, 컬럼 기반 데이터 가공은 awk를 사용합니다.

다른 도구