Tmux คือกรณีของ “แย่กว่าแต่ดีกว่า”
(hiandrewquinn.github.io)tmux เป็นตัวเลือกที่ดีกว่าหรือไม่
แนะนำ tmux
- tmux ย่อมาจาก "terminal multiplexer" ซึ่งช่วยให้สามารถแบ่งเทอร์มินัลออกเป็นเชลล์อิสระหลายตัวได้
- ติดตั้งมาเป็นค่าเริ่มต้นบน OpenBSD
- มีประโยชน์สำหรับโปรแกรมเมอร์ที่ใช้ SSH บ่อย
- สามารถแบ่งหน้าจอได้โดยไม่ต้องมีสภาพแวดล้อมแบบกราฟิก
- เหมาะกับผู้ที่ยึดแนวคิด digital minimalism
ความเห็นของ Kovid Goyal
- Kovid Goyal เป็นผู้พัฒนาซอฟต์แวร์ ePub อย่าง calibre และเทอร์มินัลอีมูเลเตอร์ Kitty
- Goyal ไม่ชอบ tmux
- เขาแสดงความเห็นเชิงลบต่อ tmux ไว้ใน FAQ ของเขา
- terminal multiplexer เพิ่ม overhead ที่ไม่จำเป็น
- ความซับซ้อนที่เพิ่มขึ้นทำให้ประสิทธิภาพลดลง
- ไม่มีประสิทธิภาพทั้งในแง่พลังงานและสมรรถนะ
- ส่งผลเสียต่อ ecosystem โดยรวม
ประสบการณ์การใช้งานส่วนตัว
- ผู้เขียนใช้ UNIX ที่บ้าน และใช้ Windows ที่ทำงาน
- ในสถานการณ์ที่ต้องใช้ SSH หลายครั้ง ผู้เขียนใช้ tmux บ่อย
- tmux สามารถทำงานได้กับเทอร์มินัลอีมูเลเตอร์หลากหลายแบบ
- Kitty ต้องทำงานได้บนระบบที่เชื่อมต่อเข้าไปจากระยะไกล
ปรัชญา "Worse is better"
- "Worse is better" ใกล้เคียงกับปรัชญาด้านการจัดการผลิตภัณฑ์มากกว่าจะเป็นปรัชญาซอฟต์แวร์
- แนวคิดนี้เน้นว่าควรปรับฟังก์ชันหลักของซอฟต์แวร์ให้เหมาะกับกรณีใช้งานที่พบบ่อยที่สุด
- ผู้เขียนชอบ VM เป็นการส่วนตัว แต่ในความเป็นจริงกลับใช้ tmux บ่อยกว่า
บทสรุป
- ผู้เขียนใช้งานการเชื่อมต่อระยะไกลบน Windows เป็นหลัก
- จำคีย์ลัดของ tmux ได้
- คีย์ลัดของ Kitty ก็ดีมาก แต่ tmux มีประโยชน์กว่า
ความเห็นของ GN⁺
- tmux มีประโยชน์มากสำหรับนักพัฒนาที่ใช้ SSH บ่อย โดยเฉพาะความสามารถในการรันหลายเชลล์พร้อมกันซึ่งเป็นข้อได้เปรียบอย่างมาก
- อย่างที่ Kovid Goyal เห็นไว้ terminal multiplexer อาจส่งผลต่อประสิทธิภาพได้ แต่สำหรับผู้ใช้ส่วนใหญ่ ประโยชน์ที่ได้มักสำคัญกว่า
- เทอร์มินัลอีมูเลเตอร์อย่าง Kitty อาจให้ประสิทธิภาพที่ดีกว่า แต่ยากที่จะมาแทนความอเนกประสงค์และความสะดวกของ tmux
- สำหรับผู้ที่ยึดแนวคิด digital minimalism, tmux เป็นเครื่องมือที่น่าสนใจมาก เพราะมอบความสามารถที่ทรงพลังได้โดยไม่ต้องพึ่งสภาพแวดล้อมแบบกราฟิก
- หากใช้ tmux ร่วมกับ Kitty ก็จะดึงจุดเด่นของแต่ละเครื่องมือออกมาใช้ได้เต็มที่ เช่น ใช้ Kitty บนเครื่องโลคัล และใช้ tmux บนเซิร์ฟเวอร์ระยะไกล
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
สรุปความคิดเห็นจาก Hacker News
"ไม่คิดว่าการพาร์สการกดคีย์สองครั้งจะเป็นสาเหตุหลักที่ทำให้เปลือง CPU cycles และกินแบตเตอรี่ แม้ว่า Kitty จะมีฟีเจอร์ของ tmux เกือบทั้งหมดในตัว แต่ก็ไม่ได้ช่วยคนที่ทำงานผ่าน SSH มากนัก การยัดทุกอย่างไว้ใน terminal emulator ดูเหมือนเป็นการเพิ่มฟีเจอร์ที่ไม่จำเป็น"
"เหตุผลที่ต้องใช้ tmux จริง ๆ คือความสามารถในการคงอยู่ของเซสชันระยะไกล ไม่อยากเสียเซสชัน vim ไปแม้ว่าการเชื่อมต่อกับเซิร์ฟเวอร์จะหลุด"
"ฟีเจอร์เด็ดของ tmux คือการทำให้ workspace คงอยู่ ไม่ใช่แค่ shell เท่านั้น ทั้ง Kitty และ screen แก้ปัญหานี้ไม่ได้ ถ้ามีการคงอยู่ของ workspace ที่อิงกับ terminal emulator ได้ ก็จะเลิกใช้ tmux"
"Kovid Goyal ผู้พัฒนา Kitty ไม่ชอบ tmux Kitty มีฟีเจอร์ของ tmux เกือบทั้งหมด แต่ไม่มีความสามารถในการคงอยู่ของเซสชันระยะไกล การพึ่งพา terminal emulator หมายความว่าเมื่อเปลี่ยนไปใช้อีมูเลเตอร์ตัวอื่น ก็ต้องสร้าง muscle memory ใหม่"
"การใช้งาน
screenหรือtmuxขั้นพื้นฐาน (เริ่มใช้งาน, สร้างและสลับหน้าต่าง, เชื่อมต่อกลับ) ควรเป็นส่วนหนึ่งของชุดทักษะสำหรับคนที่ต้อง SSH เข้าเซิร์ฟเวอร์ โดยเฉพาะในสตาร์ทอัพ ควรเข้าใจระบบและทำงานได้อย่างสร้างสรรค์และมีประสิทธิภาพ""สามารถเพิ่มการตั้งค่าใน
~/.ssh/configเพื่อทำ multiplex ให้ SSH sessions ใช้การเชื่อมต่อเดียวกันได้ เซสชันแรกใช้การยืนยันตัวตนด้วยลายนิ้วมือ และหลังจากนั้นสามารถเชื่อมต่อได้โดยไม่ต้องยืนยันตัวตนเป็นเวลา 300 วินาที สามารถคงเซสชันไว้ได้แม้อยู่ในสถานะออฟไลน์ผ่าน Tailscale""คุณค่าที่ใหญ่ที่สุดของ SSH คือทำให้งานที่ใช้เวลานานดำเนินต่อไปได้แม้การเชื่อมต่อจะหลุด การที่การดาวน์โหลดนาน ๆ เกือบเสร็จแล้วแต่ดันหลุดนั้นน่าหงุดหงิดมาก"
"ใช้ Windows เป็น host OS และทำงานบน Linux ใช้ tmux เพื่อรันหลาย shell มีปัญหาเรื่องประสิทธิภาพอยู่บ้าง แต่ในแง่ productivity แล้วมีประโยชน์มาก"
"สำหรับ remote SSH ใช้การตั้งค่า .ssh/config เพื่อให้เริ่ม remote tmux โดยอัตโนมัติ ทำให้บันทึกงานไว้ได้แม้การเชื่อมต่อไม่เสถียร ใช้ tmux ทุกวันและยังไม่เจอทางเลือกอื่น"
"ความเห็นของ Kovid อาจถูกต้องในเชิงเทคนิค แต่ผิดในแง่ usability ผู้ใช้มักชอบสิ่งที่ทำให้ชีวิตง่ายขึ้น ลองใช้ zellij แล้วแต่สุดท้ายก็กลับมาใช้ tmux tmux มีอุปสรรคในการเริ่มใช้งานต่ำกว่า"