คำสั่ง Linux พื้นฐานที่ผู้ดูแลเซิร์ฟเวอร์ควรรู้
เมื่อเข้าเซิร์ฟเวอร์ Linux ผ่าน SSH ได้แล้ว งานส่วนใหญ่ของผู้ดูแลระบบจะวนอยู่กับคำสั่งชุดเดิมไม่กี่สิบคำสั่ง ได้แก่ การเดินไปตามโฟลเดอร์ การดูและแก้ไฟล์ การค้นหาข้อความใน Log การตรวจพื้นที่ดิสก์ และการดูว่า Process ใดกำลังทำงานอยู่ บทความนี้รวบรวมคำสั่งเหล่านั้นไว้ในที่เดียว พร้อมตัวอย่างที่ใช้ได้จริงบน Ubuntu 22.04/24.04 และ AlmaLinux/Rocky Linux 8-9
คำสั่งเกือบทั้งหมดในบทความนี้เหมือนกันทุก Distribution ส่วนที่ต่างกันจริงคือตัวจัดการแพ็กเกจ (apt บน Ubuntu และ dnf บน AlmaLinux/Rocky) ซึ่งจะแยกให้ดูในหัวข้อของมัน
สิ่งที่ต้องเตรียม
- เซิร์ฟเวอร์ Linux ที่เข้าผ่าน SSH ได้ (ถ้ายังไม่ได้ตั้งค่า SSH Key ดูบทความ ตั้งค่า SSH Key และปิดการเข้าสู่ระบบด้วยรหัสผ่านบน Linux)
- ผู้ใช้ที่มีสิทธิ์ sudo สำหรับคำสั่งที่ต้องใช้สิทธิ์ผู้ดูแล (ดู สร้างผู้ใช้ใหม่และให้สิทธิ์ sudo บน Linux)
- ความเข้าใจเบื้องต้นว่า Linux แยกตัวพิมพ์เล็กและใหญ่ในชื่อไฟล์
Backup.sqlกับbackup.sqlคือคนละไฟล์
ขั้นตอนที่ 1: รู้ว่าตัวเองอยู่ที่ไหนและเป็นใคร
ก่อนรันคำสั่งที่แก้ไขไฟล์ ควรเช็กทุกครั้งว่ากำลังอยู่โฟลเดอร์ไหน และใช้ผู้ใช้อะไร
whoami
pwd
hostnamectl
whoami แสดงชื่อผู้ใช้ปัจจุบัน pwd แสดงโฟลเดอร์ปัจจุบัน เช่น /home/admin และ hostnamectl แสดงชื่อเครื่อง ระบบปฏิบัติการ และเวอร์ชัน Kernel ซึ่งช่วยยืนยันว่ากำลังทำงานอยู่บนเครื่องที่ถูกต้อง โดยเฉพาะเมื่อเปิดหลายหน้าต่าง SSH พร้อมกัน
ขั้นตอนที่ 2: เดินไปตามโฟลเดอร์และดูรายการไฟล์
cd /var/www
ls -lah
cd ..
cd ~
cd -
ls -lah แสดงไฟล์ทั้งหมดรวมไฟล์ที่ขึ้นต้นด้วยจุด (ไฟล์ซ่อน เช่น .htaccess หรือ .env) พร้อมสิทธิ์ เจ้าของ ขนาดแบบอ่านง่าย (K, M, G) และวันที่แก้ไข ส่วน cd .. ขึ้นไปหนึ่งระดับ cd ~ กลับโฮมของผู้ใช้ และ cd - กลับไปโฟลเดอร์ก่อนหน้า ความหมายของคอลัมน์สิทธิ์อย่าง -rw-r--r-- อธิบายไว้ในบทความ ทำความเข้าใจสิทธิ์ไฟล์บน Linux ด้วย chmod และ chown
ขั้นตอนที่ 3: สร้าง คัดลอก ย้าย และลบไฟล์
mkdir -p /home/admin/backup/2026
cp -a /etc/nginx/nginx.conf /home/admin/backup/nginx.conf.bak
mv report.txt /home/admin/backup/
rm old-file.log
rm -r /home/admin/tmp-folder
mkdir -pสร้างโฟลเดอร์ซ้อนกันได้ในคำสั่งเดียว และไม่ Error ถ้ามีอยู่แล้วcp -aคัดลอกโดยรักษาสิทธิ์ เจ้าของ และวันที่ไว้ เหมาะกับการสำรองไฟล์ Config ก่อนแก้ไขmvใช้ทั้งย้ายและเปลี่ยนชื่อไฟล์rm -rลบโฟลเดอร์และทุกอย่างข้างใน
หมายเหตุ: Linux ไม่มีถังขยะสำหรับคำสั่ง
rmไฟล์ที่ลบแล้วกู้คืนไม่ได้ ก่อนใช้rm -rfให้รันpwdและlsดูเป้าหมายก่อนทุกครั้ง ระวังช่องว่างเกินในคำสั่ง เช่นrm -rf / home/admin/tmpจะพยายามลบทั้งระบบ และควรมีข้อมูลสำรองก่อนลบสิ่งที่สำคัญ
ขั้นตอนที่ 4: อ่านไฟล์และติดตาม Log
cat /etc/os-release
less /var/log/syslog
head -n 20 access.log
tail -n 50 /var/log/nginx/error.log
tail -f /var/log/nginx/access.log
cat เหมาะกับไฟล์สั้น ส่วนไฟล์ยาวให้ใช้ less ซึ่งเลื่อนด้วยลูกศร ค้นหาด้วย /คำที่ต้องการ และกด q เพื่อออก tail -f จะแสดงบรรทัดใหม่ที่ถูกเขียนต่อท้ายไฟล์แบบสด เหมาะกับการเปิดดู Log ขณะทดลองเข้าเว็บ กด Ctrl+C เพื่อหยุด
ตำแหน่ง Log ระบบต่างกันตาม Distribution: Ubuntu ใช้ /var/log/syslog และ /var/log/auth.log ส่วน AlmaLinux/Rocky ใช้ /var/log/messages และ /var/log/secure และทั้งสองระบบอ่าน Log ของ Service ได้จาก journald ด้วย ดูรายละเอียดใน อ่าน Log ระบบบน Linux ด้วย journalctl
ขั้นตอนที่ 5: ค้นหาข้อความและค้นหาไฟล์
grep -i "error" /var/log/nginx/error.log
grep -rn "DB_PASSWORD" /var/www/example.com --include="*.php"
find /var/www -name "*.log" -size +100M
find /home/admin -type f -mtime -1
grep -i ค้นหาโดยไม่สนตัวพิมพ์เล็กใหญ่ -r ค้นทั้งโฟลเดอร์ และ -n แสดงเลขบรรทัด ส่วน find ค้นจากคุณสมบัติของไฟล์ ตัวอย่างข้างบนหาไฟล์ .log ที่ใหญ่กว่า 100 MB และหาไฟล์ที่ถูกแก้ไขภายใน 1 วันที่ผ่านมา ซึ่งมีประโยชน์มากเวลาสงสัยว่าเว็บถูกแก้ไฟล์โดยไม่ได้ตั้งใจ
คำสั่งสามารถต่อกันด้วยเครื่องหมาย | (Pipe) ได้ เช่น นับจำนวน IP ที่เข้าเว็บมากที่สุด 10 อันดับจาก Access Log
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -n 10
ขั้นตอนที่ 6: ตรวจพื้นที่ดิสก์และหน่วยความจำ
df -h
du -sh /var/log/*
free -h
uptime
df -h บอกพื้นที่ที่เหลือของแต่ละ Filesystem ถ้าคอลัมน์ Use% ของ / เกิน 90% ควรเริ่มหาไฟล์ใหญ่ทันที du -sh บอกขนาดรวมของแต่ละโฟลเดอร์ free -h แสดง RAM และ Swap โดยให้ดูคอลัมน์ available ไม่ใช่ free เพราะ Linux นำ RAM ว่างไปใช้เป็น Cache และคืนให้เมื่อโปรแกรมต้องการ ส่วน uptime บอกเวลาที่เครื่องเปิดมาและ Load Average การวิเคราะห์เชิงลึกมีในบทความ ดิสก์เต็ม: ตรวจสอบพื้นที่และหาไฟล์ขนาดใหญ่บน Linux และ ตรวจสอบ CPU, RAM และ Load Average ของ Linux Server
ขั้นตอนที่ 7: ดูและหยุด Process
top
ps aux --sort=-%mem | head -n 10
pgrep -a php-fpm
kill 12345
kill -9 12345
top แสดง Process ที่ใช้ CPU มากที่สุดแบบสด กด M เพื่อเรียงตาม RAM และกด q เพื่อออก ps aux พร้อม --sort=-%mem แสดง Process ที่ใช้ RAM มากที่สุด kill ส่งสัญญาณให้โปรแกรมปิดตัวอย่างเรียบร้อย ใช้ kill -9 เฉพาะเมื่อโปรแกรมค้างจริง เพราะโปรแกรมจะไม่มีโอกาสบันทึกข้อมูลก่อนปิด สำหรับ Service อย่าง Nginx หรือ MySQL ให้ใช้ systemctl แทนการ kill ดูที่ จัดการ Service บน Linux ด้วย systemctl
ขั้นตอนที่ 8: ตรวจเครือข่าย
ip -br addr
ip route
ping -c 4 8.8.8.8
curl -I https://example.com
sudo ss -tulpn
ip -br addr แสดง IP ของแต่ละ Interface แบบย่อ ip route แสดง Default Gateway curl -I ขอเฉพาะ HTTP Header ใช้ดูว่าเว็บตอบ 200, 301 หรือ 500 ส่วน ss -tulpn แสดงพอร์ตที่เปิดรออยู่พร้อมชื่อโปรแกรม รายละเอียดเพิ่มเติมอยู่ใน ตรวจสอบพอร์ตที่เปิดอยู่บน Linux ด้วย ss และ lsof
ขั้นตอนที่ 9: ติดตั้งและอัปเดตแพ็กเกจ
| งาน | Ubuntu | AlmaLinux / Rocky |
|---|---|---|
| อัปเดตรายการแพ็กเกจ | sudo apt update | sudo dnf check-update |
| อัปเกรดทั้งหมด | sudo apt upgrade | sudo dnf upgrade |
| ติดตั้ง | sudo apt install htop | sudo dnf install htop (ต้องเปิด EPEL ก่อน) |
| ค้นหา | apt search nginx | dnf search nginx |
| ลบ | sudo apt remove htop | sudo dnf remove htop |
บน AlmaLinux/Rocky แพ็กเกจเสริมหลายตัว เช่น htop อยู่ใน EPEL ให้เปิดด้วย sudo dnf install epel-release ก่อน การอัปเดตอัตโนมัติบน Ubuntu ดูได้ใน อัปเดตแพ็กเกจและเปิด Security Update อัตโนมัติบน Ubuntu
ขั้นตอนที่ 10: ใช้ประวัติคำสั่งและคู่มือในเครื่อง
history | tail -n 20
man find
ls --help
กด Ctrl+R แล้วพิมพ์บางส่วนของคำสั่งเพื่อค้นหาคำสั่งที่เคยใช้ กด Tab เพื่อเติมชื่อไฟล์หรือคำสั่งอัตโนมัติ ซึ่งช่วยลดการพิมพ์ผิดได้มาก และ man เปิดคู่มือฉบับเต็มของคำสั่งนั้น
ตรวจสอบผลลัพธ์
ลองทำแบบฝึกหัดสั้น ๆ นี้บนเซิร์ฟเวอร์ทดสอบ ถ้าทำได้ครบแสดงว่าพร้อมใช้งานคำสั่งพื้นฐานแล้ว
- รัน
df -hและบอกได้ว่า/เหลือพื้นที่เท่าไร - สร้างโฟลเดอร์
~/labคัดลอกไฟล์/etc/hostsเข้าไป แล้วดูด้วยls -lah ~/lab - ใช้
grepหาคำว่าlocalhostในไฟล์ที่คัดลอกมา - ลบโฟลเดอร์
~/labด้วยrm -r ~/labแล้วยืนยันด้วยls ~ว่าหายไปแล้ว
ปัญหาที่พบบ่อย
Permission denied
ผู้ใช้ปัจจุบันไม่มีสิทธิ์อ่านหรือเขียนไฟล์นั้น ถ้าเป็นไฟล์ระบบให้เติม sudo หน้าคำสั่ง ถ้าเป็นไฟล์เว็บไซต์ให้ตรวจเจ้าของไฟล์ด้วย ls -l อย่าแก้ด้วยการ chmod 777
command not found
โปรแกรมยังไม่ได้ติดตั้ง หรือพิมพ์ชื่อผิด เช่น htop ไม่มีมาให้บนบาง Image ให้ติดตั้งผ่าน apt หรือ dnf ตามตารางด้านบน
No such file or directory
มักเกิดจากพิมพ์ Path ผิดตัวพิมพ์เล็กใหญ่ หรือใช้ Path แบบสัมพัทธ์ขณะอยู่ผิดโฟลเดอร์ ให้ตรวจด้วย pwd และใช้ปุ่ม Tab เติมชื่อ ถ้าชื่อไฟล์มีช่องว่างให้ครอบด้วยเครื่องหมายคำพูด เช่น "my file.txt"
หน้าจอค้างหลังพิมพ์คำสั่ง
คำสั่งอย่าง tail -f หรือ top ทำงานต่อเนื่องจนกว่าจะสั่งหยุด ให้กด Ctrl+C หรือ q ถ้างานยาวอย่างการ Import ฐานข้อมูลต้องรันต่อแม้ SSH หลุด ให้ใช้ tmux
หากทำตามขั้นตอนแล้วยังติดปัญหา สามารถติดต่อทีมงาน THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/ โดยแจ้งชื่อเซิร์ฟเวอร์ ระบบปฏิบัติการ คำสั่งที่ใช้ และข้อความ Error ที่พบ เพื่อให้ตรวจสอบได้รวดเร็วขึ้น
- Categories:
- Cloud
- Tags:
- Cloud
- Cloud Server
Related Posts
หมวดหมู่ที่น่าสนใจ
- Account Settings
- AD Server
- AI
- Alibaba Cloud
- Anti-Spam Gateway
- AWS Amazon Web Services
- Campaign
- CentOS/AlmaLinux
- Cloud
- Cloud Backup
- Cloud Communication
- Cloud Migration
- Cloud Security
- Cloud Server Management
- Cloud Solution
- Cloud Solution for Government
- Cloud Solutions by Industry
- Cloud Storage
- Cloud VPS App Plus +
- Cloud VPS DirectAdmin
- Cloud VPS Plesk
- CSR
- Cyber Security
- Cybersecurity
- Data Sovereignty
- Database Server
- DDoS
- Digital Tranformation
- Digital Transformation
- Direct Mail
- Directadmin
- Domainname
- Ecommerce
- ERP
- Generative AI
- Getting Started
- Google Cloud
- Google G Suite
- Huawei Cloud
- IT News
- Linux Server
- Managed Cloud Services
- Managed Service Provider
- Manual
- Microsoft
- Microsoft 365
- Microsoft Azure
- News
- On-premise
- Private Mail Server
- Promotion
- Recommend Solution (Enterprise)
- Server
- Sovereign Cloud
- THAI DATA CLOUD Platform
- Ubuntu
- Ubuntu
- Uncategorized
- VMware
- VPS Server
- Web Design
- Web Hosting
- Web Hosting (DirectAdmin)
- Web Hosting (Plesk)
- Web Technologies
- Windows Server
- Wordpress
- Zimbra
- เรื่องราวความประทับใจ
- โซลูชันสำหรับธุรกิจการผลิตและยานยนต์
- โซลูชันสำหรับธุรกิจการศึกษา
- โซลูชันสำหรับธุรกิจการเงิน
- โซลูชันสำหรับธุรกิจขนส่งและกระจายสินค้า
- โซลูชันสำหรับธุรกิจค้าปลีก
- โซลูชันสำหรับธุรกิจท่องเที่ยว
- โซลูชันสำหรับธุรกิจบริการสุขภาพและโรงพยาบาล
- โซลูชันสำหรับธุรกิจประกันภัย
- โซลูชันสำหรับธุรกิจพลังงานและสาธารณูปโภค
- โซลูชันสำหรับธุรกิจสื่อสารมวลชนและเอ็นเตอร์เทนเมนท์
- โซลูชันสำหรับธุรกิจอสังหาริมทรัพย์
- โซลูชันสำหรับธุรกิจเทคโนโลยี


