DEV Community

Tossapol Ritcharoenwattu
Tossapol Ritcharoenwattu

Posted on • Edited on

Command ที่ใช้มากที่สุด 50 อันดับแรก ผูู้ใช้งาน Linux/DevOPs

50 คำสั่ง Linux (Debian/Ubuntu) ที่ใช้บ่อยสำหรับ DevOps (ฉบับสมบูรณ์)
เอกสารนี้รวบรวม 50 คำสั่งที่จำเป็นสำหรับผู้ที่ทำงานในสาย DevOps บนระบบปฏิบัติการ Linux ตระกูล Debian และ Ubuntu โดยแบ่งเป็นหมวดหมู่ พร้อมคำอธิบายหน้าที่, ตัวอย่างการใช้งาน, และคำอธิบาย Argument ที่สำคัญอย่างละเอียด

หมวดที่ 1: การจัดการไฟล์และไดเรกทอรี (File & Directory Management)

  1. ls (List)
    หน้าที่: แสดงรายการไฟล์และไดเรกทอรีในตำแหน่งปัจจุบัน
    ตัวอย่างพื้นฐาน: ls
    ตัวอย่างพร้อม Argument: ls -lahtr
    -l: แสดงผลในรูปแบบยาว (long format) บอกรายละเอียดสิทธิ์, เจ้าของ, ขนาด, และวันที่แก้ไข
    -a: แสดงไฟล์ทั้งหมด (all) รวมถึงไฟล์ที่ซ่อนอยู่ซึ่งขึ้นต้นด้วยจุด (.)
    -h: แสดงขนาดไฟล์ในหน่วยที่มนุษย์อ่านง่าย (human-readable) เช่น KB, MB, GB
    -t: เรียงลำดับตามเวลาที่แก้ไขล่าสุด (ไฟล์ใหม่สุดอยู่บน)
    -r: เรียงลำดับย้อนกลับ (reverse) (เมื่อใช้กับ -t จะทำให้ไฟล์เก่าสุดอยู่บน)

  2. cd (Change Directory)
    หน้าที่: เปลี่ยนไดเรกทอรีการทำงานไปยังตำแหน่งที่ระบุ
    ตัวอย่างพื้นฐาน: cd /var/log
    ตัวอย่างพร้อม Argument: cd .. (ย้อนกลับไปไดเรกทอรีแม่ 1 ระดับ), cd ~ หรือ cd (กลับไปที่ไดเรกทอรีบ้านของผู้ใช้ปัจจุบัน), cd - (กลับไปไดเรกทอรีล่าสุดที่เคยอยู่)

  3. pwd (Print Working Directory)
    หน้าที่: พิมพ์ที่อยู่เต็มของไดเรกทอรีที่กำลังทำงานอยู่
    ตัวอย่างพื้นฐาน: pwd
    ตัวอย่างพร้อม Argument: pwd -P (แสดงที่อยู่จริงทางกายภาพ (Physical) กรณีที่เป็น Symbolic Link เพื่อหลีกเลี่ยงความสับสน)

  4. cp (Copy)
    หน้าที่: คัดลอกไฟล์หรือไดเรกทอรี
    ตัวอย่างพื้นฐาน: cp source.txt destination.txt
    ตัวอย่างพร้อม Argument: cp -arv /source_dir /destination_dir
    -a (archive): โหมดเก็บถาวร เหมือนกับ -dR --preserve=all เหมาะสำหรับการ backup เพราะจะรักษาสิทธิ์, เจ้าของ, และเวลาของไฟล์ไว้ทั้งหมด
    -r (recursive): คัดลอกทั้งไดเรกทอรีและทุกอย่างที่อยู่ข้างใน
    -v (verbose): แสดงชื่อไฟล์ที่กำลังถูกคัดลอก

  5. mv (Move)
    หน้าที่: ย้าย (move) หรือเปลี่ยนชื่อ (rename) ไฟล์/ไดเรกทอรี
    ตัวอย่างพื้นฐาน (เปลี่ยนชื่อ): mv old_name.txt new_name.txt
    ตัวอย่างพร้อม Argument (ย้ายไฟล์): mv -iv my_file.log /var/log/
    -i (interactive): ถามยืนยันก่อนที่จะเขียนทับไฟล์ที่มีอยู่แล้ว
    -v (verbose): แสดงผลว่ากำลังทำอะไรอยู่

  6. rm (Remove)
    หน้าที่: ลบไฟล์หรือไดเรกทอรี (คำเตือน: คำสั่งนี้ไม่สามารถกู้คืนได้ ใช้ด้วยความระมัดระวังสูงสุด!)
    ตัวอย่างพื้นฐาน: rm temp_file.txt
    ตัวอย่างพร้อม Argument: rm -rf /path/to/dir
    -r (recursive): ลบไดเรกทอรีและทุกอย่างข้างใน
    -f (force): บังคับลบโดยไม่ต้องถามยืนยัน
    -i (interactive): ถามยืนยันก่อนลบทุกครั้ง (ปลอดภัยกว่า)

  7. mkdir (Make Directory)
    หน้าที่: สร้างไดเรกทอรีใหม่
    ตัวอย่างพื้นฐาน: mkdir logs
    ตัวอย่างพร้อม Argument: mkdir -p /project/src/components
    -p (parents): สร้างไดเรกทอรีแม่ที่ยังไม่มีอยู่ให้โดยอัตโนมัติ

  8. touch
    หน้าที่: สร้างไฟล์เปล่า หรืออัปเดตเวลา (timestamp) ของไฟล์ที่มีอยู่ให้เป็นเวลาปัจจุบัน
    ตัวอย่างพื้นฐาน: touch new_file.txt
    ตัวอย่างพร้อม Argument: touch -a -m -d "2 days ago" old_file.txt
    -a: เปลี่ยนเฉพาะ access time
    -m: เปลี่ยนเฉพาะ modification time
    -d: ระบุเวลาที่ต้องการ ไม่ใช่เวลาปัจจุบัน

  9. 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 {} \;: นำผลลัพธ์ที่หาเจอ ไปรันคำสั่งอื่นต่อ ({} คือชื่อไฟล์ที่เจอ)

  10. 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)

  11. cat (Concatenate)
    หน้าที่: แสดงเนื้อหาทั้งหมดของไฟล์ออกมาที่หน้าจอ หรือใช้รวมไฟล์
    ตัวอย่างพื้นฐาน: cat /etc/hosts
    ตัวอย่างพร้อม Argument: cat -n -E script.sh
    -n: แสดงเนื้อหาพร้อมเลขบรรทัด
    -E: แสดงเครื่องหมาย $ ที่ท้ายบรรทัด

  12. less
    หน้าที่: แสดงเนื้อหาไฟล์ทีละหน้า เหมาะกับไฟล์ขนาดใหญ่เพราะไม่ต้องโหลดทั้งไฟล์เข้าหน่วยความจำ
    ตัวอย่างพื้นฐาน: less /var/log/auth.log
    ตัวอย่างพร้อม Argument: less +F /var/log/syslog
    +F: เปิดไฟล์และไปที่ท้ายสุดเพื่อดูข้อมูลแบบ real-time เหมือน tail -f
    ใน less พิมพ์ / ตามด้วยคำที่ต้องการค้นหา แล้วกด Enter

  13. tail
    หน้าที่: แสดงส่วนท้ายของไฟล์ (ค่าเริ่มต้นคือ 10 บรรทัดสุดท้าย)
    ตัวอย่างพื้นฐาน: tail /var/log/syslog
    ตัวอย่างพร้อม Argument: tail -f -n 50 /var/log/nginx/access.log
    -f (follow): ติดตามการเปลี่ยนแปลงของไฟล์และแสดงผลแบบ real-time
    -n 50: ระบุจำนวนบรรทัดที่จะแสดงเป็น 50 บรรทัด

  14. head
    หน้าที่: แสดงส่วนหัวของไฟล์ (ค่าเริ่มต้นคือ 10 บรรทัดแรก)
    ตัวอย่างพื้นฐาน: head /var/log/syslog
    ตัวอย่างพร้อม Argument: head -n 20 script.sh (แสดง 20 บรรทัดแรกของไฟล์)

  15. 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 (แทนที่ทุกจุดในบรรทัด)

  16. 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 {}: คำสั่งที่ให้ทำหลังจากประมวลผลบรรทัดสุดท้ายเสร็จ

  17. 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)

  1. 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): เปลี่ยนเจ้าของทั้งไดเรกทอรีและไฟล์ข้างในทั้งหมด

  2. 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)

  3. sudo (Superuser Do)
    หน้าที่: รันคำสั่งในฐานะผู้ใช้ระดับสูงสุด (superuser/root)
    ตัวอย่างพื้นฐาน: sudo apt update
    ตัวอย่างพร้อม Argument: sudo -u www-data -i
    -u www-data: รันคำสั่งในฐานะ user www-data
    -i: สร้าง login shell ใหม่สำหรับ user นั้นๆ

  4. whoami
    หน้าที่: แสดงชื่อผู้ใช้ (username) ปัจจุบันที่กำลังล็อกอินอยู่
    ตัวอย่างพื้นฐาน: whoami

  5. id
    หน้าที่: แสดงข้อมูล user ID (uid), group ID (gid), และกลุ่มทั้งหมดที่ user นั้นเป็นสมาชิก
    ตัวอย่างพื้นฐาน: id
    ตัวอย่างพร้อม Argument: id -u -n ubuntu (แสดงเฉพาะชื่อ (-n) ของ user ID (-u) ของ user ubuntu)

หมวดที่ 3: การตรวจสอบระบบและ Monitoring

  1. uname (Unix Name)
    หน้าที่: แสดงข้อมูลของระบบปฏิบัติการและเคอร์เนล
    ตัวอย่างพื้นฐาน: uname
    ตัวอย่างพร้อม Argument: uname -a (แสดงข้อมูลทั้งหมด: kernel version, hostname, architecture)

  2. df (Disk Free)
    หน้าที่: ตรวจสอบพื้นที่การใช้งานและพื้นที่ว่างของดิสก์
    ตัวอย่างพื้นฐาน: df
    ตัวอย่างพร้อม Argument: df -hTi
    -h (human-readable): แสดงผลในหน่วยที่มนุษย์อ่านง่าย
    -T (type): แสดงประเภทของ File System
    -i: แสดงข้อมูลการใช้งาน inode (จำนวนไฟล์)

  3. du (Disk Usage)
    หน้าที่: ตรวจสอบขนาดการใช้งานของไฟล์และไดเรกทอรี
    ตัวอย่างพื้นฐาน: du /var/log
    ตัวอย่างพร้อม Argument: du -sh --max-depth=1 /var/log
    -s (summarize): แสดงขนาดรวมของแต่ละ argument
    -h (human-readable): แสดงผลในหน่วยที่อ่านง่าย
    --max-depth=1: แสดงความลึกของไดเรกทอรีแค่ 1 ระดับ

  4. free
    หน้าที่: ตรวจสอบการใช้งานหน่วยความจำ (RAM) และพื้นที่สลับ (Swap)
    ตัวอย่างพื้นฐาน: free
    ตัวอย่างพร้อม Argument: free -h -s 5
    -h: แสดงผลในหน่วยที่อ่านง่าย
    -s 5: แสดงผลซ้ำทุกๆ 5 วินาที

  5. top
    หน้าที่: แสดงโปรเซสที่กำลังทำงานอยู่แบบ real-time จัดเรียงตามการใช้ CPU เป็นค่าเริ่มต้น
    ตัวอย่างพื้นฐาน: top (กด q เพื่อออก)
    ตัวอย่างพร้อม Argument: top -u www-data -d 3
    -u: แสดงโปรเซสเฉพาะของ user ที่ระบุ
    -d 3: รีเฟรชหน้าจอทุกๆ 3 วินาที

  6. htop
    หน้าที่: เหมือน top แต่มีสีสันและใช้งานง่ายกว่า (อาจต้องติดตั้ง sudo apt install htop)
    ตัวอย่างพื้นฐาน: htop
    ตัวอย่างพร้อม Argument: htop -u www-data (แสดงเฉพาะโปรเซสของ user www-data)

  7. 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)

  8. dmesg (Display Message)
    หน้าที่: แสดงข้อความจาก kernel ring buffer มีประโยชน์มากเวลาแก้ปัญหาเกี่ยวกับ hardware หรือ driver
    ตัวอย่างพื้นฐาน: dmesg
    ตัวอย่างพร้อม Argument: dmesg -T --level=err,warn
    -T: แสดงผลพร้อมเวลาที่อ่านได้
    --level=err,warn: กรองข้อความให้แสดงเฉพาะระดับ error และ warning

  9. journalctl
    หน้าที่: เครื่องมือสำหรับดู 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)

  1. ip
    หน้าที่: เครื่องมือจัดการเครือข่ายที่มาแทน ifconfig
    ตัวอย่างพื้นฐาน: ip addr show (หรือ ip a)
    ตัวอย่างพร้อม Argument: ip link set dev eth0 down (ปิดการใช้งาน interface eth0), ip route show (ดู routing table)

  2. 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)

  3. 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 ทั้งหมด

  4. 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 เป็น POST

  5. wget
    หน้าที่: ดาวน์โหลดไฟล์จากอินเทอร์เน็ต
    ตัวอย่างพื้นฐาน: 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 (ใช้กรณีจำเป็น)

  6. dig (Domain Information Groper)
    หน้าที่: ใช้สอบถามข้อมูลจาก DNS Server
    ตัวอย่างพื้นฐาน: dig google.com
    ตัวอย่างพร้อม Argument: dig +trace +short google.com
    +trace: แสดงเส้นทางการ query ทั้งหมดตั้งแต่ Root DNS Server
    +short: แสดงเฉพาะคำตอบสั้นๆ (IP address)

  7. 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)

  1. apt
    หน้าที่: เครื่องมือหลักในการติดตั้ง, อัปเดต, และลบซอฟต์แวร์
    ตัวอย่างพื้นฐาน: sudo apt update && sudo apt upgrade
    ตัวอย่างพร้อม Argument: sudo apt install -y nginx, sudo apt autoremove --purge (ลบแพ็คเกจที่ไม่จำเป็นแล้วพร้อมไฟล์คอนฟิก)

  2. dpkg (Debian Package)
    หน้าที่: เครื่องมือระดับล่างสำหรับจัดการไฟล์แพ็คเกจ .deb
    ตัวอย่างพื้นฐาน: sudo dpkg -i my-package_1.0.0_amd64.deb
    ตัวอย่างพร้อม Argument: dpkg -S /bin/ls (ค้นหา (-S) ว่าไฟล์ /bin/ls มาจากแพ็คเกจไหน)

หมวดที่ 6: การจัดการโปรเซสและ Automation

  1. systemctl
    หน้าที่: เครื่องมือหลักในการควบคุม systemd เพื่อจัดการ services
    ตัวอย่างพื้นฐาน: sudo systemctl status nginx
    ตัวอย่างพร้อม Argument: sudo systemctl enable --now docker (เปิดใช้งาน service ให้เริ่มตอนบูท (enable) และสตาร์ททันที (--now)), sudo systemctl mask cron.service (ปิดการใช้งาน service โดยสิ้นเชิง)

  2. kill
    หน้าที่: ส่งสัญญาณ (signal) ไปยังโปรเซส (โดยปกติคือการสั่งปิด)
    ตัวอย่างพื้นฐาน: kill 1234 (ส่ง SIGTERM (15) ซึ่งเป็นการขอให้ปิดอย่างสุภาพ)
    ตัวอย่างพร้อม Argument: kill -9 1234 (ส่ง SIGKILL (-9) เพื่อบังคับปิดโปรเซสทันที), kill -1 1234 (ส่ง SIGHUP (-1) เพื่อสั่งให้โปรเซสโหลดคอนฟิกใหม่)

  3. pkill
    หน้าที่: สั่งปิดโปรเซสโดยใช้ชื่อแทน PID
    ตัวอย่างพื้นฐาน: pkill firefox
    ตัวอย่างพร้อม Argument: pkill -f "python my_script.py" (ใช้ (-f) full command line ในการค้นหาโปรเซสที่จะปิด)

  4. cron / crontab
    หน้าที่: ตั้งเวลาการทำงานของสคริปต์หรือคำสั่งต่างๆ
    ตัวอย่างพื้นฐาน (แก้ไข): crontab -e
    ตัวอย่างพร้อม Argument (ดู): crontab -l (ดูรายการที่ตั้งไว้), crontab -r (ลบ crontab ทั้งหมด)

  5. history
    หน้าที่: แสดงประวัติคำสั่งที่เคยใช้
    ตัวอย่างพื้นฐาน: history
    ตัวอย่างพร้อม Argument: history | grep "docker", !100 (รันคำสั่งหมายเลข 100 อีกครั้ง), !! (รันคำสั่งล่าสุดอีกครั้ง)

หมวดที่ 7: การทำงานระยะไกลและถ่ายโอนไฟล์

  1. ssh (Secure Shell)
    หน้าที่: เชื่อมต่อไปยังเซิร์ฟเวอร์อื่นอย่างปลอดภัย
    ตัวอย่างพื้นฐาน: ssh user@hostname_or_ip
    ตัวอย่างพร้อม Argument: ssh -p 2222 -i ~/.ssh/id_rsa user@host "df -h" (ใช้พอร์ตอื่น (-p), ใช้ private key ที่ระบุ (-i), และรันคำสั่งแล้วออกมาเลย)

  2. 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)

  3. 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)

  1. 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 คือแตกไฟล์ไปยังไดเรกทอรีอื่น)

  2. zip / unzip
    หน้าที่: สร้างและแตกไฟล์ .zip ซึ่งเป็นที่นิยมบน Windows
    ตัวอย่างพื้นฐาน (บีบอัด): zip -r archive.zip /path/to/dir
    ตัวอย่างพร้อม Argument (แตกไฟล์): unzip archive.zip -d /target/directory (แตกไฟล์ (unzip) ไปยังไดเรกทอรีที่ระบุ (-d))

Top comments (0)