คำสั่ง Linux
คำสั่ง Linux / server ที่ใช้จริง ค้นหาได้ อธิบายเป็นภาษาไทย
ls -lahแสดงไฟล์ทั้งหมดรวมไฟล์ซ่อน พร้อมขนาดแบบอ่านง่าย · ไฟล์ & โฟลเดอร์
cd -กลับไปโฟลเดอร์ก่อนหน้า · ไฟล์ & โฟลเดอร์
mkdir -p a/b/cสร้างโฟลเดอร์ซ้อนกันทีเดียว ไม่ error ถ้ามีอยู่แล้ว · ไฟล์ & โฟลเดอร์
cp -a src/ dest/คัดลอกโฟลเดอร์ทั้งหมด รักษาสิทธิ์ เจ้าของ และเวลาไฟล์ · ไฟล์ & โฟลเดอร์
mv old.txt new.txtย้ายหรือเปลี่ยนชื่อไฟล์ · ไฟล์ & โฟลเดอร์
rm -rf folder/ระวัง ลบโฟลเดอร์และทุกอย่างข้างในทันที กู้คืนไม่ได้ ตรวจ path ให้แน่ก่อนกด · ไฟล์ & โฟลเดอร์
ln -s /path/target linkสร้าง symbolic link (ทางลัด) · ไฟล์ & โฟลเดอร์
touch file.txtสร้างไฟล์ว่าง หรืออัปเดตเวลาแก้ไขของไฟล์เดิม · ไฟล์ & โฟลเดอร์
tree -L 2แสดงโครงสร้างโฟลเดอร์ลึก 2 ชั้น · ไฟล์ & โฟลเดอร์
tail -f /var/log/syslogดูท้ายไฟล์แบบสด เหมาะกับดู log ที่กำลังเขียน · ดูไฟล์ & ค้นหา
less +G file.logเปิดไฟล์ยาวแบบเลื่อนดูได้ เริ่มที่ท้ายไฟล์ (กด q ออก) · ดูไฟล์ & ค้นหา
head -n 50 fileดู 50 บรรทัดแรก · ดูไฟล์ & ค้นหา
grep -rn "keyword" .ค้นข้อความในทุกไฟล์ของโฟลเดอร์ บอกชื่อไฟล์และเลขบรรทัด · ดูไฟล์ & ค้นหา
grep -v "^#" file | grep .ดูไฟล์ config โดยตัดบรรทัด comment และบรรทัดว่าง · ดูไฟล์ & ค้นหา
find . -name "*.log" -mtime +7หาไฟล์ .log ที่แก้ไขเกิน 7 วัน · ดูไฟล์ & ค้นหา
find / -type f -size +500M 2>/dev/nullหาไฟล์ใหญ่เกิน 500 MB ทั้งเครื่อง · ดูไฟล์ & ค้นหา
find . -name "*.tmp" -deleteระวัง หาและลบไฟล์ .tmp ทั้งหมด ลองรันโดยไม่มี -delete ก่อน · ดูไฟล์ & ค้นหา
wc -l fileนับจำนวนบรรทัด · ดูไฟล์ & ค้นหา
diff -u a.conf b.confเทียบความต่างของสองไฟล์ · ดูไฟล์ & ค้นหา
awk '{print $1}' access.log | sort | uniq -c | sort -rn | headนับ IP ที่เข้าเว็บมากที่สุด 10 อันดับจาก access log · ดูไฟล์ & ค้นหา
sed -i 's/old/new/g' fileระวัง แทนที่ข้อความในไฟล์ทันที (แก้ไฟล์จริง) · ดูไฟล์ & ค้นหา
chmod 755 script.shเจ้าของ อ่าน/เขียน/รัน คนอื่นอ่าน/รันได้ (ใช้ chmod calculator ช่วยคิด) · สิทธิ์ & ผู้ใช้
chmod -R u+rwX,go+rX,go-w dir/ตั้งสิทธิ์โฟลเดอร์แบบปลอดภัย: โฟลเดอร์ 755 ไฟล์ 644 · สิทธิ์ & ผู้ใช้
chown -R www:www /www/wwwroot/siteเปลี่ยนเจ้าของไฟล์ทั้งโฟลเดอร์เป็น user www · สิทธิ์ & ผู้ใช้
whoami && idดูว่าตอนนี้เป็น user ไหน อยู่กลุ่มอะไร · สิทธิ์ & ผู้ใช้
sudo -u www bashสลับไปเป็น user www เพื่อทดสอบสิทธิ์ · สิทธิ์ & ผู้ใช้
adduser deploy && usermod -aG sudo deployสร้าง user ใหม่และให้สิทธิ์ sudo · สิทธิ์ & ผู้ใช้
lsattr file && chattr -i fileดูและปลดล็อกไฟล์ที่ถูกตั้ง immutable (ลบ/แก้ไม่ได้แม้เป็น root) · สิทธิ์ & ผู้ใช้
uname -a && cat /etc/os-releaseดูเวอร์ชันเคอร์เนลและ OS · ระบบ & ทรัพยากร
uptimeเครื่องเปิดมานานเท่าไร และ load average · ระบบ & ทรัพยากร
free -hดู RAM และ swap ที่ใช้อยู่ · ระบบ & ทรัพยากร
htopดู CPU / RAM / process แบบ interactive · ระบบ & ทรัพยากร
nprocจำนวน CPU core · ระบบ & ทรัพยากร
timedatectl set-timezone Asia/Bangkokตั้งเขตเวลาเป็นไทย · ระบบ & ทรัพยากร
crontab -eแก้ตารางงานอัตโนมัติของ user (ใช้ Cron Builder ช่วยเขียน) · ระบบ & ทรัพยากร
df -hดูพื้นที่ดิสก์แต่ละพาร์ทิชัน · ดิสก์
du -sh * | sort -hดูขนาดแต่ละไฟล์/โฟลเดอร์ เรียงเล็กไปใหญ่ · ดิสก์
du -xh / --max-depth=2 2>/dev/null | sort -h | tail -20หาโฟลเดอร์ที่กินที่มากที่สุดทั้งเครื่อง · ดิสก์
ncdu /สำรวจดิสก์แบบ interactive (ต้องติดตั้ง ncdu) · ดิสก์
journalctl --vacuum-size=200Mระวัง ลด log ของ systemd ให้เหลือไม่เกิน 200 MB · ดิสก์
lsof +L1หาไฟล์ที่ถูกลบแล้วแต่ process ยังถืออยู่ (สาเหตุดิสก์ไม่คืน) · ดิสก์
ps aux --sort=-%mem | headprocess ที่ใช้ RAM มากสุด · Process
ps aux --sort=-%cpu | headprocess ที่ใช้ CPU มากสุด · Process
pgrep -af nodeหา process ตามชื่อ พร้อมคำสั่งเต็ม · Process
kill -15 PIDขอให้ process ปิดตัวอย่างสุภาพ · Process
kill -9 PIDระวัง บังคับปิด process ทันที (ใช้เมื่อ -15 ไม่ได้ผล) · Process
nohup cmd > out.log 2>&1 &รันคำสั่งเบื้องหลัง ไม่ตายเมื่อปิด SSH · Process
tmux new -s workเปิด session ที่ค้างไว้ได้แม้หลุด SSH (tmux attach -t work เพื่อกลับมา) · Process
ss -tulpnดูพอร์ตที่เปิดรออยู่ และ process ที่ใช้ · Network
ss -tulpn | grep :80ดูว่าใครใช้พอร์ต 80 · Network
curl -I https://example.comดู HTTP header ของเว็บ · Network
curl -sS -o /dev/null -w "%{http_code} %{time_total}s\n" https://example.comดู status code และเวลาโหลด · Network
dig +short example.comดู IP ที่โดเมนชี้ไป · Network
dig TXT example.com +shortดู TXT record (SPF, verify) · Network
ip aดู IP ของเครื่อง · Network
ping -c 4 1.1.1.1ทดสอบเชื่อมต่ออินเทอร์เน็ต 4 ครั้ง · Network
mtr example.comไล่เส้นทาง network และจุดที่ช้า · Network
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -datesดูวันหมดอายุ SSL certificate · Network
systemctl status nginxดูสถานะ service · systemd & log
systemctl restart nginxรีสตาร์ต service · systemd & log
systemctl enable --now appเปิด service และให้เริ่มเองตอนบูต · systemd & log
systemctl list-units --failedดู service ที่ล้มเหลว · systemd & log
journalctl -u nginx -fดู log ของ service แบบสด · systemd & log
journalctl -u app --since "1 hour ago"ดู log ของ service ย้อนหลัง 1 ชั่วโมง · systemd & log
systemctl list-timersดูงานตั้งเวลาของ systemd · systemd & log
nginx -tตรวจ config nginx ว่าถูกต้อง ทำทุกครั้งก่อน reload · nginx
nginx -t && nginx -s reloadตรวจแล้ว reload แบบไม่ตัดผู้ใช้ · nginx
nginx -T | grep server_nameดูทุกโดเมนที่ nginx ให้บริการ · nginx
tail -f /var/log/nginx/error.logดู error ของ nginx แบบสด · nginx
ssh-keygen -t ed25519 -C "me@laptop"สร้าง SSH key แบบใหม่และปลอดภัย · SSH & คัดลอก
ssh-copy-id user@serverส่ง public key ไปเซิร์ฟเวอร์ เพื่อล็อกอินไม่ต้องใช้รหัส · SSH & คัดลอก
ssh -L 5432:localhost:5432 user@serverทำ tunnel ใช้ฐานข้อมูลบนเซิร์ฟเวอร์จากเครื่องเรา · SSH & คัดลอก
scp file.zip user@server:/tmp/คัดลอกไฟล์ไปเซิร์ฟเวอร์ · SSH & คัดลอก
rsync -avz --progress src/ user@server:/path/ซิงก์โฟลเดอร์ไปเซิร์ฟเวอร์ ส่งเฉพาะที่เปลี่ยน · SSH & คัดลอก
rsync -avz --delete src/ dest/ระวัง ซิงก์และลบไฟล์ปลายทางที่ไม่มีในต้นทาง ลอง --dry-run ก่อน · SSH & คัดลอก
tar -czf backup.tar.gz folder/บีบอัดโฟลเดอร์เป็น .tar.gz · บีบอัด
tar -xzf backup.tar.gz -C /destแตกไฟล์ .tar.gz ไปโฟลเดอร์ที่กำหนด · บีบอัด
tar -tzf backup.tar.gz | headดูไฟล์ข้างใน .tar.gz โดยไม่แตก · บีบอัด
zip -r site.zip folder/ -x "*/node_modules/*"zip โฟลเดอร์ ยกเว้น node_modules · บีบอัด
unzip file.zip -d out/แตกไฟล์ zip · บีบอัด
ufw status verboseดูกฎ firewall · Firewall
ufw allow 22/tcp && ufw enableเปิดพอร์ต SSH ก่อนแล้วค่อยเปิด firewall (กันล็อกตัวเองออก) · Firewall
ufw allow from 1.2.3.4 to any port 5432อนุญาตเฉพาะ IP เดียวเข้าพอร์ตฐานข้อมูล · Firewall
fail2ban-client status sshdดู IP ที่ถูกแบนเพราะเดารหัส SSH · Firewall
docker ps -aดู container ทั้งหมด · Docker
docker logs -f --tail 100 appดู log ของ container แบบสด · Docker
docker exec -it app shเข้าไปใน container · Docker
docker compose up -d --buildbuild และรันทุก service ใน compose เบื้องหลัง · Docker
docker system dfดูพื้นที่ที่ docker ใช้ · Docker
docker system prune -aระวัง ลบ image/container ที่ไม่ใช้ทั้งหมด คืนพื้นที่ดิสก์ · Docker
git status -sbดูสถานะแบบสั้น · Git
git log --oneline --graph -20ดูประวัติ commit แบบกราฟ · Git
git diff --statสรุปไฟล์ที่เปลี่ยน · Git
git stash && git pull --rebase && git stash popเก็บงานค้าง ดึงโค้ดล่าสุด แล้วเอางานคืน · Git
git commit --amend --no-editเพิ่มไฟล์เข้า commit ล่าสุดโดยไม่เปลี่ยนข้อความ · Git
git restore fileระวัง ยกเลิกการแก้ไขไฟล์ที่ยังไม่ commit · Git
git reset --hard origin/mainระวัง ทิ้งทุกการเปลี่ยนแปลงให้ตรงกับ remote กู้คืนไม่ได้ · Git
apt update && apt upgrade -yอัปเดตรายการและแพ็กเกจทั้งหมด · แพ็กเกจ (Debian/Ubuntu)
apt install -y htop ncduติดตั้งแพ็กเกจ · แพ็กเกจ (Debian/Ubuntu)
apt list --installed | grep nginxดูว่าติดตั้งแพ็กเกจไหนไว้ · แพ็กเกจ (Debian/Ubuntu)
apt autoremove -y && apt cleanลบแพ็กเกจที่ไม่ใช้และ cache คืนพื้นที่ · แพ็กเกจ (Debian/Ubuntu)
🔒 ทำงานในเบราว์เซอร์ของคุณทั้งหมด ไม่มีข้อมูลถูกส่งออก