50 คำสั่ง Linux (Debian/Ubuntu) ที่ใช้บ่อยสำหรับ DevOps (ฉบับสมบูรณ์)
เอกสารนี้รวบรวม 50 คำสั่งที่จำเป็นสำหรับผู้ที่ทำงานในสาย DevOps บนระบบปฏิบัติการ Linux ตระกูล Debian และ Ubuntu โดยแบ่งเป็นหมวดหมู่ พร้อมคำอธิบายหน้าที่, ตัวอย่างการใช้งาน, และคำอธิบาย Argument ที่สำคัญอย่างละเอียด
หมวดที่ 1: การจัดการไฟล์และไดเรกทอรี (File & Directory Management)
ls (List)
หน้าที่: แสดงรายการไฟล์และไดเรกทอรีในตำแหน่งปัจจุบัน
ตัวอย่างพื้นฐาน: ls
ตัวอย่างพร้อม Argument: ls -lahtr
-l: แสดงผลในรูปแบบยาว (long format) บอกรายละเอียดสิทธิ์, เจ้าของ, ขนาด, และวันที่แก้ไข
-a: แสดงไฟล์ทั้งหมด (all) รวมถึงไฟล์ที่ซ่อนอยู่ซึ่งขึ้นต้นด้วยจุด (.)
-h: แสดงขนาดไฟล์ในหน่วยที่มนุษย์อ่านง่าย (human-readable) เช่น KB, MB, GB
-t: เรียงลำดับตามเวลาที่แก้ไขล่าสุด (ไฟล์ใหม่สุดอยู่บน)
-r: เรียงลำดับย้อนกลับ (reverse) (เมื่อใช้กับ -t จะทำให้ไฟล์เก่าสุดอยู่บน)cd (Change Directory)
หน้าที่: เปลี่ยนไดเรกทอรีการทำงานไปยังตำแหน่งที่ระบุ
ตัวอย่างพื้นฐาน: cd /var/log
ตัวอย่างพร้อม Argument: cd .. (ย้อนกลับไปไดเรกทอรีแม่ 1 ระดับ), cd ~ หรือ cd (กลับไปที่ไดเรกทอรีบ้านของผู้ใช้ปัจจุบัน), cd - (กลับไปไดเรกทอรีล่าสุดที่เคยอยู่)pwd (Print Working Directory)
หน้าที่: พิมพ์ที่อยู่เต็มของไดเรกทอรีที่กำลังทำงานอยู่
ตัวอย่างพื้นฐาน: pwd
ตัวอย่างพร้อม Argument: pwd -P (แสดงที่อยู่จริงทางกายภาพ (Physical) กรณีที่เป็น Symbolic Link เพื่อหลีกเลี่ยงความสับสน)cp (Copy)
หน้าที่: คัดลอกไฟล์หรือไดเรกทอรี
ตัวอย่างพื้นฐาน: cp source.txt destination.txt
ตัวอย่างพร้อม Argument: cp -arv /source_dir /destination_dir
-a (archive): โหมดเก็บถาวร เหมือนกับ -dR --preserve=all เหมาะสำหรับการ backup เพราะจะรักษาสิทธิ์, เจ้าของ, และเวลาของไฟล์ไว้ทั้งหมด
-r (recursive): คัดลอกทั้งไดเรกทอรีและทุกอย่างที่อยู่ข้างใน
-v (verbose): แสดงชื่อไฟล์ที่กำลังถูกคัดลอกmv (Move)
หน้าที่: ย้าย (move) หรือเปลี่ยนชื่อ (rename) ไฟล์/ไดเรกทอรี
ตัวอย่างพื้นฐาน (เปลี่ยนชื่อ): mv old_name.txt new_name.txt
ตัวอย่างพร้อม Argument (ย้ายไฟล์): mv -iv my_file.log /var/log/
-i (interactive): ถามยืนยันก่อนที่จะเขียนทับไฟล์ที่มีอยู่แล้ว
-v (verbose): แสดงผลว่ากำลังทำอะไรอยู่rm (Remove)
หน้าที่: ลบไฟล์หรือไดเรกทอรี (คำเตือน: คำสั่งนี้ไม่สามารถกู้คืนได้ ใช้ด้วยความระมัดระวังสูงสุด!)
ตัวอย่างพื้นฐาน: rm temp_file.txt
ตัวอย่างพร้อม Argument: rm -rf /path/to/dir
-r (recursive): ลบไดเรกทอรีและทุกอย่างข้างใน
-f (force): บังคับลบโดยไม่ต้องถามยืนยัน
-i (interactive): ถามยืนยันก่อนลบทุกครั้ง (ปลอดภัยกว่า)mkdir (Make Directory)
หน้าที่: สร้างไดเรกทอรีใหม่
ตัวอย่างพื้นฐาน: mkdir logs
ตัวอย่างพร้อม Argument: mkdir -p /project/src/components
-p (parents): สร้างไดเรกทอรีแม่ที่ยังไม่มีอยู่ให้โดยอัตโนมัติtouch
หน้าที่: สร้างไฟล์เปล่า หรืออัปเดตเวลา (timestamp) ของไฟล์ที่มีอยู่ให้เป็นเวลาปัจจุบัน
ตัวอย่างพื้นฐาน: touch new_file.txt
ตัวอย่างพร้อม Argument: touch -a -m -d "2 days ago" old_file.txt
-a: เปลี่ยนเฉพาะ access time
-m: เปลี่ยนเฉพาะ modification time
-d: ระบุเวลาที่ต้องการ ไม่ใช่เวลาปัจจุบันfind
หน้าที่: ค้นหาไฟล์และไดเรกทอรีในระบบตามเงื่อนไขที่ซับซ้อน
ตัวอย่างพื้นฐาน: find / -name "nginx.conf"
ตัวอย่างพร้อม Argument: find /var/log -type f -name ".log" -mtime -7 -exec ls -lh {} \;
-type f: ค้นหาเฉพาะประเภทไฟล์ (file) (d สำหรับ directory)
-name ".log": ค้นหาไฟล์ที่ชื่อลงท้ายด้วย .log
-mtime -7: ที่มีการแก้ไข (modified time) ใน 7 วันที่ผ่านมา (+7 คือนานกว่า 7 วัน)
-exec command {} \;: นำผลลัพธ์ที่หาเจอ ไปรันคำสั่งอื่นต่อ ({} คือชื่อไฟล์ที่เจอ)grep (Global Regular Expression Print)
หน้าที่: ค้นหาข้อความหรือรูปแบบ (pattern) ภายในไฟล์
ตัวอย่างพื้นฐาน: grep "error" /var/log/syslog
ตัวอย่างพร้อม Argument: grep -rni -C 2 "database_user" /etc/my_app
-r (recursive): ค้นหาในทุกไฟล์ที่อยู่ในไดเรกทอรีย่อยทั้งหมด
-n: แสดงหมายเลขบรรทัดที่เจอ
-i (ignore case): ไม่สนใจว่าเป็นตัวพิมพ์เล็กหรือใหญ่
-v: แสดงบรรทัดที่ไม่ตรงกับ pattern (Invert match)
-C 2: แสดง 2 บรรทัดทั้งก่อนและหลังบรรทัดที่เจอ (Context)cat (Concatenate)
หน้าที่: แสดงเนื้อหาทั้งหมดของไฟล์ออกมาที่หน้าจอ หรือใช้รวมไฟล์
ตัวอย่างพื้นฐาน: cat /etc/hosts
ตัวอย่างพร้อม Argument: cat -n -E script.sh
-n: แสดงเนื้อหาพร้อมเลขบรรทัด
-E: แสดงเครื่องหมาย $ ที่ท้ายบรรทัดless
หน้าที่: แสดงเนื้อหาไฟล์ทีละหน้า เหมาะกับไฟล์ขนาดใหญ่เพราะไม่ต้องโหลดทั้งไฟล์เข้าหน่วยความจำ
ตัวอย่างพื้นฐาน: less /var/log/auth.log
ตัวอย่างพร้อม Argument: less +F /var/log/syslog
+F: เปิดไฟล์และไปที่ท้ายสุดเพื่อดูข้อมูลแบบ real-time เหมือน tail -f
ใน less พิมพ์ / ตามด้วยคำที่ต้องการค้นหา แล้วกด Entertail
หน้าที่: แสดงส่วนท้ายของไฟล์ (ค่าเริ่มต้นคือ 10 บรรทัดสุดท้าย)
ตัวอย่างพื้นฐาน: tail /var/log/syslog
ตัวอย่างพร้อม Argument: tail -f -n 50 /var/log/nginx/access.log
-f (follow): ติดตามการเปลี่ยนแปลงของไฟล์และแสดงผลแบบ real-time
-n 50: ระบุจำนวนบรรทัดที่จะแสดงเป็น 50 บรรทัดhead
หน้าที่: แสดงส่วนหัวของไฟล์ (ค่าเริ่มต้นคือ 10 บรรทัดแรก)
ตัวอย่างพื้นฐาน: head /var/log/syslog
ตัวอย่างพร้อม Argument: head -n 20 script.sh (แสดง 20 บรรทัดแรกของไฟล์)sed (Stream Editor)
หน้าที่: แก้ไขข้อความในไฟล์หรือ stream โดยอัตโนมัติ (เช่น ค้นหาและแทนที่)
ตัวอย่างพื้นฐาน: sed 's/old_text/new_text/g' input.txt
ตัวอย่างพร้อม Argument: sed -i.bak 's/DB_HOST=localhost/DB_HOST=10.0.1.5/g' .env
-i.bak: แก้ไขเนื้อหาในไฟล์โดยตรง (in-place) และสร้างไฟล์สำรอง .bak ไว้ก่อนแก้
s/old/new/g: รูปแบบการแทนที่ s คือ substitute, g คือ global (แทนที่ทุกจุดในบรรทัด)awk
หน้าที่: เครื่องมือประมวลผลข้อความที่ทรงพลัง มักใช้ตัดแบ่งข้อมูลเป็นคอลัมน์
ตัวอย่างพื้นฐาน: df -h | awk '{print $1}' (แสดงเฉพาะคอลัมน์ที่ 1 จากคำสั่ง df -h)
ตัวอย่างพร้อม Argument: awk -F':' 'BEGIN {print "User\tUID"} {print $1, "\t", $3} END {print "Done."}' /etc/passwd
-F':': กำหนดให้ตัวอักษร : เป็นตัวแบ่งฟิลด์ (Field Separator)
BEGIN {}: คำสั่งที่ให้ทำก่อนเริ่มประมวลผลบรรทัดแรก
END {}: คำสั่งที่ให้ทำหลังจากประมวลผลบรรทัดสุดท้ายเสร็จln (Link)
หน้าที่: สร้างลิงก์ระหว่างไฟล์ (Hard link หรือ Symbolic link)
ตัวอย่างพื้นฐาน (Hard Link): ln source_file link_name
ตัวอย่างพร้อม Argument (Symbolic Link): ln -sf /path/to/original /path/to/link
-s: สร้าง Symbolic Link (หรือ symlink) ซึ่งเหมือนกับ Shortcut บน Windows และเป็นวิธีที่ใช้บ่อยที่สุด
-f (force): หากมีลิงก์ชื่อนั้นอยู่แล้วให้เขียนทับ
หมวดที่ 2: การจัดการผู้ใช้และสิทธิ์ (User & Permission Management)
chown (Change Owner)
หน้าที่: เปลี่ยนเจ้าของ (user) และกลุ่ม (group) ของไฟล์/ไดเรกทอรี
ตัวอย่างพื้นฐาน: sudo chown www-data:www-data /var/www/html/index.html
ตัวอย่างพร้อม Argument: sudo chown -R devops:devops /opt/app
-R (recursive): เปลี่ยนเจ้าของทั้งไดเรกทอรีและไฟล์ข้างในทั้งหมดchmod (Change Mode)
หน้าที่: เปลี่ยนแปลงสิทธิ์ (permissions) ของไฟล์/ไดเรกทอรี
ตัวอย่างพื้นฐาน (Octal): chmod 755 script.sh (r=4, w=2, x=1; 7=rwx, 5=r-x)
ตัวอย่างพร้อม Argument (Symbolic): chmod u=rwx,g=rx,o=rx script.sh (u=user, g=group, o=other) หรือ chmod u+x script.sh (เพิ่มสิทธิ์ execute ให้ user)sudo (Superuser Do)
หน้าที่: รันคำสั่งในฐานะผู้ใช้ระดับสูงสุด (superuser/root)
ตัวอย่างพื้นฐาน: sudo apt update
ตัวอย่างพร้อม Argument: sudo -u www-data -i
-u www-data: รันคำสั่งในฐานะ user www-data
-i: สร้าง login shell ใหม่สำหรับ user นั้นๆwhoami
หน้าที่: แสดงชื่อผู้ใช้ (username) ปัจจุบันที่กำลังล็อกอินอยู่
ตัวอย่างพื้นฐาน: whoamiid
หน้าที่: แสดงข้อมูล user ID (uid), group ID (gid), และกลุ่มทั้งหมดที่ user นั้นเป็นสมาชิก
ตัวอย่างพื้นฐาน: id
ตัวอย่างพร้อม Argument: id -u -n ubuntu (แสดงเฉพาะชื่อ (-n) ของ user ID (-u) ของ user ubuntu)
หมวดที่ 3: การตรวจสอบระบบและ Monitoring
uname (Unix Name)
หน้าที่: แสดงข้อมูลของระบบปฏิบัติการและเคอร์เนล
ตัวอย่างพื้นฐาน: uname
ตัวอย่างพร้อม Argument: uname -a (แสดงข้อมูลทั้งหมด: kernel version, hostname, architecture)df (Disk Free)
หน้าที่: ตรวจสอบพื้นที่การใช้งานและพื้นที่ว่างของดิสก์
ตัวอย่างพื้นฐาน: df
ตัวอย่างพร้อม Argument: df -hTi
-h (human-readable): แสดงผลในหน่วยที่มนุษย์อ่านง่าย
-T (type): แสดงประเภทของ File System
-i: แสดงข้อมูลการใช้งาน inode (จำนวนไฟล์)du (Disk Usage)
หน้าที่: ตรวจสอบขนาดการใช้งานของไฟล์และไดเรกทอรี
ตัวอย่างพื้นฐาน: du /var/log
ตัวอย่างพร้อม Argument: du -sh --max-depth=1 /var/log
-s (summarize): แสดงขนาดรวมของแต่ละ argument
-h (human-readable): แสดงผลในหน่วยที่อ่านง่าย
--max-depth=1: แสดงความลึกของไดเรกทอรีแค่ 1 ระดับfree
หน้าที่: ตรวจสอบการใช้งานหน่วยความจำ (RAM) และพื้นที่สลับ (Swap)
ตัวอย่างพื้นฐาน: free
ตัวอย่างพร้อม Argument: free -h -s 5
-h: แสดงผลในหน่วยที่อ่านง่าย
-s 5: แสดงผลซ้ำทุกๆ 5 วินาทีtop
หน้าที่: แสดงโปรเซสที่กำลังทำงานอยู่แบบ real-time จัดเรียงตามการใช้ CPU เป็นค่าเริ่มต้น
ตัวอย่างพื้นฐาน: top (กด q เพื่อออก)
ตัวอย่างพร้อม Argument: top -u www-data -d 3
-u: แสดงโปรเซสเฉพาะของ user ที่ระบุ
-d 3: รีเฟรชหน้าจอทุกๆ 3 วินาทีhtop
หน้าที่: เหมือน top แต่มีสีสันและใช้งานง่ายกว่า (อาจต้องติดตั้ง sudo apt install htop)
ตัวอย่างพื้นฐาน: htop
ตัวอย่างพร้อม Argument: htop -u www-data (แสดงเฉพาะโปรเซสของ user www-data)ps (Process Status)
หน้าที่: แสดงรายการโปรเซสที่กำลังทำงานอยู่ในขณะนั้น
ตัวอย่างพื้นฐาน: ps
ตัวอย่างพร้อม Argument: ps -ef (Syntax แบบ System V) หรือ ps aux (Syntax แบบ BSD)
ps -ef: แสดงทุกโปรเซส (-e) ในรูปแบบเต็ม (-f)
ps aux: แสดงทุกโปรเซส (a) ของทุก user (u) รวมถึงที่ไม่ได้ผูกกับ terminal (x)dmesg (Display Message)
หน้าที่: แสดงข้อความจาก kernel ring buffer มีประโยชน์มากเวลาแก้ปัญหาเกี่ยวกับ hardware หรือ driver
ตัวอย่างพื้นฐาน: dmesg
ตัวอย่างพร้อม Argument: dmesg -T --level=err,warn
-T: แสดงผลพร้อมเวลาที่อ่านได้
--level=err,warn: กรองข้อความให้แสดงเฉพาะระดับ error และ warningjournalctl
หน้าที่: เครื่องมือสำหรับดู logs จาก systemd ซึ่งเป็นระบบจัดการ service หลัก
ตัวอย่างพื้นฐาน: journalctl
ตัวอย่างพร้อม Argument: journalctl -u nginx.service -f -p err --since "1 hour ago"
-u: ระบุ service ที่ต้องการดู
-f: ติดตาม log แบบ real-time
-p err: กรองเฉพาะ log ที่มี priority เป็น error (หรือ 3)
--since "1 hour ago": ดู log ย้อนหลังไป 1 ชั่วโมง
หมวดที่ 4: เครือข่าย (Networking)
ip
หน้าที่: เครื่องมือจัดการเครือข่ายที่มาแทน ifconfig
ตัวอย่างพื้นฐาน: ip addr show (หรือ ip a)
ตัวอย่างพร้อม Argument: ip link set dev eth0 down (ปิดการใช้งาน interface eth0), ip route show (ดู routing table)ping
หน้าที่: ทดสอบการเชื่อมต่อไปยังเครื่องปลายทางโดยส่ง packet ICMP
ตัวอย่างพื้นฐาน: ping google.com
ตัวอย่างพร้อม Argument: ping -c 5 -i 0.2 8.8.8.8
-c 5: ส่ง packet ไป 5 ครั้งแล้วหยุด
-i 0.2: กำหนดช่วงเวลาระหว่าง packet เป็น 0.2 วินาที (flood ping)ss (Socket Statistics)
หน้าที่: ตรวจสอบ socket และการเชื่อมต่อเครือข่าย (มาแทน netstat)
ตัวอย่างพื้นฐาน: ss
ตัวอย่างพร้อม Argument: ss -tlpna
-t: แสดงเฉพาะ TCP sockets
-l: แสดงเฉพาะ listening sockets
-p: แสดงชื่อโปรเซสที่ใช้ socket นั้น
-n: ไม่ต้อง resolve ชื่อ (แสดงเป็น IP และ Port number)
-a: แสดง listening และ non-listening sockets ทั้งหมดcurl (Client URL)
หน้าที่: เครื่องมือสำหรับส่ง/รับข้อมูลผ่าน URL ใช้ทดสอบ API, ดาวน์โหลดไฟล์
ตัวอย่างพื้นฐาน: curl https://api.github.com
ตัวอย่างพร้อม Argument: curl -L -o github.html -H "Accept-Language: en-US" https://github.com
-L: ติดตาม Redirect (HTTP 3xx)
-o github.html: บันทึกผลลัพธ์ลงไฟล์ชื่อ github.html
-H "Header: Value": เพิ่ม HTTP Header เข้าไปใน request
-X POST: ระบุ HTTP method เป็น POSTwget
หน้าที่: ดาวน์โหลดไฟล์จากอินเทอร์เน็ต
ตัวอย่างพื้นฐาน: wget https://wordpress.org/latest.zip
ตัวอย่างพร้อม Argument: wget -c -O /tmp/wp.zip --no-check-certificate
-c: ดาวน์โหลดต่อจากของเดิมที่หยุดไป
-O /tmp/wp.zip: บันทึกไฟล์เป็นชื่อและตำแหน่งอื่น
--no-check-certificate: ไม่ต้องตรวจสอบ SSL certificate (ใช้กรณีจำเป็น)dig (Domain Information Groper)
หน้าที่: ใช้สอบถามข้อมูลจาก DNS Server
ตัวอย่างพื้นฐาน: dig google.com
ตัวอย่างพร้อม Argument: dig +trace +short google.com
+trace: แสดงเส้นทางการ query ทั้งหมดตั้งแต่ Root DNS Server
+short: แสดงเฉพาะคำตอบสั้นๆ (IP address)ufw (Uncomplicated Firewall)
หน้าที่: เครื่องมือจัดการ Firewall ที่ใช้งานง่ายบน Ubuntu
ตัวอย่างพื้นฐาน: sudo ufw status
ตัวอย่างพร้อม Argument: sudo ufw allow from 192.168.1.100 to any port 22 proto tcp (อนุญาตให้ IP ที่ระบุเชื่อมต่อ SSH เข้ามาได้)
หมวดที่ 5: การจัดการแพ็คเกจ (Package Management)
apt
หน้าที่: เครื่องมือหลักในการติดตั้ง, อัปเดต, และลบซอฟต์แวร์
ตัวอย่างพื้นฐาน: sudo apt update && sudo apt upgrade
ตัวอย่างพร้อม Argument: sudo apt install -y nginx, sudo apt autoremove --purge (ลบแพ็คเกจที่ไม่จำเป็นแล้วพร้อมไฟล์คอนฟิก)dpkg (Debian Package)
หน้าที่: เครื่องมือระดับล่างสำหรับจัดการไฟล์แพ็คเกจ .deb
ตัวอย่างพื้นฐาน: sudo dpkg -i my-package_1.0.0_amd64.deb
ตัวอย่างพร้อม Argument: dpkg -S /bin/ls (ค้นหา (-S) ว่าไฟล์ /bin/ls มาจากแพ็คเกจไหน)
หมวดที่ 6: การจัดการโปรเซสและ Automation
systemctl
หน้าที่: เครื่องมือหลักในการควบคุม systemd เพื่อจัดการ services
ตัวอย่างพื้นฐาน: sudo systemctl status nginx
ตัวอย่างพร้อม Argument: sudo systemctl enable --now docker (เปิดใช้งาน service ให้เริ่มตอนบูท (enable) และสตาร์ททันที (--now)), sudo systemctl mask cron.service (ปิดการใช้งาน service โดยสิ้นเชิง)kill
หน้าที่: ส่งสัญญาณ (signal) ไปยังโปรเซส (โดยปกติคือการสั่งปิด)
ตัวอย่างพื้นฐาน: kill 1234 (ส่ง SIGTERM (15) ซึ่งเป็นการขอให้ปิดอย่างสุภาพ)
ตัวอย่างพร้อม Argument: kill -9 1234 (ส่ง SIGKILL (-9) เพื่อบังคับปิดโปรเซสทันที), kill -1 1234 (ส่ง SIGHUP (-1) เพื่อสั่งให้โปรเซสโหลดคอนฟิกใหม่)pkill
หน้าที่: สั่งปิดโปรเซสโดยใช้ชื่อแทน PID
ตัวอย่างพื้นฐาน: pkill firefox
ตัวอย่างพร้อม Argument: pkill -f "python my_script.py" (ใช้ (-f) full command line ในการค้นหาโปรเซสที่จะปิด)cron / crontab
หน้าที่: ตั้งเวลาการทำงานของสคริปต์หรือคำสั่งต่างๆ
ตัวอย่างพื้นฐาน (แก้ไข): crontab -e
ตัวอย่างพร้อม Argument (ดู): crontab -l (ดูรายการที่ตั้งไว้), crontab -r (ลบ crontab ทั้งหมด)history
หน้าที่: แสดงประวัติคำสั่งที่เคยใช้
ตัวอย่างพื้นฐาน: history
ตัวอย่างพร้อม Argument: history | grep "docker", !100 (รันคำสั่งหมายเลข 100 อีกครั้ง), !! (รันคำสั่งล่าสุดอีกครั้ง)
หมวดที่ 7: การทำงานระยะไกลและถ่ายโอนไฟล์
ssh (Secure Shell)
หน้าที่: เชื่อมต่อไปยังเซิร์ฟเวอร์อื่นอย่างปลอดภัย
ตัวอย่างพื้นฐาน: ssh user@hostname_or_ip
ตัวอย่างพร้อม Argument: ssh -p 2222 -i ~/.ssh/id_rsa user@host "df -h" (ใช้พอร์ตอื่น (-p), ใช้ private key ที่ระบุ (-i), และรันคำสั่งแล้วออกมาเลย)scp (Secure Copy)
หน้าที่: คัดลอกไฟล์ระหว่างเครื่องผ่าน SSH
ตัวอย่างพื้นฐาน (จากเครื่องเราไปเซิร์ฟเวอร์): scp local_file.txt user@host:/remote/path/
ตัวอย่างพร้อม Argument (คัดลอกทั้งไดเรกทอรี): scp -r -P 2222 user@host:/remote/dir ./local_dir (ใช้พอร์ตอื่น -P, คัดลอกแบบ recursive -r)rsync (Remote Sync)
หน้าที่: ซิงโครไนซ์ไฟล์และไดเรกทอรีระหว่างเครื่อง (มีประสิทธิภาพกว่า scp)
ตัวอย่างพื้นฐาน: rsync -avz /local/path/ user@host:/remote/path/
ตัวอย่างพร้อม Argument: rsync -avz --delete --dry-run /local/app/ user@host:/prod/app
--delete: ลบไฟล์ที่ปลายทางถ้าไม่มีที่ต้นทาง
--dry-run: ทดลองรันโดยไม่ทำการเปลี่ยนแปลงใดๆ จริง
หมวดที่ 8: การบีบอัดและจัดเก็บไฟล์ (Archiving & Compression)
tar (Tape Archive)
หน้าที่: รวมหลายไฟล์เป็นไฟล์เดียว (archive) และสามารถบีบอัดได้
ตัวอย่างพื้นฐาน (สร้าง): tar -cvf archive.tar /path/to/dir
ตัวอย่างพร้อม Argument (สร้างและบีบอัด): tar -czvf archive.tar.gz /dir (z คือ gzip), tar -cjvf archive.tar.bz2 /dir (j คือ bzip2)
ตัวอย่างพร้อม Argument (แตกไฟล์): tar -xzvf archive.tar.gz -C /target/dir (x คือ extract, -C คือแตกไฟล์ไปยังไดเรกทอรีอื่น)zip / unzip
หน้าที่: สร้างและแตกไฟล์ .zip ซึ่งเป็นที่นิยมบน Windows
ตัวอย่างพื้นฐาน (บีบอัด): zip -r archive.zip /path/to/dir
ตัวอย่างพร้อม Argument (แตกไฟล์): unzip archive.zip -d /target/directory (แตกไฟล์ (unzip) ไปยังไดเรกทอรีที่ระบุ (-d))
Top comments (0)