게임서버 운영자용 리눅스 기초 명령어 20개 - 디스코드 봇·게임서버 굴릴 때 진짜 쓰는 것만! (Ubuntu 26.04 LTS) 🐧
목차11개 항목
안녕하세요! Mojangcam입니다 😎
지난번 파이썬 VPS 배포 입문 - 디스코드 봇·자동화 스크립트 24시간 돌리기 (Ubuntu + systemd) 글에서 VPS에 봇을 올려서 24시간 돌리는 법을 다뤘어요. 그런데 막상 서버를 하나 빌리고 나면 이런 생각이 들죠.
"검은 화면만 뜨는데... 여기서 뭘 쳐야 하지? 😱"
그래서 이번 편에서는 게임서버·봇 운영자가 실제로 매일 쓰는 리눅스 명령어 20개만 딱 골라서 정리했어요. 리눅스 교과서에 나오는 100개짜리 목록이 아니라, "봇이 죽었는데 왜 죽었지?", "디스크가 꽉 찼대요", "서버 재부팅했는데 봇이 안 켜져요" 같은 실제 상황에서 손이 가는 것들만 담았습니다.

📌 준비물
- Ubuntu 26.04 LTS (코드명 Resolute Raccoon, 2026-04-23 출시) 기준으로 작성했어요. 24.04 LTS·22.04 LTS에서도 거의 그대로 동작합니다.
- SSH 접속 가능한 서버 1대 (VPS, 라즈베리파이, 집에 남는 미니PC 다 OK)
- 윈도우라면 PowerShell 또는 Windows Terminal에 기본 내장된
ssh명령
# 서버 접속 (가장 먼저 하는 일)
ssh 사용자명@서버IP
# 포트가 22가 아니라면
ssh -p 2222 사용자명@서버IP💡 접속하자마자
sudo apt update && sudo apt upgrade -y한 번 돌려두세요. 보안 패치는 미루면 손해예요.
📌 1단계 - 길 찾기 (여기가 어디죠?)
터미널에 들어가면 제일 먼저 헷갈리는 게 "지금 내가 어느 폴더에 있나"예요.
pwd # 현재 위치 출력 (예: /home/mojang)
ls -alh # 현재 폴더 목록 (숨김파일 + 용량 읽기 쉽게)
cd /opt/discordbot # 폴더 이동
cd .. # 상위 폴더로
cd ~ # 내 홈 폴더로 한 방에하나씩 뜯어볼게요 💡
- pwd : print working directory. 지금 서 있는 위치를 알려줘요.
- ls -alh :
-a는 숨김파일(.env 같은 것!)까지,-l은 권한·크기 자세히,-h는 용량을1.2G처럼 사람이 읽기 좋게. - cd ~ :
~는 내 홈 디렉터리(/home/사용자명)를 뜻하는 단축기호예요.
💡 경로를 다 치지 마세요. 몇 글자 치고 Tab 키를 누르면 자동완성됩니다. 이거 하나로 삶이 편해져요 🙌
📌 2단계 - 파일 다루기 (봇 코드 올리고 고치기)
mkdir -p /opt/discordbot/logs # 폴더 만들기 (-p: 중간 경로까지 한번에)
cp config.example .env # 복사
mv old_bot.py backup_bot.py # 이름 변경 / 이동
rm -rf __pycache__ # 삭제 (되돌리기 없음!)
cat .env # 파일 내용 그냥 출력
nano bot.py # 파일 편집 (Ctrl+O 저장, Ctrl+X 종료)하나씩 뜯어볼게요 💡
- rm -rf : 리눅스에서 가장 위험한 명령어예요. 휴지통이 없어요. 지우기 전에
ls로 경로를 한 번 확인하는 습관을 들이세요. - nano : 초보자에게 가장 편한 편집기.
vim은 나중에 배워도 늦지 않아요. - cat vs less : 파일이 길면
cat대신less 파일명을 쓰세요. 화살표로 스크롤,q로 종료됩니다.
🧩 내 PC에서 서버로 파일 보내기 (scp)
# 내 컴퓨터(PowerShell)에서 실행 — 서버로 업로드
scp C:\Users\me\bot.py 사용자명@서버IP:/opt/discordbot/
# 폴더째 올릴 땐 -r
scp -r C:\Users\me\mybot 사용자명@서버IP:/opt/📌 3단계 - 권한 (Permission denied가 뜨는 이유)
리눅스 입문자가 가장 많이 만나는 벽이 권한이에요.
chmod +x start.sh # 실행 권한 주기
chmod 600 .env # 나만 읽고 쓰기 (토큰 파일 필수!)
chown -R mojang:mojang /opt/discordbot # 소유자 통째로 변경
sudo 명령어 # 관리자 권한으로 실행하나씩 뜯어볼게요 💡
- chmod 600 : 숫자는
소유자-그룹-기타순서예요.6은 읽기(4)+쓰기(2),0은 아무 권한 없음. 즉 나만 볼 수 있는 파일이 됩니다. - .env는 반드시 600으로 두세요. 디스코드 봇 토큰이 들어있는 파일이 다른 사용자에게 읽히면 서버가 통째로 털립니다.
- sudo : 매번 붙이지 말고, 정말 시스템을 건드릴 때만 쓰세요.
# .env 예시 (토큰은 절대 코드에 직접 쓰지 않기!)
cat > /opt/discordbot/.env << 'EOF'
token=여기에_봇_토큰
EOF
chmod 600 /opt/discordbot/.env파이썬 쪽에서는 이렇게 불러오면 돼요. (pip install python-dotenv 필요)
# python-dotenv 1.2.x / Python 3.10+
from dotenv import load_dotenv
import os
load_dotenv()
token = os.getenv("token")💡
.env는.gitignore에 꼭 추가하세요. 깃허브에 토큰 올라가면 디스코드가 자동으로 토큰을 무효화시킵니다.
📌 4단계 - 프로세스·서비스 (봇이 살아있나요?)
운영자가 제일 자주 쓰는 구간이에요.
htop # 실시간 CPU·메모리 모니터 (q로 종료)
ps aux | grep python # 파이썬 프로세스 찾기
kill -9 12345 # PID 12345 강제 종료
sudo systemctl status discordbot # 서비스 상태 확인
sudo systemctl restart discordbot # 재시작
sudo systemctl enable discordbot # 부팅 시 자동 시작 등록
journalctl -u discordbot -n 50 -f # 로그 실시간 보기하나씩 뜯어볼게요 💡
- htop : 없으면
sudo apt install htop으로 설치.top보다 훨씬 보기 편해요. - ps aux | grep python :
|(파이프)는 앞 명령 결과를 뒤 명령에 넘기는 기호예요. "전체 프로세스 목록에서 python이 든 줄만 보여줘"라는 뜻. - journalctl -f :
-f는 follow, 즉 로그가 새로 쌓이는 걸 실시간으로 따라가요. 봇이 죽는 순간을 잡는 최고의 도구입니다. - systemctl enable : 이걸 안 걸어두면 서버 재부팅 후 봇이 안 켜져요. 가장 흔한 사고입니다.
📌 5단계 - 디스크·네트워크 ("용량 꽉 찼대요")
df -h # 디스크 전체 사용량
du -sh /opt/discordbot/* # 폴더별 용량 (범인 찾기)
free -h # 메모리 사용량
ss -tulpn # 열려있는 포트 확인
curl ifconfig.me # 서버 공인 IP 확인하나씩 뜯어볼게요 💡
- df -h :
Use%가 90%를 넘으면 위험 신호예요. - du -sh : 용량 범인은 대부분 로그 파일입니다. 게임서버 로그는 며칠만 방치해도 GB 단위로 불어나요.
- ss -tulpn : 게임서버 포트(예: 아크 7777, 마크 25565)가 실제로 열려있는지 확인할 때 씁니다.

📌 전체 코드 (복붙 OK)
서버에 처음 접속했을 때 그대로 돌릴 수 있는 초기 세팅 스크립트예요.
#!/bin/bash
# Ubuntu 26.04 LTS / 24.04 LTS 공용 — 게임서버·봇 운영 기본 세팅
set -e
echo "[1/5] 패키지 업데이트"
sudo apt update && sudo apt upgrade -y
echo "[2/5] 운영 필수 도구 설치"
sudo apt install -y htop curl git unzip python3-pip python3-venv
echo "[3/5] 작업 폴더 생성"
sudo mkdir -p /opt/discordbot/logs
sudo chown -R "$USER":"$USER" /opt/discordbot
echo "[4/5] 파이썬 가상환경 준비"
cd /opt/discordbot
python3 -m venv venv
./venv/bin/pip install --upgrade pip
./venv/bin/pip install python-dotenv
echo "[5/5] .env 자리 만들기 (토큰은 직접 입력하세요)"
[ -f .env ] || printf 'token=\n' > .env
chmod 600 .env
echo "완료! nano /opt/discordbot/.env 로 토큰을 넣어주세요."저장하고 실행하는 법이에요.
nano setup.sh # 위 내용 붙여넣기 → Ctrl+O, Enter, Ctrl+X
chmod +x setup.sh
./setup.sh📌 실행 결과
스크립트가 끝나면 /opt/discordbot 폴더에 venv와 권한 600짜리 .env가 만들어져 있어요. ls -alh로 확인하면 .env 권한이 -rw-------로 표시됩니다. 여기에 토큰만 넣고 systemd 서비스를 등록하면 24시간 봇 운영 준비 끝이에요 🙌

📌 자주 나는 에러
1. Permission denied
- 원인: 실행 권한이 없거나, 남의 소유 폴더를 건드리는 중
- 해결:
chmod +x 파일명또는sudo chown -R $USER:$USER 폴더명
2. command not found: htop
- 원인: 패키지가 설치되어 있지 않음
- 해결:
sudo apt install htop(그래도 안 되면sudo apt update먼저)
3. 서버 재부팅 후 봇이 안 켜져요
- 원인: systemd 서비스에
enable을 안 걸어둠 - 해결:
sudo systemctl enable 서비스명후sudo systemctl is-enabled 서비스명으로enabled확인
4. No space left on device
- 원인: 로그 파일 누적
- 해결:
du -sh /var/log/*로 범인 찾고sudo journalctl --vacuum-time=7d로 7일치만 남기기
5. SSH 접속이 갑자기 안 돼요
- 원인: 방화벽 규칙 변경 또는 포트 변경
- 해결: VPS 웹 콘솔로 접속해
sudo ufw status,sudo ss -tulpn | grep sshd확인
📌 마무리
오늘은 게임서버·디스코드 봇 운영자가 진짜로 매일 쓰는 리눅스 명령어 20개를 정리했어요. 정리하면 이렇게 5덩어리예요.
- 길 찾기:
pwdls -alhcd - 파일:
mkdircpmvrmcatnanoscp - 권한:
chmodchownsudo - 프로세스:
htoppskillsystemctljournalctl - 자원:
df -hdu -shfree -hss -tulpncurl
이 20개만 손에 익으면 서버 운영의 90%는 해결됩니다. 나머지 10%는 검색으로 충분해요 😎
다음 편에서는 서버가 꺼져도 자동으로 살아나게 만드는 자동 재시작·백업 스크립트를 다뤄볼게요. cron과 systemd timer로 매일 새벽에 백업을 뜨는 실전 구성입니다. 기대해주세요 🙌
💬 궁금한 명령어나 막히는 부분 있으면 댓글로 남겨주세요!
