Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีบันทึก Output ของ Terminal ลงไฟล์ใน Linux (5 วิธี)

Terminal เป็นหัวใจของ Linux ทุกโปรแกรมรันใต้ Command Line รวม Browser ใหญ่ๆ จน Text Editor เล็กๆ การใช้ Terminal ให้เก่งเป็นขั้นตอนสำคัญเข้าใจ OS

ขณะทำงานบน Terminal อาจต้องการบันทึก Output ของคำสั่งลงไฟล์ เพื่อนำไปใช้ต่อ หรือ Log กิจกรรม บทความนี้สอน 5 วิธี

1. ใช้ Terminal ที่รองรับบันทึก Output โดยตรง

บาง Terminal มีฟีเจอร์บันทึก Output เป็นไฟล์ เช่น Konsole (KDE) กด File → Save output as... → เลือกที่บันทึก

GNOME Terminal ก็ทำได้: Right-click → Copy output as HTML → วางใน Text Editor

2. Output Redirection (การเปลี่ยนทิศทาง Output)

ใช้ Operator ของ UNIX Shell รวม 3 ตัว:

  • > — สร้างไฟล์ใหม่หรือทับไฟล์เดิมด้วย Output (เหมาะดูผลลัพธ์ล่าสุด)
  • >> — สร้างไฟล์ใหม่หรือต่อท้ายไฟล์เดิม (เหมาะ Log ต่อเนื่อง)
  • 2> — จับ Error Output (ดีสำหรับ Debug)

การใช้: ใส่ Operator ท้ายคำสั่ง ตัวอย่าง: echo "maketecheasier" > hello.txt จะเขียน "maketecheasier" ลง hello.txt แทนแสดงหน้าจอ

3. ใช้คำสั่ง tee

tee โปรแกรม GNU อ่านจาก Standard Input เขียนไป Standard Output และไฟล์พร้อมกัน ใช้กับ Pipe (|)

ตัวอย่าง: echo "maketecheasier" | tee hello.txt จะแสดงบนหน้าจอและบันทึกลง hello.txt พร้อมกัน

หมายเหตุ: Pipe นำ Output ของโปรแกรมหนึ่งไปเป็น Input ของอีกตัว ต่อโปรแกรมหลายตัวได้

4. ใช้คำสั่ง script

script โปรแกรม Built-in บันทึกทุกอย่างที่พิมพ์ใน Terminal รวม Output ด้วย ใช้สร้าง Log Session แบบ Text ที่ Parse ได้ ส่ง Error Log ขอช่วยเหลือได้

รัน: script filename.txt → จะเข้าสู่ Script Environment พิมพ์คำสั่งต่อไปได้ จะบันทึกรวม Keystrokes และ Control Characters (Tab, Backspace ด้วย)

จบ Session พิมพ์ exit จะเขียน Log ลงไฟล์

5. Framebuffer Terminal Capture

จับ Output จาก Linux Framebuffer เหมาะสำหรับทำงานบน TTY (Teletype) จริง

รัน: cat /dev/fb0 > capture.raw จะ Dump Raw Bytes ของ Framebuffer ลงไฟล์ ต้องเปิดใน Image Editor ปรับ Color/Bit Depth เอง ยุ่งยากและผิดง่าย

ทางออก: ใช้ fbgrab จับหน้าจอ TTY จาก Framebuffer บันทึกเป็น PPM หรือ PNG

ติดตั้ง fbgrab: Debian/Ubuntu sudo apt install fbgrab, Arch sudo pacman -S fbgrab

ใช้ fbgrab จับ Output

กด Ctrl+Shift+Alt+F3 เข้า TTY → รัน fbcat หรือ fbgrab

  • fbcat — เรียบง่าย จับหน้าจอบันทึกเป็น PPM (Raw image format แปลงเป็น PNG ได้) เหมาะ Display Bit-depth ต่ำ
  • fbgrab — ซับซ้อนกว่า จับ Display Bit-depth สูง บันทึกเป็น PNG ได้ มี Option เลือก TTY เลขเท่าไหร่
    ตัวอย่าง: sudo fbgrab -c 3 capture.png (จับ TTY ที่ 3)

คำถามที่พบบ่อย (FAQ)

1. fbgrab ไม่ทำงาน รูปดำ/ว่างเปล่า ทำไง?

อาจใช้ Framebuffer Device ตัวอื่น ตรวจสอบด้วย ls /dev หา /dev/fbX ปกติ用 /dev/fb0 หากเป็นตัวอื่น (เช่น fb1) ใช้: fbgrab -d 1 capture.png

2. ดึงเนื้อหาไฟล์ที่เป็น Input ให้โปรแกรมได้ไหม?

ได้! ใช้ Operator < ดึงข้อมูลจากไฟล์ Shell จะถือว่าเป็น Input ของโปรแกรม
ตัวอย่าง: cat test.txt | program vs program < test.txt (วิธีที่ 2 สั้นกว่า ไม่ต้องใช้ cat)

3. บังคับ script จับ Output คำสั่งเดียวได้ไหม?

ได้! ใช้ Flag -c: script -c "your-command" test.txt จะรันคำสั่งเดียว เขียน Output ลง test.txt