형식
ls [옵션] [경로]
주요 옵션
-l 상세 목록
-a 숨김 파일 포함
-R 하위 디렉터리 재귀
-h 사람이 읽기 쉬운 크기
예시
ls -la
ls -lh /var/log
ls -R ~/projects
형식
pwd [옵션]
주요 옵션
-P 실제 경로(심볼릭 링크 해제)
-L 논리 경로(기본값)
예시
pwd
pwd -P
cd /var && pwd
형식
cd [경로]
주요 옵션
.. 상위 디렉터리
~ 홈 디렉터리
예시
cd ..
cd ~/Downloads
cd -
형식
mkdir [옵션] 디렉터리
주요 옵션
-p 하위 경로까지 일괄 생성
-m 권한 지정
-v 생성 과정 출력
예시
mkdir project
mkdir -p a/b/c
mkdir -m 755 web
형식
rmdir [옵션] 디렉터리
주요 옵션
-p 상위 디렉터리 연쇄 삭제
-v 삭제 과정 출력
예시
rmdir empty
rmdir -p a/b/c
rmdir -v old
형식
rm [옵션] 파일/디렉터리
주요 옵션
-r 디렉터리 재귀 삭제
-f 강제 삭제(확인 없음)
-i 삭제 전 확인
예시
rm file.txt
rm -rf build
rm -i data.csv
형식
cp [옵션] 원본 대상
주요 옵션
-R 디렉터리 재귀 복사
-p 권한/타임스탬프 보존
-i 덮어쓰기 전 확인
예시
cp a.txt b.txt
cp -R src dst
cp -p config.ini /etc/app/
형식
mv [옵션] 원본 대상
주요 옵션
-i 덮어쓰기 전 확인
-n 덮어쓰기 방지
-v 작업 로그 출력
예시
mv a.txt b.txt
mv /tmp/logs ./logs_old
mv *.log logs/
형식
touch [옵션] 파일...
주요 옵션
-t 지정한 타임스탬프 설정
-a 접근 시간만 변경
-m 수정 시간만 변경
예시
touch notes.md
touch -t 202501010101 file
touch -a -m data.bin
형식
file [옵션] 파일...
주요 옵션
-i MIME 타입 표시
-b 파일명 없이 결과만
-k 가능한 추가 정보 표시
예시
file image.png
file -i report.pdf
file -b archive.tar.gz
형식
zip [옵션] 아카이브.zip 파일들
주요 옵션
-r 디렉터리 재귀 압축
-9 최대 압축률
-q 조용한 모드
예시
zip logs.zip *.log
zip -r site.zip ./site
zip -9 backup.zip data/*
형식
unzip [옵션] 아카이브.zip [-d 대상]
주요 옵션
-d 대상 디렉터리 지정
-l 목록만 보기
-o 덮어쓰기 강제
예시
unzip logs.zip
unzip -d out data.zip
unzip -l site.zip
형식
tar [옵션] [아카이브] [파일/디렉터리...]
주요 옵션
-c 생성
-x 해제
-t 목록
-f 파일 지정
-z gzip 사용
-v 진행 표시
예시
tar -cf backup.tar folder
tar -czf backup.tar.gz folder
tar -xzf backup.tar.gz -C /restore
형식
nano [옵션] 파일
주요 옵션
-l 줄 번호 표시
-B 백업 파일 생성
-m 마우스 지원
예시
nano /etc/hosts
nano -l notes.md
nano -B config.ini
형식
vi [+행] 파일
주요 옵션
+N N번째 줄에서 시작
-R 읽기 전용 모드
-u NONE 기본 설정 없이
예시
vi app.py
vi +10 main.c
vi -R /etc/fstab
형식
cat [옵션] [파일...]
주요 옵션
-n 줄 번호 출력
-A 제어문자 표시
-E 줄 끝 표시
예시
cat file.txt
cat a.txt b.txt > all.txt
cat -n code.c | less
형식
tac [옵션] 파일
주요 옵션
-s 구분자 지정
-b 구분자 뒤에 출력
-r 정규식 구분자
예시
tac file.txt
tac -s '---' parts.txt
tac -b -s "," csv_parts.txt
형식
grep [옵션] 패턴 [파일...]
주요 옵션
-i 대소문자 무시
-n 줄 번호
-r 디렉터리 재귀
-E 확장 정규식
예시
grep -n 'ERROR' app.log
dmesg | grep -i usb
grep -r 'TODO' src/
형식
sed [옵션] '스크립트' [파일]
주요 옵션
-n 선택 출력
-E 확장 정규식
-i 제자리 수정(in-place)
예시
sed -n '1,10p' file.txt
sed 's/red/blue/g' colors.txt
sed -i 's/DEBUG=false/DEBUG=true/' .env
형식
head [옵션] 파일
주요 옵션
-n N행 출력
-c N바이트 출력
예시
head -n 20 access.log
head -c 1K big.bin
head README.md
형식
tail [옵션] 파일
주요 옵션
-n N행
-f 추가 내용 실시간 추적
-c N바이트
예시
tail -n 50 access.log
tail -f app.log
tail -c 512 data.bin
형식
awk [옵션] '패턴{동작}' [파일]
주요 옵션
-F 필드 구분자 지정
NR 현재 레코드 번호
NF 필드 개수
N 필드 참조
예시
awk -F: '{print $1}' /etc/passwd
awk '{sum+=$1} END{print sum}' nums.txt
awk '$3>100 {print $0}' data.tsv
형식
sort [옵션] [파일]
주요 옵션
-r 내림차순
-n 숫자 정렬
-k N 정렬 키
-t 구분자
예시
sort names.txt
sort -nr scores.txt
sort -t, -k2 data.csv
형식
cut [옵션] 파일
주요 옵션
-d 구분자
-f 필드 리스트
-c 문자 범위
예시
cut -d, -f2,4 data.csv
cut -c1-8 ids.txt
cut -d: -f1 /etc/passwd
형식
diff [옵션] 파일1 파일2
주요 옵션
-u 통합 형식
-r 디렉터리 재귀
-q 차이 유무만
예시
diff a.txt b.txt
diff -u old.c new.c
diff -r src_old src_new
형식
cmd | tee [옵션] 파일
주요 옵션
-a 파일에 이어쓰기
-i SIGINT 무시
예시
echo hello | tee out.txt
dmesg | tee -a kernel.log
ls -l | tee list.txt | wc -l
형식
tr [옵션] 집합1 [집합2]
주요 옵션
-d 삭제
-s 반복 문자 압축
예시
echo 'Hello' | tr '[:upper:]' '[:lower:]'
echo 'a,,b,,,c' | tr -s ','
echo 'abc123' | tr -d '0-9'
형식
chmod [옵션] 모드 파일
주요 옵션
u/g/o 사용자/그룹/기타
+/- 권한 추가/제거
숫자 표기 755 등
-R 재귀 적용
예시
chmod 644 file.txt
chmod u+x script.sh
chmod -R 755 bin/
형식
chown [옵션] 소유자[:그룹] 파일
주요 옵션
-R 재귀 적용
--from 기존 소유자 조건
예시
sudo chown user file.txt
sudo chown user:staff -R www
sudo chown :www-data app.log
형식
ln [옵션] 원본 링크명
주요 옵션
-s 심볼릭 링크
-f 기존 링크 덮어쓰기
-n 심볼릭 링크 대상 처리
예시
ln file.txt file_hard
ln -s /opt/app/bin/run ./run
ln -sf new.conf current.conf
형식
find 경로 [조건] [동작]
주요 옵션
-name 이름 패턴
-type 파일 타입
-size 크기 조건
-exec 명령 실행
예시
find . -name '*.log'
find /var -type d -name 'nginx'
find . -size +100M -exec rm -i {} \;
형식
locate [패턴]
주요 옵션
-i 대소문자 무시
-n N개 결과 제한
예시
locate ssh_config
locate -i readme
locate -n 5 nginx.conf
형식
which 프로그램
예시
which python
which ls
which node
형식
whereis 프로그램
주요 옵션
-b 바이너리만
-m 매뉴얼만
-s 소스만
예시
whereis ls
whereis -b gcc
whereis -m bash
형식
du [옵션] [경로]
주요 옵션
-h 사람이 읽기 쉬운 단위
-s 총합 요약
-d 깊이 제한
예시
du -h .
du -sh /var/log
du -h -d1 /home/user
형식
df [옵션] [경로]
주요 옵션
-h 사람이 읽기 쉬운 단위
-T 파일시스템 타입 표시
-i inode 정보
예시
df -h
df -T /
df -i
형식
free [옵션]
주요 옵션
-h 사람이 읽기 쉬운 단위
-m MB 단위
-s N초마다 갱신
예시
free -h
free -m
free -h -s 5
형식
top
주요 옵션
-p PID 특정 프로세스만
-u USER 사용자 필터
예시
top
top -u www-data
top -p 1234
형식
ps [옵션]
주요 옵션
aux 모든 프로세스 상세
-ef 표준 포맷
-o 출력 형식 지정
예시
ps aux | grep nginx
ps -ef --forest
ps -o pid,cmd -p 1234
형식
kill [옵션] PID
주요 옵션
-SIGTERM 정상 종료 요청
-9 강제 종료 SIGKILL
-l 신호 목록
예시
kill 1234
kill -9 5678
kill -HUP 1111
형식
pkill [옵션] 패턴
주요 옵션
-f 전체 명령줄 매칭
-u 사용자 필터
-9 SIGKILL
예시
pkill nginx
pkill -f 'python app.py'
pkill -u www-data nginx
형식
xargs [옵션] 명령
주요 옵션
-0 널 구분자 입력
-n N개씩 나눠 실행
-I{} 자리표시자 사용
예시
printf 'a\nb\nc' | xargs echo
find . -name '*.log' -print0 | xargs -0 rm -f
cat list.txt | xargs -n 1 wget -q
형식
man [섹션] 명령
주요 옵션
-k 키워드 검색(apropos)
-f 간단 설명(whatis)
예시
man grep
man 5 crontab
man -k archive
형식
alias 이름='명령'
예시
alias ll='ls -alF'
alias gs='git status'
alias rm='rm -i'
형식
unalias [옵션] 이름
주요 옵션
예시
unalias ll
unalias -a
unalias gs || true
형식
history [옵션]
주요 옵션
-c 지우기
-d N 특정 항목 삭제
예시
history | tail
history -d 100
history -c
형식
env [변수=값]... [명령]
주요 옵션
예시
env | sort
env PATH=/custom/bin:$PATH mycmd
env -i sh -c 'echo $PATH'
형식
export 변수=값
주요 옵션
예시
export JAVA_HOME=/opt/jdk
export PATH=$HOME/bin:$PATH
export -p | grep JAVA_HOME
형식
echo [옵션] 문자열
주요 옵션
-n 끝의 개행 생략
-e 백슬래시 이스케이프 해석
예시
echo Hello
echo -n 'No newline'
echo -e 'A\nB'
형식
printf 포맷 [인수...]
예시
printf '%s %d\n' user 3
printf '%.2f\n' 3.14159
printf '%-10s | %5d\n' name 42
형식
date [옵션] [+포맷]
주요 옵션
-u UTC 기준
-d 입력 시각 해석
-s 시스템 시각 설정
예시
date '+%Y-%m-%d %H:%M:%S'
date -u
date -d '2025-01-01 12:00' '+%s'
형식
cal [월] [년]
주요 옵션
-y 전체 연도 달력
-3 이전/다음 달 포함
예시
cal
cal 12 2025
cal -y 2026
형식
uname [옵션]
주요 옵션
-a 모든 정보
-r 커널 릴리스
-m 머신 하드웨어
예시
uname -a
uname -r
uname -m
형식
hostname [옵션] [이름]
주요 옵션
-I IP 주소들
-f FQDN 전체 도메인명
예시
hostname
hostname -I
sudo hostname new-host
형식
ping [옵션] 대상
주요 옵션
-c 횟수 지정
-i 간격
-W 타임아웃
예시
ping -c 4 8.8.8.8
ping -c 3 example.com
ping -i 0.2 -c 5 1.1.1.1
형식
curl [옵션] URL
주요 옵션
-L 리다이렉트 따라가기
-o 파일로 저장
-I 헤더만 요청
-d 데이터 POST
예시
curl https://example.com
curl -L -o page.html http://example.com
curl -X POST -d 'a=1&b=2' https://httpbin.org/post
형식
wget [옵션] URL
주요 옵션
-O 파일명 지정
-c 이어받기
-r 재귀 다운로드
--no-check-certificate 인증서 무시
예시
wget https://example.com/file.zip
wget -O latest.html https://example.com
wget -c big.iso
형식
ssh [옵션] 사용자@호스트 [명령]
주요 옵션
-p 포트 지정
-i 개인키 지정
-L 로컬 포워딩
예시
ssh user@server
ssh -i ~/.ssh/id_rsa user@server
ssh -L 8080:localhost:80 user@server
형식
scp [옵션] 원본 대상
주요 옵션
-P 포트
-i 키 파일
-r 디렉터리 재귀
예시
scp file.txt user@server:/tmp/
scp -r site/ user@server:/var/www/
scp -P 2222 user@server:/var/log/syslog .
형식
sudo [옵션] 명령
주요 옵션
-v 자격 갱신
-k 자격 무효화
-u 사용자 지정
예시
sudo apt update
sudo -u www-data ls /var/www
sudo -k && sudo whoami