รู้จัก tmux: เครื่องมือจัดการเทอร์มินัลที่ Dev และ DevOps ควรใช้
tmux คือเครื่องมือแบบ terminal multiplexer ที่ช่วยให้จัดการงานบนเทอร์มินัลได้เป็นระบบ โดยเฉพาะงานผ่าน SSH หรืองานที่รันยาว ๆ ก็สามารถทำต่อได้แม้การเชื่อมต่อจะหลุดไปแล้ว

รู้จัก tmux: เครื่องมือจัดการเทอร์มินัลที่ Dev และ DevOps ควรใช้
สำหรับสาย Dev และ DevOps ที่ทำงานบนเทอร์มินัลเป็นประจำ tmux ถือเป็นเครื่องมือสำคัญที่ช่วยให้การทำงานคล่องตัวขึ้นมาก แม้หลายคนจะรู้จักมันในฐานะเครื่องมือสำหรับ “เปิดหลายหน้าจอ” แต่จุดแข็งที่แท้จริงของ tmux คือการจัดการ session การทำงาน ให้ต่อเนื่อง เป็นระเบียบ และยืดหยุ่นกว่าการใช้เทอร์มินัลทั่วไป
tmux คืออะไร
tmux เป็น terminal multiplexer หรือเครื่องมือที่ช่วยให้เราเปิดหลาย session, window และ pane ได้ภายในเทอร์มินัลเดียว โดยแต่ละ session สามารถทำงานแยกจากหน้าต่างเทอร์มินัลจริงได้
ข้อดีสำคัญคือ เมื่อเรา SSH เข้าเซิร์ฟเวอร์แล้วรันงานอยู่ภายใน tmux ต่อให้เน็ตหลุดหรือปิดหน้าต่าง SSH ไป งานนั้นก็ยังทำงานต่อได้ เพราะโปรเซสยังอยู่ใน tmux session เดิม ไม่ได้หายไปพร้อมการเชื่อมต่อ
จุดเด่นที่ทำให้ tmux มีประโยชน์มาก
1. แยก session ออกจากหน้าต่างเทอร์มินัล
แนวคิดสำคัญของ tmux คือการแยก “สภาพแวดล้อมการทำงาน” ออกจากตัวหน้าต่างเทอร์มินัลที่เราเปิดใช้งานอยู่จริง ๆ ทำให้สามารถกลับเข้าไปทำงานต่อใน session เดิมได้ทุกเมื่อ
ตัวอย่างเช่น หากคุณ SSH เข้าเซิร์ฟเวอร์เพื่อรันคำสั่งสำคัญ แล้วเกิดอินเทอร์เน็ตหลุด งานจะไม่ถูกยกเลิกทันทีถ้ารันอยู่ใน tmux session นี่เป็นประโยชน์มากสำหรับงาน production หรือระบบที่ต้องดูแลต่อเนื่อง
2. เหมาะกับงานที่ใช้เวลานาน
tmux เหมาะมากกับงานที่ต้องใช้เวลารันนาน เช่น
- การ build โปรเจกต์ขนาดใหญ่
- การ migrate database
- การ train model
- การ run tests
- การ tail logs
งานประเภทนี้มักมีความเสี่ยงหากรันในเทอร์มินัลปกติ เพราะถ้าปิดเครื่องหรือหลุดจาก SSH ทุกอย่างอาจหยุดทันที แต่ tmux ช่วยให้เราปล่อยงานไว้แล้วกลับมาตรวจภายหลังได้
3. แบ่งหน้าจอทำงานในเทอร์มินัลได้จริง
หนึ่งในฟีเจอร์ที่หลายคนชอบมากคือการแบ่งหน้าจอเป็นหลาย pane ภายในหน้าต่างเดียว เช่น
- ด้านซ้ายใช้ดู log
- ด้านขวาใช้รัน server
- ด้านล่างใช้รัน test
การทำงานลักษณะนี้ช่วยลดการสลับแท็บไปมา และทำให้มองเห็นภาพรวมของระบบได้พร้อมกันในหน้าจอเดียว
4. จัดระเบียบงานด้วย Session, Window และ Pane
tmux มีโครงสร้างที่ช่วยจัดการงานได้เป็นระบบ ได้แก่
- Session: พื้นที่ทำงานหลัก
- Window: หน้าต่างย่อยภายใน session
- Pane: ช่องย่อยภายในแต่ละ window
แนวทางที่นิยมคือแยกหนึ่งโปรเจกต์ต่อหนึ่ง session จากนั้นค่อยแบ่งงานย่อยเป็น window และ pane เช่น session สำหรับ API, worker, database และ logs วิธีนี้ช่วยให้สลับงานได้เร็วและเป็นระเบียบมากขึ้น
5. ใช้กับ Remote Server ได้ทรงพลังมาก
เมื่อใช้ tmux ร่วมกับ remote server ประสิทธิภาพการทำงานจะดีขึ้นอย่างชัดเจน คุณสามารถสร้าง session แยกตามหน้าที่ เช่น api, worker, db, logs แล้วกลับเข้าไปตรวจแต่ละส่วนได้อย่างรวดเร็ว
สำหรับคนที่ดูแลหลายบริการหรือหลายโปรเซสพร้อมกัน tmux จะช่วยลดความวุ่นวายและทำให้การบริหารระบบดูเป็นมืออาชีพมากขึ้น
6. แชร์ session เพื่อทำงานร่วมกันได้
ในบางกรณี ถ้าทำงานอยู่บนเครื่องเดียวกัน ผู้ใช้หลายคนสามารถ attach เข้า session เดียวกันเพื่อดูหรือช่วยกันทำงานได้ เหมาะสำหรับ
- pair debugging
- การสอนงานในทีม
- การช่วยกันตรวจปัญหาแบบ real-time
ฟีเจอร์นี้ทำให้ tmux ไม่ได้เป็นแค่เครื่องมือส่วนตัว แต่ยังสนับสนุนการทำงานร่วมกันได้ด้วย
7. เปิดสภาพแวดล้อมเดิมซ้ำได้ด้วยสคริปต์
อีกความสามารถที่ทรงพลังของ tmux คือการเขียนสคริปต์เพื่อเปิด environment แบบเดิมอัตโนมัติ เช่น
- สร้าง 1 session
- เปิด 3 pane
- รันคำสั่งประจำแต่ละ pane ให้ครบ
สิ่งนี้ช่วยลดงานซ้ำที่ต้องทำทุกวัน โดยเฉพาะคนที่ต้องเริ่มโปรเจกต์เดิมด้วยชุดคำสั่งเหมือนกันทุกครั้ง
วิธีเริ่มต้นใช้งาน tmux แบบสั้นและจำง่าย
การติดตั้ง
- บน Linux สามารถติดตั้งผ่าน package manager ของแต่ละ distro ได้เลย
- บน macOS ใช้คำสั่ง:
brew install tmux
คำสั่งพื้นฐาน
สร้าง session ใหม่:
tmux new -s work
ออกจาก session โดยไม่ปิดงาน:
กด Ctrl+b แล้วกด d
กลับเข้า session เดิม:
tmux attach -t work
ดูรายการ session ทั้งหมด:
tmux ls
คีย์ลัดพื้นฐานที่ควรจำ
tmux ใช้ Ctrl+b เป็นปุ่มนำหน้า หรือ prefix ก่อนตามด้วยคำสั่งต่าง ๆ
คีย์ลัดสำคัญที่ควรรู้ ได้แก่
Ctrl+bแล้วกดcสร้างหน้าต่างใหม่Ctrl+bแล้วกด,เปลี่ยนชื่อหน้าต่างCtrl+bแล้วกด%แบ่งหน้าจอซ้าย-ขวาCtrl+bแล้วกด"แบ่งหน้าจอบน-ล่างCtrl+bแล้วกดoสลับ pane
หากจำชุดนี้ได้ ก็เริ่มใช้งานจริงได้แล้วในระดับพื้นฐาน
ทริคที่คนเริ่มใช้มักไม่รู้
Copy Mode
tmux มีโหมดสำหรับเลื่อนดูข้อความย้อนหลังชื่อว่า copy mode ซึ่งมีประโยชน์มากเมื่อโปรแกรมที่กำลังรันอยู่ไม่รองรับการเลื่อนหน้าจอแบบปกติ
เข้า copy mode:
Ctrl+bแล้วกด[
ค้นหาข้อความใน copy mode:
- กด
/แล้วพิมพ์คำค้น
ฟีเจอร์นี้เหมาะมากสำหรับการไล่ดู log หรือย้อนหาข้อความสำคัญ
ปรับแต่งผ่านไฟล์คอนฟิก
เราสามารถปรับสี ธีม และคีย์ลัดต่าง ๆ ของ tmux ได้ผ่านไฟล์ ~/.tmux.conf เพื่อให้เข้ากับสไตล์การใช้งานของตัวเองมากขึ้น
นอกจากนี้ยังสามารถแชร์ config เดียวกันให้ทีมใช้ร่วมกันได้ ช่วยให้ทุกคนมี workflow ที่สอดคล้องกันมากขึ้น
ทำไม tmux ถึงเป็นสกิลพื้นฐานที่คุ้มค่า
ถ้าคุณทำงานผ่าน SSH เป็นประจำ ต้องรันโปรเซสยาว ๆ ดู log บ่อย หรืออยากจัดหน้าจอทำงานในเทอร์มินัลให้เป็นระบบ tmux เป็นเครื่องมือที่ช่วยประหยัดเวลาและลดความผิดพลาดได้อย่างมาก
มันไม่ได้ช่วยแค่เรื่องความสะดวก แต่ยังช่วยให้การทำงานเสถียรขึ้น โดยเฉพาะในสถานการณ์ที่การเชื่อมต่อไม่แน่นอนหรือมีหลายงานต้องดูพร้อมกัน
สรุป
tmux เป็นมากกว่าเครื่องมือแบ่งหน้าจอในเทอร์มินัล แต่คือระบบจัดการ session ที่ช่วยให้การทำงานของสาย Dev และ DevOps มีประสิทธิภาพขึ้นอย่างชัดเจน ไม่ว่าจะเป็นการรันงานยาว ๆ บนเซิร์ฟเวอร์ การแบ่ง pane เพื่อดูหลายอย่างพร้อมกัน หรือการกลับเข้ามาทำงานต่อได้แม้ SSH จะหลุด
หากคุณยังไม่เคยลองใช้ การเริ่มจากคำสั่งพื้นฐานไม่กี่ตัวก็เพียงพอที่จะเห็นความแตกต่าง และมีโอกาสสูงที่ tmux จะกลายเป็นหนึ่งในเครื่องมือประจำตัวที่ขาดไม่ได้ในงานประจำวัน