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를 사용합니다.