리눅스 시스템 관리자용 명령어 정리
리눅스 시스템을 다루는 관리자는 단순히 파일을 조작하는 수준을 넘어,
서버 자원 관리, 네트워크 점검, 보안 설정, 자동화까지 모두 명령어로 제어할 수 있어야 한다.
이 글에서는 실무에서 자주 쓰이는 핵심 관리 명령어를 한눈에 볼 수 있게 정리했다.
파일 및 디렉터리 관리
기본 조작 명령어
| 명령어 |
설명 |
예시 |
ls -al |
숨김 파일 포함 목록 보기 |
ls -al /etc |
cd |
디렉터리 이동 |
cd /var/log |
pwd |
현재 위치 출력 |
pwd |
mkdir |
새 디렉터리 생성 |
mkdir /data/backup |
cp -r |
디렉터리 복사 |
cp -r /etc/nginx /backup/ |
mv |
파일 이동 또는 이름 변경 |
mv access.log old_access.log |
rm -rf |
강제 삭제 |
rm -rf /tmp/* |
검색 및 내용 조회
| 명령어 |
설명 |
예시 |
find |
파일 검색 |
find / -name "*.conf" |
grep |
텍스트 패턴 검색 |
grep -R "Listen" /etc/httpd/ |
cat, less, head, tail |
파일 내용 출력 |
tail -f /var/log/syslog |
locate |
인덱스 기반 빠른 파일 검색 |
locate nginx.conf |
시스템 정보 및 리소스 확인
CPU, 메모리, 디스크 상태 확인
| 명령어 |
설명 |
예시 |
top, htop |
실시간 프로세스 상태 |
top |
vmstat |
메모리, CPU, IO 상태 |
vmstat 1 |
free -h |
메모리 사용량 |
free -h |
df -h |
디스크 사용 현황 |
df -h |
du -sh * |
디렉터리별 용량 |
du -sh /var/* |
iostat |
입출력(IO) 통계 |
iostat -xz 1 |
uptime |
서버 가동 시간 |
uptime |
lscpu |
CPU 정보 |
lscpu |
프로세스 및 서비스 관리
| 명령어 |
설명 |
예시 |
ps aux |
모든 프로세스 목록 |
`ps aux |
kill / killall |
프로세스 종료 |
kill -9 1234 |
systemctl status |
서비스 상태 확인 |
systemctl status nginx |
systemctl restart |
서비스 재시작 |
systemctl restart sshd |
journalctl -xe |
시스템 로그 확인 |
`journalctl -xe |
service |
전통적인 서비스 제어 |
service apache2 restart |
사용자 및 권한 관리
| 명령어 |
설명 |
예시 |
useradd |
새 사용자 생성 |
useradd adminuser |
passwd |
비밀번호 설정 |
passwd adminuser |
usermod -aG |
그룹 추가 |
usermod -aG sudo adminuser |
chown |
소유자 변경 |
chown root:root /etc/secure.conf |
chmod |
파일 권한 변경 |
chmod 600 /etc/secure.conf |
sudo |
관리자 권한 실행 |
sudo systemctl restart sshd |
visudo |
sudoers 설정 파일 편집 |
visudo |
네트워크 및 보안 관리
네트워크 진단
| 명령어 |
설명 |
예시 |
ip addr |
IP 설정 확인 |
ip addr show eth0 |
ping |
연결 테스트 |
ping 8.8.8.8 |
netstat -tuln |
열려 있는 포트 확인 |
netstat -tuln |
ss -tulpn |
소켓 연결 상태 확인 |
`ss -tulpn |
curl |
HTTP 요청 테스트 |
curl -I https://example.com |
traceroute |
경로 추적 |
traceroute google.com |
방화벽 관리
| 명령어 |
설명 |
예시 |
ufw enable |
방화벽 활성화 |
ufw enable |
ufw allow |
특정 포트 허용 |
ufw allow 22/tcp |
ufw status |
방화벽 상태 확인 |
ufw status verbose |
iptables -L |
iptables 룰 보기 |
iptables -L -n |
패키지 및 업데이트 관리 (Debian/Ubuntu 기준)
| 명령어 |
설명 |
예시 |
apt update |
패키지 목록 갱신 |
sudo apt update |
apt upgrade |
패키지 업데이트 |
sudo apt upgrade |
apt install |
패키지 설치 |
sudo apt install nginx |
apt remove |
패키지 제거 |
sudo apt remove nginx |
apt autoremove |
불필요한 패키지 정리 |
sudo apt autoremove |
dpkg -l |
설치된 패키지 목록 |
`dpkg -l |
로그 및 시스템 모니터링
| 명령어 |
설명 |
예시 |
tail -f |
로그 실시간 모니터링 |
tail -f /var/log/syslog |
dmesg |
커널 로그 확인 |
`dmesg |
last |
로그인 기록 확인 |
last -a |
who, w |
현재 로그인 사용자 확인 |
w |
sar |
시스템 리소스 분석 (sysstat 패키지 필요) |
sar -u 1 3 |
압축 및 백업 관련 명령어
| 명령어 |
설명 |
예시 |
tar -czf |
디렉터리 압축 |
tar -czf backup.tar.gz /home |
tar -xzf |
압축 해제 |
tar -xzf backup.tar.gz |
rsync -avz |
백업 및 동기화 |
rsync -avz /var/www /backup/ |
scp |
SSH 기반 파일 복사 |
scp file.txt user@host:/path/ |
dd |
디스크 복제 및 이미지 생성 |
dd if=/dev/sda of=/backup/sda.img |
자동화 및 작업 스케줄링
| 명령어 |
설명 |
예시 |
crontab -e |
주기적 작업 등록 |
0 2 * * * /usr/bin/backup.sh |
crontab -l |
등록된 작업 확인 |
crontab -l |
at |
1회성 예약 작업 |
`echo “reboot” |
systemctl enable |
부팅 시 서비스 자동 실행 |
systemctl enable nginx |
보안 및 권한 강화 팁
※ /etc/sudoers 편집 시 visudo 사용 (문법 오류 방지)
※ chmod 600으로 SSH 키 파일 보호
※ 불필요한 포트 차단: ufw deny 23/tcp
※ root 계정 직접 로그인 비활성화: PermitRootLogin no
답글 남기기