Linux Commands Reference
รวมคำสั่ง Linux ที่ใช้บ่อย พร้อมคำอธิบายภาษาไทยและตัวอย่างการใช้งาน
ไฟล์และไดเรกทอรี
10 คำสั่ง
▼
ls -la
แสดงรายการไฟล์และโฟลเดอร์ทั้งหมด รวมถึงไฟล์ซ่อน พร้อม permission และขนาด
ls -la /var/www/html
cd /path
เปลี่ยน working directory ไปยัง path ที่ระบุ
cd /etc/nginx/conf.d
pwd
แสดง path ของ directory ปัจจุบัน
pwd # → /home/ubuntu
mkdir -p dir
สร้างโฟลเดอร์ใหม่ รวมถึง parent directories ที่ยังไม่มี
mkdir -p /opt/myapp/logs
rm -rf dir
ลบไฟล์หรือโฟลเดอร์แบบ recursive โดยไม่ถามยืนยัน (ระวัง!)
rm -rf /tmp/old-backups
cp -r src dst
คัดลอกไฟล์หรือโฟลเดอร์ (recursive สำหรับโฟลเดอร์)
cp -r /opt/myapp /opt/myapp-backup
mv src dst
ย้ายไฟล์/โฟลเดอร์ หรือเปลี่ยนชื่อ
mv config.php.bak config.php
touch file
สร้างไฟล์เปล่า หรืออัปเดต timestamp ของไฟล์ที่มีอยู่
touch /var/log/myapp.log
ln -s target link
สร้าง symbolic link (shortcut) ไปยัง target
ln -s /opt/node/bin/node /usr/local/bin/node
find /path -name "*.txt"
ค้นหาไฟล์ตามชื่อแบบ recursive
find /var/log -name "*.log" -mtime +7
สิทธิ์และเจ้าของ
8 คำสั่ง
▼
chmod 755 file
เปลี่ยน permission ของไฟล์/โฟลเดอร์ (rwxr-xr-x)
chmod -R 755 /var/www/html
chown user:group file
เปลี่ยนเจ้าของและกลุ่มของไฟล์/โฟลเดอร์
chown -R www-data:www-data /var/www/html
chgrp group file
เปลี่ยนกลุ่มของไฟล์/โฟลเดอร์
chgrp developers /opt/project
umask 022
กำหนด default permission mask สำหรับไฟล์/โฟลเดอร์ที่สร้างใหม่
umask 027 # files=640, dirs=750
sudo command
รันคำสั่งด้วยสิทธิ์ root หรือ user อื่น
sudo systemctl restart nginx
su - user
เปลี่ยนไปใช้ user อื่น พร้อม login environment
su - deploy
id
แสดง UID, GID และกลุ่มทั้งหมดของ user ปัจจุบัน
id ubuntu # uid=1000(ubuntu) gid=1000(ubuntu)
whoami
แสดงชื่อ user ที่ใช้งานอยู่ปัจจุบัน
whoami # → ubuntu
เครือข่าย
10 คำสั่ง
▼
ip addr show
แสดง IP address ของ network interfaces ทั้งหมด
ip addr show eth0
ip route show
แสดง routing table ของระบบ
ip route show default
ping -c 4 host
ทดสอบการเชื่อมต่อไปยัง host โดยส่ง 4 packet
ping -c 4 8.8.8.8
netstat -tulpn
แสดง port ที่กำลัง listen พร้อม process ที่ใช้งาน
netstat -tulpn | grep :80
ss -tulpn
แสดง socket statistics (ทดแทน netstat ที่ทันสมัยกว่า)
ss -tulpn | grep LISTEN
curl -I url
ดู HTTP response headers ของ URL
curl -I https://example.com
wget url
ดาวน์โหลดไฟล์จาก URL
wget https://example.com/file.tar.gz
dig domain
ค้นหาข้อมูล DNS ของ domain
dig example.com A +short
nslookup domain
ค้นหาข้อมูล DNS แบบ interactive
nslookup -type=MX example.com
traceroute host
ติดตามเส้นทาง packet ไปยัง host แสดงทุก hop
traceroute 8.8.8.8
กระบวนการ
10 คำสั่ง
▼
ps aux
แสดง process ทั้งหมดที่กำลังรันอยู่พร้อม CPU/Memory usage
ps aux | grep nginx
top
แสดง process แบบ real-time พร้อมการใช้ CPU และ Memory
top -b -n 1 | head -20
htop
แสดง process แบบ interactive มี UI สวยกว่า top
htop -u www-data
kill -9 PID
ส่ง SIGKILL บังคับหยุด process ทันที
kill -9 $(pgrep -f myapp)
killall process
หยุด process ทุก instance ตามชื่อ
killall -9 php-fpm
bg %1
ส่ง job ที่ถูก suspend ไปรันใน background
bg %1 # หลังกด Ctrl+Z
fg %1
นำ background job กลับมา foreground
fg %1
jobs
แสดงรายการ jobs ทั้งหมดในเซสชั่นปัจจุบัน
jobs -l # แสดง PID ด้วย
nohup cmd &
รัน command ที่ไม่หยุดทำงานเมื่อออกจาก terminal
nohup ./server.sh > server.log 2>&1 &
nice -n 10 cmd
รัน command ด้วย priority ต่ำลง (ไม่แย่ง CPU)
nice -n 19 tar -czf backup.tar.gz /data
ดิสก์และพื้นที่
8 คำสั่ง
▼
df -h
แสดงพื้นที่ดิสก์ทั้งหมดและที่ใช้ไปในหน่วยที่อ่านง่าย
df -h /var/www
du -sh dir
แสดงขนาดรวมของโฟลเดอร์
du -sh /var/log/*
lsblk
แสดงรายการ block devices (disk, partition) แบบ tree
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
fdisk -l
แสดงข้อมูล partition ของดิสก์ทั้งหมด
fdisk -l /dev/sda
mount /dev/sdb1 /mnt
mount partition เพื่อใช้งาน
mount -t ext4 /dev/sdb1 /mnt/data
umount /mnt
ยกเลิก mount partition
umount /mnt/data
mkfs.ext4 /dev/sdb1
สร้าง filesystem ext4 บน partition (จะลบข้อมูลทั้งหมด!)
mkfs.ext4 -L "data" /dev/sdb1
fsck /dev/sdb1
ตรวจสอบและซ่อมแซม filesystem (ต้อง unmount ก่อน)
fsck -y /dev/sdb1
บีบอัด/แตกไฟล์
7 คำสั่ง
▼
tar -czf archive.tar.gz dir
บีบอัดโฟลเดอร์เป็นไฟล์ .tar.gz
tar -czf backup-$(date +%F).tar.gz /var/www
tar -xzf archive.tar.gz
แตกไฟล์ .tar.gz ใน directory ปัจจุบัน
tar -xzf archive.tar.gz -C /opt/
gzip file
บีบอัดไฟล์เป็น .gz (แทนที่ไฟล์เดิม)
gzip -k access.log # -k เก็บไฟล์เดิมไว้
gunzip file.gz
แตกไฟล์ .gz
gunzip access.log.gz
zip -r archive.zip dir
สร้างไฟล์ .zip จากโฟลเดอร์
zip -r website.zip /var/www/html
unzip archive.zip
แตกไฟล์ .zip
unzip archive.zip -d /opt/myapp
bzip2 file
บีบอัดไฟล์เป็น .bz2 (บีบได้ดีกว่า gzip แต่ช้ากว่า)
bzip2 -k largefile.sql
ค้นหาข้อมูล
10 คำสั่ง
▼
grep -r "text" /path
ค้นหาข้อความใน files แบบ recursive
grep -r "DB_PASSWORD" /var/www --include="*.php"
find / -name file
ค้นหาไฟล์จากทั้งระบบตามชื่อ
find /etc -name "*.conf" -type f
locate file
ค้นหาไฟล์จาก database ที่ cache ไว้ (เร็วกว่า find)
locate nginx.conf
which cmd
หา full path ของ command ใน PATH
which php # → /usr/bin/php
whereis cmd
หา binary, manual และ source ของ command
whereis nginx
awk '{print $1}' file
ประมวลผล text ตาม pattern พิมพ์คอลัมน์แรก
awk -F: '{print $1}' /etc/passwd
sed 's/old/new/g' file
แทนที่ข้อความทุก instance ใน file
sed -i 's/localhost/127.0.0.1/g' config.php
sort file
เรียงลำดับบรรทัดใน file ตามตัวอักษร
sort -k2 -n file # เรียงตามคอลัมน์ 2 แบบตัวเลข
uniq file
ลบบรรทัดที่ซ้ำกัน (ต้อง sort ก่อน)
sort access.log | uniq -c | sort -rn
wc -l file
นับจำนวนบรรทัดใน file
wc -l /var/log/nginx/access.log
systemd/service
8 คำสั่ง
▼
systemctl start svc
เริ่มการทำงานของ service
systemctl start nginx
systemctl stop svc
หยุดการทำงานของ service
systemctl stop mysql
systemctl restart svc
รีสตาร์ท service (หยุดแล้วเริ่มใหม่)
systemctl restart php8.2-fpm
systemctl enable svc
ตั้งให้ service เริ่มอัตโนมัติเมื่อ boot
systemctl enable --now nginx
systemctl disable svc
ยกเลิกการ autostart ของ service
systemctl disable apache2
systemctl status svc
ดูสถานะการทำงานและ log ล่าสุดของ service
systemctl status nginx --no-pager
journalctl -u svc -f
ดู log ของ service แบบ real-time (follow mode)
journalctl -u nginx -f --since "1 hour ago"
systemctl list-units --type=service
แสดงรายการ service ทั้งหมดและสถานะ
systemctl list-units --type=service --state=running
ดูข้อมูลระบบ
10 คำสั่ง
▼
uname -a
แสดงข้อมูล kernel และ OS ทั้งหมด
uname -a # Linux hostname 5.15.0 ...
uptime
แสดงเวลาที่ server ทำงาน และ load average
uptime # up 30 days, load average: 0.5
free -h
แสดงการใช้งาน RAM และ swap ในหน่วยที่อ่านง่าย
free -h -s 5 # refresh ทุก 5 วินาที
vmstat 1
แสดงสถิติ CPU, memory, I/O แบบ real-time ทุก 1 วินาที
vmstat 1 10 # แสดง 10 ครั้ง
lscpu
แสดงข้อมูล CPU รายละเอียด (cores, architecture, speed)
lscpu | grep -E "Model|CPU\(s\)|MHz"
cat /proc/cpuinfo
แสดงข้อมูล CPU จาก kernel แบบละเอียด
grep "model name" /proc/cpuinfo | head -1
dmesg | tail
ดู kernel log ล่าสุด (hardware, boot, errors)
dmesg -T | grep -i error | tail -20
last
แสดงประวัติการ login เข้า-ออกของ users
last -n 20 root
who
แสดง user ที่กำลัง login อยู่ในขณะนี้
who -a # แสดงรายละเอียดเพิ่มเติม
date
แสดงวันที่และเวลาปัจจุบันของระบบ
date "+%Y-%m-%d %H:%M:%S"