리눅스 필수 명령어 가이드: 배포판별 비교

같은 리눅스, 다른 명령어

리눅스는 하나가 아닙니다. Ubuntu, CentOS/RHEL, Alpine, Arch 등 배포판마다 패키지 관리자와 서비스 관리 명령이 다릅니다. 서버를 운영하다 보면 여러 배포판을 동시에 다루는 경우가 흔하므로, 배포판별 차이를 알아두는 것이 중요합니다.

이 글에서는 실무에서 자주 사용하는 명령어를 카테고리별로 정리하고, 주요 배포판 간 차이를 비교합니다.

주요 배포판과 패키지 관리자

배포판 계열대표 배포판패키지 관리자패키지 형식용도
Debian 계열Ubuntu, Debianapt.deb서버, 데스크톱
Red Hat 계열RHEL, CentOS, Rocky, Almadnf (구 yum).rpm기업 서버
AlpineAlpine Linuxapk.apkDocker 컨테이너
Arch 계열Arch, Manjaropacman.pkg.tar.zst데스크톱, 최신 패키지

패키지 관리

가장 큰 차이가 나는 영역입니다. 동일한 작업이라도 배포판마다 명령어가 완전히 다릅니다.

# === 패키지 설치 ===
# Debian/Ubuntu
sudo apt update && sudo apt install -y nginx

# RHEL/CentOS/Rocky (8+)
sudo dnf install -y nginx

# Alpine
apk add nginx

# Arch
sudo pacman -S nginx
# === 패키지 검색 ===
# Debian/Ubuntu
apt search nginx

# RHEL/CentOS
dnf search nginx

# Alpine
apk search nginx

# Arch
pacman -Ss nginx
작업apt (Debian/Ubuntu)dnf (RHEL/CentOS)apk (Alpine)pacman (Arch)
저장소 갱신apt updatednf check-updateapk updatepacman -Sy
패키지 설치apt install pkgdnf install pkgapk add pkgpacman -S pkg
패키지 삭제apt remove pkgdnf remove pkgapk del pkgpacman -R pkg
전체 업그레이드apt upgradednf upgradeapk upgradepacman -Syu
설치된 목록apt list --installeddnf list installedapk infopacman -Q
패키지 검색apt search keyworddnf search keywordapk search keywordpacman -Ss keyword
캐시 정리apt cleandnf clean allapk cache cleanpacman -Sc

서비스 관리 (systemctl)

대부분의 최신 배포판은 systemd를 사용하므로 systemctl 명령이 공통입니다. 예외는 Alpine으로, 기본 init 시스템이 OpenRC입니다.

# === systemd 기반 (Ubuntu, CentOS, Arch 등 대부분) ===
sudo systemctl start nginx       # 서비스 시작
sudo systemctl stop nginx        # 서비스 중지
sudo systemctl restart nginx     # 재시작
sudo systemctl status nginx      # 상태 확인
sudo systemctl enable nginx      # 부팅 시 자동 시작
sudo systemctl disable nginx     # 자동 시작 해제

# === OpenRC (Alpine Linux) ===
rc-service nginx start           # 서비스 시작
rc-service nginx stop            # 서비스 중지
rc-service nginx restart         # 재시작
rc-service nginx status          # 상태 확인
rc-update add nginx default      # 부팅 시 자동 시작
rc-update del nginx default      # 자동 시작 해제
작업systemd (대부분)OpenRC (Alpine)
시작systemctl start svcrc-service svc start
중지systemctl stop svcrc-service svc stop
상태systemctl status svcrc-service svc status
자동 시작systemctl enable svcrc-update add svc default
로그 확인journalctl -u svccat /var/log/svc.log

공통 필수 명령어

패키지 관리와 서비스 관리를 제외하면, 대부분의 명령어는 배포판과 무관하게 동일합니다.

파일 및 디렉토리

# 파일 목록 (상세, 숨김 포함, 사람이 읽기 쉬운 크기)
ls -lah

# 디렉토리 이동 / 생성 / 삭제
cd /var/log
mkdir -p /opt/app/config    # 중간 경로까지 자동 생성
rm -rf /tmp/old-build       # 강제 삭제 (주의!)

# 파일 복사 / 이동 / 이름 변경
cp config.yaml config.yaml.bak
mv old-name.txt new-name.txt

# 파일 내용 확인
cat /etc/hostname            # 전체 출력
head -20 /var/log/syslog     # 처음 20줄
tail -f /var/log/nginx/access.log  # 실시간 로그 추적

# 파일 검색
find /var/log -name "*.log" -mtime +30 -type f   # 30일 이상 된 .log 파일

텍스트 처리

# grep: 텍스트 검색
grep -rn "error" /var/log/app/     # 재귀 검색 + 줄번호 표시
grep -i "warning" app.log          # 대소문자 무시

# awk: 컬럼 기반 처리
df -h | awk '{print $1, $5}'       # 디스크별 사용률만 추출
# /dev/sda1 42%

# sed: 텍스트 치환
sed -i 's/localhost/0.0.0.0/g' config.yaml  # 파일 내 문자열 치환

# wc: 줄/단어/바이트 수
wc -l /var/log/syslog              # 줄 수 카운트

# sort + uniq: 정렬 후 중복 제거
cat access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -10
# IP별 접속 횟수 상위 10개

시스템 모니터링

# 디스크 사용량
df -h                              # 파일시스템별 사용량
du -sh /var/log/*                  # 디렉토리별 크기

# 메모리 사용량
free -h                            # 전체/사용/여유 메모리
# total: 16Gi, used: 8.2Gi, free: 2.1Gi, available: 7.3Gi

# CPU / 프로세스
top                                # 실시간 프로세스 모니터
htop                               # top의 향상 버전 (설치 필요)
ps aux | grep nginx                # 특정 프로세스 검색

# 네트워크
ss -tlnp                           # 열린 포트 확인 (netstat 대체)
curl -I https://example.com        # HTTP 헤더 확인
ping -c 4 8.8.8.8                  # 네트워크 연결 테스트
명령어용도자주 쓰는 옵션
df -h디스크 사용량-h 사람이 읽기 쉬운 단위
free -h메모리 사용량-h 사람이 읽기 쉬운 단위
top / htop실시간 프로세스htop 권장 (색상, 마우스)
ss -tlnp열린 포트-t TCP, -l 리슨, -n 숫자, -p 프로세스
journalctl시스템 로그-u svc 서비스별, -f 실시간

사용자 및 권한

# 사용자 추가/삭제
sudo useradd -m -s /bin/bash deploy     # 홈 디렉토리 생성 + 기본 셸 지정
sudo passwd deploy                       # 비밀번호 설정
sudo userdel -r deploy                   # 사용자 + 홈 디렉토리 삭제

# 그룹 관리
sudo usermod -aG docker deploy          # deploy 사용자를 docker 그룹에 추가

# 파일 권한
chmod 755 script.sh                     # rwxr-xr-x
chmod 600 .env                          # rw------- (소유자만 읽기/쓰기)
chown deploy:deploy /opt/app -R         # 소유자/그룹 변경 (재귀)
권한 숫자의미일반적 용도
755rwxr-xr-x실행 파일, 디렉토리
644rw-r—r—일반 파일, 설정 파일
600rw-------비밀키, .env 파일
700rwx------.ssh 디렉토리

정리

리눅스 명령어의 핵심은 패키지 관리자만 배포판별로 다르고, 나머지는 거의 동일하다는 점입니다.

  • 패키지 관리: apt(Ubuntu) vs dnf(RHEL) vs apk(Alpine) vs pacman(Arch)
  • 서비스 관리: 대부분 systemctl, Alpine만 rc-service/rc-update
  • 파일/텍스트/시스템 명령어: ls, grep, find, df, free 등은 모든 배포판 공통
  • 서버 운영 시 가장 자주 쓰는 조합: tail -f(로그), grep -rn(검색), df -h(디스크), ss -tlnp(포트)
  • 권한 관리: chmod 600으로 민감 파일 보호, chown으로 소유자 설정

이 글이 도움이 되었나요?