치트시트

리눅스 명령어 정리: 초보자와 관리자를 위한 치트시트

업데이트: · Skillaria.Top

리눅스의 주요 명령어는 탐색(pwd, ls, cd), 파일 작업(cp, mv, rm, mkdir), 권한(chmod, chown), 패키지(apt), 프로세스(ps, top, kill), 검색과 텍스트 처리(find, grep, sed, awk), 네트워크(ip, ss, curl), 서비스(systemctl, journalctl)로 나뉩니다. 아래 표에서 명령어와 예제를 확인할 수 있으며, 터미널의 일상 작업 대부분을 다룹니다.

이 리눅스 명령어 치트시트는 작업 종류별로 묶었습니다. 파일을 찾고, 패키지를 설치하고, 멈춘 프로세스를 끝내고, 로그에서 한 줄을 꺼내고, 포트를 확인하는 작업에 필요한 명령들입니다. Ubuntu와 Debian에서 검증했으며, 거의 모든 명령은 다른 배포판에서도 동작합니다. 차이는 주로 패키지 관리자에 있습니다.

도움말과 팁

ead>
명령어기능
man ls명령어의 전체 매뉴얼; 종료는 q, 검색은 /단어
ls --help옵션의 간단한 요약
type cd내장 명령, 별칭, 파일 중 무엇인지 알려 줌
which python3실행 파일의 경로
history명령 기록; !123은 123번 명령을 다시 실행
Ctrl+R기록에서 검색
Ctrl+C / Ctrl+D명령 중단 / 셸 종료

파일 시스템 탐색

ead>
명령어기능
pwd현재 디렉터리
ls -la숨김 파일 포함 전체, 권한과 크기 함께
ls -lh크기를 보기 좋게 (K, M, G)
ls -lt수정 시각 기준 정렬
cd /var/log절대 경로로 이동
cd .. / cd ~ / cd -상위 디렉터리 / 홈 / 이전 디렉터리
tree -L 22단계까지 디렉터리 트리 (tree 패키지)

파일과 디렉터리 작업

ead>
명령어기능
touch file.txt빈 파일 생성 또는 수정 시각 갱신
mkdir -p a/b/c상위 디렉터리까지 함께 생성
cp file.txt backup.txt파일 복사
cp -r src/ dst/디렉터리를 재귀적으로 복사
mv old.txt new.txt이름 변경 또는 이동
rm file.txt파일 삭제 (휴지통 없음)
rm -r dir/디렉터리와 내용 삭제; -f는 묻지 않음, 주의
rmdir dir빈 디렉터리 삭제
ln -s /opt/app/current app심볼릭 링크 생성
stat file.txt크기, 권한, inode, 날짜 등 상세 정보
file image.bin내용으로 파일 종류 판별

내용 보기

ead>
명령어기능
cat file파일 전체 출력
less file페이지 단위 보기, 검색 /, 종료 q
head -n 20 file처음 20줄
tail -n 50 file마지막 50줄
tail -f /var/log/syslog파일을 실시간으로 지켜보기
wc -l file줄 수
diff a.conf b.conf두 파일의 차이

권한과 소유자

ead>
명령어기능
chmod +x script.sh실행 권한 부여
chmod 644 filerw-r--r--: 소유자는 쓰고, 나머지는 읽기
chmod 755 dirrwxr-xr-x: 디렉터리와 스크립트에 일반적
chmod 600 ~/.ssh/id_ed25519소유자만: 개인 키용
sudo chown www-data:www-data file소유자와 그룹 변경
sudo chown -R alice /srv/app소유자를 재귀적으로 변경
id내 UID, GID, 그룹
sudo -iroot 셸
sudo usermod -aG docker alice사용자를 그룹에 추가

패키지 (apt, Debian과 Ubuntu)

ead>
명령어기능
sudo apt update저장소의 패키지 목록 갱신
sudo apt upgrade설치된 패키지 업그레이드
sudo apt install nginx패키지 설치
sudo apt remove nginx설정을 남기고 제거; purge는 설정까지 제거
sudo apt autoremove불필요한 의존 패키지 제거
apt search htop패키지 검색
apt show nginx설명과 버전
dpkg -l | grep nginx설치 여부 확인
dpkg -L nginx패키지가 설치한 파일 목록

RHEL, Fedora, Rocky Linux에서는 dnf install, dnf remove, dnf upgrade, rpm -qa를 사용합니다.

환경과 프로필

ead>
명령어기능
echo $PATH셸이 프로그램을 찾는 디렉터리 목록
env모든 환경 변수
export APP_ENV=prod현재 세션과 자식 프로세스에 변수 설정
alias ll='ls -la'명령어 단축 이름
source ~/.bashrc재로그인 없이 프로필 다시 읽기
crontab -e / crontab -lcron 작업 편집 / 목록 보기

프로세스

ead>
명령어기능
ps aux모든 프로세스, 사용자, CPU와 메모리 포함
ps aux | grep nginx프로세스 찾기
pgrep -a nginx이름으로 PID와 명령줄 확인
top / htop실시간 부하
kill 1234프로세스에 종료 요청 (SIGTERM)
kill -9 1234강제 종료 (SIGKILL) — 최후의 수단
pkill -f "python app.py"명령줄 일치로 종료
command &, jobs, fg백그라운드 실행과 작업 관리
nohup ./job.sh &터미널을 닫아도 프로세스 유지
free -h메모리와 swap
uptime가동 시간과 평균 부하
strace -p 1234프로세스의 시스템 호출 추적

서비스와 로그 (systemd)

ead>
명령어기능
systemctl status nginx서비스 상태와 로그 마지막 줄
sudo systemctl start|stop|restart nginx시작, 중지, 재시작
sudo systemctl reload nginx중지 없이 설정 다시 읽기
sudo systemctl enable --now nginx자동 시작 등록과 즉시 시작
systemctl --failed실패한 유닛 목록
journalctl -u nginx -f서비스 로그 실시간 보기
journalctl -u nginx --since "1 hour ago"최근 한 시간 로그
journalctl -p err -b부팅 이후의 오류

파일 찾기

ead>
명령어기능
find /var/log -name "*.log"이름으로 찾기
find . -type f -mtime -1최근 하루 안에 수정된 파일
find / -size +500M 2>/dev/null큰 파일 찾기; 접근 오류는 숨김
find . -name "*.tmp" -delete찾아서 삭제
du -sh *디렉터리 안 각 항목의 크기
df -h파일 시스템별 남은 공간

텍스트 검색과 처리: grep, sed, awk, jq

ead>
명령어기능
grep "error" app.log단어가 포함된 줄
grep -i -n "error" app.log대소문자 무시, 줄 번호 포함
grep -r "listen" /etc/nginx/디렉터리를 재귀적으로 검색
grep -v "DEBUG" app.log단어가 없는 줄
grep -c "500" access.log일치 횟수
grep -E "warn|error" app.log확장 정규 표현식
sed 's/old/new/g' file바꾼 결과를 출력
sed -i 's/8080/9090/' app.conf파일에서 바로 치환
sed -n '10,20p' file10번째부터 20번째 줄 출력
awk '{print $1}' access.log각 줄의 첫 번째 필드
awk -F: '{print $1}' /etc/passwd사용자 이름 (구분자 :)
awk '$9 == 500' access.log아홉 번째 필드가 500인 줄
sort | uniq -c | sort -rn중복 세기와 빈도순 정렬
cut -d, -f2 data.csvCSV의 두 번째 열
jq '.items[].name' data.jsonJSON에서 필드 추출

파이프라인 예: nginx에 요청을 가장 많이 보낸 IP 주소 열 개.

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10

리디렉션과 파이프

ead>
구문기능
cmd > out.txt출력을 파일에 쓰기 (덮어쓰기)
cmd >> out.txt파일 끝에 추가
cmd 2> err.txt오류만 리디렉션
cmd > all.log 2>&1출력과 오류를 한 파일에
cmd1 | cmd2한 명령의 출력을 다른 명령의 입력으로
cmd | tee out.txt화면에 보여 주면서 저장
cmd1 && cmd2첫 번째가 성공했을 때만 두 번째 실행
cmd1 || cmd2첫 번째가 실패했을 때 두 번째 실행

압축 파일

ead>
명령어기능
tar -czf backup.tar.gz dir/묶고 gzip으로 압축
tar -xzf backup.tar.gz풀기
tar -tzf backup.tar.gz내용 보기
zip -r site.zip site/ / unzip site.zipzip 아카이브

네트워크

ead>
명령어기능
ip a인터페이스와 IP 주소
ip r라우팅 테이블
ping -c 4 8.8.8.8호스트 응답 여부
ss -tulpn열린 포트와 그 포트를 쓰는 프로세스
dig example.com / nslookup example.comDNS 조회
curl -I https://example.com응답 헤더만
curl -s https://api.example.com | jqAPI 요청과 보기 좋은 JSON
wget URL파일 다운로드
traceroute example.com호스트까지 패킷 경로
ssh user@host서버에 접속
ssh-keygen -t ed25519SSH 키 쌍 생성
scp file user@host:/tmp/서버로 파일 복사
rsync -avz dir/ user@host:/srv/dir/디렉터리 동기화
sudo ufw status방화벽 규칙

시스템과 디스크

ead>
명령어기능
uname -a커널과 아키텍처
cat /etc/os-release배포판과 버전
hostnamectl호스트 이름과 시스템 정보
lsblk디스크와 파티션
sudo mount /dev/sdb1 /mnt파티션 마운트
who / w지금 접속한 사용자
sudo reboot / sudo shutdown -h now재부팅 / 종료

요약

일상 작업에는 스무 개 남짓한 명령이면 충분합니다: ls, cd, cp, mv, rm, chmod, sudo, apt, ps, kill, systemctl, journalctl, grep, find, ss, curl, ssh. 이 리눅스 명령어 정리를 저장해 두고, 명령이 손에 익을 때까지 참고하세요. 명령어 그룹 전체는 강의에서 실습과 함께 다룹니다.

자주 묻는 질문

man이나 less에서 어떻게 나가나요?

<code>q</code>를 누르세요. 안에서 검색하려면 슬래시와 단어를 입력하고, <code>n</code>은 다음 일치 항목으로 이동합니다.

vim 편집기는 어떻게 종료하나요?

<code>Esc</code>를 누른 뒤 저장하지 않고 나가려면 <code>:q!</code>, 저장하고 나가려면 <code>:wq</code>를 입력하고 Enter를 누르세요. 처음에는 nano로 파일을 편집하는 것이 더 쉽습니다.

rm -rf는 왜 위험한가요?

확인 없이, 휴지통 없이 삭제합니다. 경로의 작은 실수(예: 별표 앞의 공백)가 엉뚱한 디렉터리를 지울 수 있습니다. 실행 전에 <code>ls</code>로 경로를 확인하세요.

마지막 명령을 sudo와 함께 다시 실행하려면?

<code>sudo !!</code>를 입력하세요. 셸이 이전 명령 전체를 그 자리에 넣어 줍니다.

터미널에서 멈춘 명령을 어떻게 중단하나요?

<code>Ctrl+C</code>는 중단 신호를 보냅니다. 응답이 없다면 다른 터미널에서 <code>ps</code>나 <code>pgrep</code>으로 PID를 찾아 <code>kill</code>로 종료하세요.