1 คะแนน โดย GN⁺ 2024-05-27 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

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 ความคิดเห็น

 
GN⁺ 2024-05-27
ความคิดเห็นจาก 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 มีอุปสรรคในการเริ่มใช้งานต่ำกว่า"