รวมคำสั่ง Linux

รวมคำสั่ง Linux ตัวท็อปที่มักถูกถามหรือต้องใช้ตอบในบทสนทนาสัมภาษณ์รอบ Role-Related Knowledge (RRK) ฝั่ง OS / Hardware / System Performance โดยจัดหมวดหมู่ตาม USE Method (Utilization, Saturation, Errors) เพื่อให้ตอบได้อย่างเป็นระบบ

1. Hardware Inventory & Physical Components (ตรวจเช็กสเปกและสุขภาพฮาร์ดแวร์)

ใช้เมื่อกรรมการถามว่า “จะตรวจสอบสเปก CPU, RAM, Disk, PCI Card บนเครื่องอย่างไรโดยไม่ต้องเปิดฝาเครื่อง?”

  • lshw -short : สรุปรายการฮาร์ดแวร์ทั้งหมดของเครื่องแบบสั้น (CPU, RAM, Motherboard, NIC, Disk)
  • lscpu : ดูข้อมูล CPU อย่างละเอียด (Architecture, Cores, Sockets, Threads per core, L1/L2/L3 Cache)
  • free -h : ดูภาพรวม Physical RAM และ Swap (เน้นดูช่อง available เป็นหลัก)
  • dmidecode -t memory : ส่องดู Slot แรมจริงของ Motherboard (ดูขนาดแต่ละช่อง, ชนิด DDR, Bus Speed, Serial Number)
  • lspci -tv : แสดงอุปกรณ์ที่เชื่อมต่อผ่าน PCIe ทั้งหมดในรูปแบบ Tree (เช่น ดูการ์ดแลน 10GbE/100GbE, RAID Controller, GPU)
  • lsblk -f : ดูโครงสร้าง Block Devices (Disks, Partitions, LVM, UUID, Filesystem Type)

2. Disk Health, I/O Bottlenecks & Storage (ดิสก์และระบบไฟล์)

ใช้ตรวจอาการ “ระบบอ่านเขียนดิสก์ช้า หรือเกิด I/O Wait สูง”

  • iostat -xz 1 : ดูประสิทธิภาพของดิสก์รายตัวแบบ Real-time
    • จุดสังเกต: ดูค่า %util (ถ้าปริ่ม 100% คือดิสก์ทำงานเต็มขีดจำกัด) และค่า await (เวลาเฉลี่ยที่ I/O ติดคิวรอ ยิ่งสูงยิ่งช้า)
  • smartctl -a /dev/sdX : อ่านค่า SMART Data จาก Hard Drive / SSD เพื่อดูว่ามี Bad Sector, Reallocated Sectors หรือดิสก์ใกล้พังหรือไม่
  • df -h และ df -i : เช็กพื้นที่ความจุ (Disk Space) และเช็กจำนวนตารางเก็บข้อมูล (Inode Usage)
  • lsof +D /path/to/mount : ดูว่า Process ใดกำลังเปิดค้างหรือล็อกไฟล์ใน Partition นั้นอยู่ (มักใช้แก้ปัญหา Unmount ไม่ได้ หรือไฟล์ถูกลบไปแล้วแต่ df พื้นที่ไม่คืน)

3. CPU Performance & Process Profiling (คอขวดของซีพียูและโปรเซส)

ใช้เมื่อ “CPU สูงผิดปกติ หรือต้องการดู Thread ค้าง”

  • top / htop : ดูภาพรวม System Load, CPU state (%us, %sy, %wa, %si) และเรียงลำดับ Process ตามการใช้ทรัพยากร
  • pidstat 1 (หรือ pidstat -d 1) : แยกดูการใช้ CPU และ Disk I/O เจาะจงราย Process แบบวินาทีต่อวินาที (ดีกว่า top เวลาต้องการจับตาดู App ตัวใดตัวหนึ่ง)
  • uptime : เช็ก Uptime และ Load Average (1, 5, 15 นาที) เพื่อเทียบกับจำนวน Core ใน nproc
  • ps aux --sort=-%cpu | head -n 10 : ดึง 10 อันดับ Process ที่กิน CPU สูงสุดในทันที

4. Kernel Signals, Crashes & System Calls (ลึกระดับเคอร์เนล)

ใช้เมื่อ “ระบบค้างโดยไม่ทราบสาเหตุ, มีการ Crash หรือต้องการแกะรอย System Call”

  • dmesg -T | grep -iE 'error|warn|oom|segfault' : ดู Log บันทึกเหตุการณ์ระดับ Hardware & Kernel พร้อมประทับเวลาที่อ่านเข้าใจได้ (ใช้หาเหตุการณ์ OOM Killer ยิงโปรเซสตาย หรืออุปกรณ์หลุด)
  • strace -p <PID> -f : ดักส่อง System Call ของ Process แบบสดๆ เพื่อดูว่าโปรเซสนั้นค้างอยู่ที่คำสั่ง System Call ตัวไหน (เช่น ค้างที่ read() รอ Socket หรือรอ Lock)
  • lsof -p <PID> : ลิสต์รายการ Files, Network Sockets, และ Shared Libraries ทั้งหมดที่โปรเซสนั้นเปิดถือครองอยู่ (ใช้หา File Descriptor Leak)
  • vmstat 1 : ดูภาพรวมทั้งระบบ (Processes ค้างใน Run-queue r, Blocked b, Swap In/Out si/so, Context Switches cs)

5. Network Hardware & Driver Level (การ์ดแลนและไดรเวอร์)

ใช้เมื่อเกิดปัญหา “Dropped Packets หรือ Interface คอขวด”

  • ethtool eth0 : ตรวจสอบ Speed (1G/10G/25G), Duplex (Full/Half), Auto-negotiation และ Link Detected ของการ์ดแลน
  • ethtool -S eth0 : ดูสถิติเชิงลึกของการ์ดแลนระดับ Hardware (เช่น ดูค่า rx_dropped, rx_crc_errors, rx_ring_buffer_overflow)
  • ip -s link show eth0 : ดูสถิติภาพรวมของ Network Interface (TX/RX packets, errors, dropped)
  • ss -tulpn : ตรวจสอบพอร์ตที่เปิด Listening และโปรเซสที่เป็นเจ้าของ (มาแทนที่ netstat)

ตารางสรุป 4 ตัวเก็งที่มักนำไปใช้ตอบแบบ “One-liner”

สถานการณ์ที่กรรมการถามคำสั่งที่ดีที่สุดในการตอบ
เช็กว่าดิสก์กำลังติดคอขวดที่ I/O หรือไม่iostat -xz 1 (ดู %util และ await)
เช็กว่าเครื่องเคยเกิด Out of Memory (OOM) หรือไม่dmesg -T | grep -i oom
ตรวจสอบ Link Speed และ Ring Buffer ของการ์ดแลนethtool eth0 และ ethtool -S eth0
หา Process ที่กำลังเปิดไฟล์ค้างจนลบ Partition ไม่ได้lsof +D /mountpoint