Byobu กับ GNU Screen เทียบกับ tmux - ประโยชน์และทักษะการถ่ายโอน [ปิด]


95

จนถึงตอนนี้ฉันได้ใช้Konsoleเพื่อจัดการเชลล์หลายครั้ง แต่ฉันไม่ได้ลองByobu , GNU Screenและtmuxซึ่งให้การสนับสนุนที่ดีกว่าสำหรับเชลล์หลาย ๆ ตัว พวกเขาทั้งหมดแบ่งปันคุณสมบัติหลักอย่างใดอย่างหนึ่งซึ่งจะช่วยให้การแยกเซสชั่นปัจจุบันและต่อมา reattaching เซสชั่นเก่าที่

เพื่อช่วยให้ฉันเลือกเครื่องมือในการเรียนรู้ฉันต้องการทราบ: พวกเขาต่างกันอย่างไรในประเด็นต่อไปนี้

  1. คุณสมบัติ (ชัด)
  2. กำหนดโครงการ ฉันไม่ต้องการเรียนรู้เครื่องมือที่เปลี่ยนแปลงมากเกินไป ยินดีต้อนรับการปรับปรุง แต่ฉันไม่ชอบความประหลาดใจเช่นคุณลักษณะที่หายไป
  3. โค้งการเรียนรู้
  4. ความพร้อมใช้งานในแพลตฟอร์มต่าง ๆ หากฉันเรียนรู้เครื่องมือฉันต้องการใช้งานบนเซิร์ฟเวอร์ FreeBSD, SuSE desktop หรือ Ubuntu
  5. ความเข้ากันได้กับโปรแกรมเชลล์แบบโต้ตอบอื่น ๆ ฉันยังคงสามารถใช้vimและemacs -nw(ไม่ใช่โหมดหน้าต่างหรือโหมดข้อความ) ในลักษณะเดียวกับที่ฉันคุ้นเคยได้หรือไม่? แป้นพิมพ์ลัดจะขัดแย้งกับเครื่องมืออื่น ๆ หรือไม่?

ฉันลองพวกมันทั้งหมดแล้ว Byobu ดูเหมือนส่วนหน้าของ GNU Screen และ tmux ถ้าเช่นนั้นทำไมบางคนถึงสร้าง Byobu แทนที่จะมีส่วนร่วมในโครงการหน้าจอ GNU และเพิ่มคุณสมบัติใหม่ เหตุใด Byobu จึงไม่ใช่โหมดอินเตอร์เฟสขั้นสูงบางประเภทในหน้าจอ GNU ถ้าฉันใช้ Byobu เป็นเครื่องมือรายวันกับหน้าจอ GNU เป็นแบ็กเอนด์ฉันจะถ่ายโอนความรู้นี้เพื่อใช้หน้าจอ GNU โดยไม่ต้อง Byobu ได้หรือไม่ถ้าเครื่องบางเครื่องมีหน้าจอ GNU เท่านั้น


1
แสดงความคิดเห็นคำถามของฉันเอง หลังจากที่ฉันโพสต์ฉันเพิ่งเห็นจำนวนครั้งที่แต่ละแท็กถูกใช้ใน StackExchange: gnu-screen: 199 ครั้ง tmux: 125 ครั้ง byobu: 18 ครั้งนั่นหมายความว่า byobu ยังไม่เป็นที่นิยมหรือไม่ หรือ byobu นั้นใช้งานง่ายจนไม่มีใครมีคำถามเกี่ยวกับวิธีการใช้งาน?
Keitai

1
เพราะbyobuเป็นเพียงส่วนหนึ่งของscreenคุณลักษณะพิเศษดังนั้นจึงgnu-screenใช้แท็ก
grawity

2
ตามเอกสาร ( manpages.ubuntu.com/manpages/precise/en/man1/byobu.1.html ) การกำหนดค่าเริ่มต้นของ Byobu คือการใช้ tmux เป็นแบ็กเอนด์เริ่มต้น ถ้า byobu เป็นทางแยกของหน้าจอ gnu นั่นหมายความว่า tmux นั้นดีกว่าหน้าจอ gnu หรือไม่?
Keitai

1
น่าสนใจฉันไม่ทราบว่าตอนนี้รองรับ tmux แล้วแม้ว่ามันจะยังคงเป็นเพียงสคริปต์ตัวหุ้ม แต่ใช่ tmux นั้นดีกว่า Screen (อย่างน้อยก็มีคำถามที่พบบ่อย )
grawity

22
Byobu ไม่ได้แยกอะไรเลย! มันเป็นเลเยอร์ที่อยู่ด้านบนของหน้าจอและ Tmux ซึ่งคล้ายกับ Gnome / KDE ที่เป็นเลเยอร์บน Xorg
ดัสตินเคิร์กแลนด์

คำตอบ:


32

สำหรับหน้าจอ Tmux vs GNU ให้อ่าน

และสาขาเปรียบเทียบอื่น ๆ อีกหลายแห่งที่สามารถพบได้ในบล็อกและอื่น ๆ

บางคำศัพท์ทั่วไปที่มีการทำซ้ำ:

  • Tmux ใหม่กว่านี้ ซึ่งหมายความว่ามันเป็นบิตที่นักเล่น (แยกแนวตั้งง่าย, เส้นสีเขียวที่ดี) และทดสอบน้อยดีสำหรับเช่นความเข้ากันได้ (ในระดับเล็กน้อยตามผู้เสนอของมัน)
  • Tmux พึ่งพาทรัพยากร
  • พบหน้าจอ GNU ได้ทุกที่และอาจยังคงใช้งานได้มากกว่า

นอกเหนือจากนี้เราสามารถดูฟังก์ชั่นที่เฉพาะเจาะจงสำหรับหนึ่งหรือทางเลือกอื่น ๆ และการตั้งค่าส่วนตัวจะครองการอภิปราย ฉันเคยใช้หน้าจอ GNU เป็นการส่วนตัว - ตอนนี้ฉันใช้ Tmux

ฉันไม่พบ Byobu ที่จะมี "คุณสมบัตินักฆ่า" สำหรับฉัน มันเป็นนามธรรมที่ฉันเชื่อว่าไม่จำเป็นสำหรับกรณีการใช้งานของฉัน


อีกวิธีในการดูก็คือให้สังเกตว่า Byobu สามารถใช้หน้าจอ GNU หรือ Tmux เป็นแบ็กเอนด์ซึ่งแสดงให้เห็นว่าความแตกต่างจาก POV ผู้ใช้ส่วนใหญ่เป็นเพียงผิวเผิน


268

เป็นคำถามที่ดีมาก! สำหรับสิ่งที่คุ้มค่าผมผู้เขียนและผู้ดูแลของByobu

Byobuเป็นชั้นการตั้งค่าการเขียนเดิมที่จะนั่งอยู่ด้านบนของGNU หน้าจอแต่ตอนนี้ยังทำงานอยู่ด้านบนของTmux

ผมเริ่มเขียน Byobu กลับมาในเดือนธันวาคมของปี 2008ที่ผมได้พบกับพวงของหน้าจอและ Ubuntu Server ผู้ใช้ที่เป็นGoogleplexและพบว่าทั้งหมดเราเก็บรักษาพวงของเราเองเรียบร้อย / สนุกแฮ็ก / ประโยชน์ของเราใน~/.screenrcการกำหนดค่า และเราต้องย้ายสิ่งเหล่านั้นด้วยตนเองระหว่างเซิร์ฟเวอร์หลายสิบหรือหลายร้อยตัวที่เราใช้ เราเริ่มซื้อขายเคล็ดลับและกลเม็ดและฉันเริ่มรวบรวมสิ่งเหล่านั้นในโครงการGPLv3ดั้งเดิมที่เรียกว่า "โปรไฟล์หน้าจอ" ประมาณ 6 เดือนต่อมาชุมชนทั้งหมดได้พัฒนา " โพรไฟล์หน้าจอ " และโครงการกลายเป็นมากกว่าแค่การแฮ็กหน้าจอ - เรามียูทิลิตีการกำหนดค่าปลั๊กอินสถานะสดและการผูกคีย์ ดังนั้นเราจึงเปลี่ยนชื่อโครงการ "Byobu" ซึ่งเป็นคำภาษาญี่ปุ่นสำหรับหน้าจอที่หรูหราและพับได้เหล่านั้นและได้รับประโยชน์เพิ่มเติมจากการที่ Google สามารถ "Byobu $ FOO" ได้สำเร็จมากกว่า "Screen $ FOO"

ด้วย Byobu ในการกระจาย Linux ส่วนใหญ่ ( Ubuntu , Debian , Fedora , Arch ) และใช้งานได้กับ Macs / BSDs ส่วนใหญ่และ UNIX อื่น ๆ มันให้รูปลักษณ์และความรู้สึก, ปุ่มลัดที่สะดวก, ข้อมูลสถานะระบบไดนามิกที่เทอร์มินัลใด ๆ จำเป็นต้องเข้าถึง

ทำไมไม่สนับสนุนกลับไปที่โครงการหน้าจอ GNU? เหตุผลสองประการ ... ทุกสิ่งที่ Byobu ทำงานเช่นเดียวกับตัวเลือกการกำหนดค่า ไม่จำเป็นต้องรวมอยู่ในฐานแหล่งที่มาของหน้าจอเพื่อให้สามารถใช้งานได้ บางสิ่งอาจทำงานได้ดีขึ้นหรือทำงานได้ดีกว่าหากหน้าจอรวมไว้โดยค่าเริ่มต้น แต่การเปลี่ยนแปลงจำนวนมากเป็น "ความเห็น" ซึ่งมักจะยากหรือเป็นไปไม่ได้ที่จะสนับสนุนโครงการต้นน้ำอายุ 25 ปี นอกจากนี้โครงการ GNU Screen ก็เคลื่อนไหวช้ามากถ้าหากทั้งหมด มันเก่า 25 ปีและยังไม่ได้มีการเปิดตัวอย่างเป็นทางการตั้งแต่เดือนสิงหาคม 2008 การกระจายทุกครั้งจะมีแพทช์ขนาดใหญ่เพียงเพื่อให้ / usr / bin / หน้าจอทำงานและปลอดภัย เช่นอูบุนตูและเดเบียนกำลังถือโค๊ดของรหัส 19K ใน ~ 48แพทช์

ฉันได้เรียนรู้เกี่ยวกับ Tmux เมื่อ 2 ปีที่แล้วและตกหลุมรักกับซอร์สโค้ดการออกแบบส่วนต่อประสานและชุมชนที่ใช้งานอยู่! ฉันมีเวลาง่ายขึ้นในการแก้ไข Tmux upstream และพูดคุยหัวข้อในรายชื่อผู้รับจดหมาย และในฐานะผู้ใช้ Byobu ที่ใช้มันทุกที่ฉันต้องการรูปลักษณ์และความรู้สึกเดียวกันกับเซสชัน Tmux ของฉันเหมือนกับสิ่งที่ฉันได้เพลิดเพลินใน 4+ ปีของ Byobu ดังนั้นผมจึงรังเพลิงทั้งหมดของรหัส Byobu ในการทำงานอย่างเท่าเทียมกันได้ดีกับ Tmux เป็นแบ็กเอนด์ที่เป็นหน้าจอ ในฐานะของByobu 5.0 รีลีส , Tmux เป็นแบ็กเอนด์เริ่มต้นโดยที่หน้าจอยังคงรองรับในโหมดดั้งเดิม ตอนนี้ Byobu ใช้ประโยชน์จากคุณสมบัติที่ทันสมัยมากมายของ Tmux over Screen รวมถึงการสนับสนุน 256 สีที่ปรับปรุงขึ้นอย่างมากมายอักขระ UTF8 และการแยกหน้าต่างแนวนอน / แนวตั้ง

หากคุณพอใจกับการตั้งค่าเริ่มต้นใน Screen หรือ Tmux หรือต้องการเขียนไฟล์การกำหนดค่าของคุณเองตั้งแต่เริ่มต้นแล้ว Screen and Tmux เป็นเครื่องมือที่ยอดเยี่ยมที่เพิ่มประสิทธิภาพให้กับชีวิตของเรามาหลายปี หากคุณสนใจชุดการกำหนดค่าที่ยืดและขยายสิ่งที่หน้าจอและ Tmux ออกจากกล่องให้ดูที่ Byobu!

ไชโยดัสติน


16
คำอธิบายที่ดี น่าทึ่งที่หน้าจอนั้นมีการติดตั้งอย่างหนักมาก - มันต้องการผู้ดูแลคนใหม่หรือเปล่า และ byobu เยี่ยมมาก - ขอบคุณ
nealmcb

10
ฉันหวังว่าฉันจะได้คะแนนสองครั้ง ฉันใช้ byobu มาหลายปีแล้วและเพิ่งจะได้เรียนรู้ถึงความซับซ้อนที่เพิ่งซ่อนตัวฉันมาตลอดเวลา
Jamie Cook

2
ฉันมักจะใช้CTRL+` as escape. With screen` และtmuxสิ่งนี้ทำงานได้อย่างมีเสน่ห์ แต่ไม่ใช่กับbyobu(Debian 7.1 Wheezy)
Tino

1
ตอนนี้screenมีผู้ดูแลคนใหม่และการพัฒนาดูเหมือนจะหยิบไอน้ำมาแล้วสิ่งต่าง ๆ เปลี่ยนไปไหม?
muru

ค่าเริ่มต้นที่เห็นเหล่านั้นไม่สามารถทำให้โครงการ tmux อายุน้อยกว่านี้ได้หรือไม่ ดูเหมือนว่าคำตอบจะหายไปในย่อหน้า "ทำไมไม่สนับสนุนกลับไปที่โครงการ tmux?" xkcd.com/927
user2707671

12

จากกรณีการใช้งานจริงความแตกต่างที่ใหญ่ที่สุดระหว่างscreenและtmuxเป็นวิธีจัดการกับ windows แบบแยก

หน้าต่างในscreenเป็นเทอร์มินัลหลอกเดียว เมื่อเชื่อมต่อกับscreenเซสชันคุณสามารถแบ่งเทอร์มินัลออกเป็นหลายภูมิภาคซึ่งแต่ละอันสามารถแสดงscreenหน้าต่างได้ หลายภูมิภาคสามารถแสดงหน้าต่างเดียวกัน การแยกไม่ได้เป็นส่วนหนึ่งของเซสชัน ถ้าคุณแยกออกคุณก็แยกทางไป

หน้าต่างในtmuxประกอบด้วยเทอร์มินัลหลอกหนึ่งแห่งขึ้นไปหนึ่งหน้าต่างต่อบานหน้าต่าง ซึ่งหมายความว่าบานหน้าต่างยังคงมีอยู่ถ้าคุณถอดและใส่กลับเข้าไปใหม่ในภายหลัง นอกจากนี้ยังหมายความว่าคุณสามารถแสดงหน้าต่างได้ครั้งละหนึ่งหน้าต่างเท่านั้นtmuxและบานหน้าต่างนั้นไม่สามารถแชร์ได้ในหลาย ๆ หน้าต่าง tmuxไม่อนุญาตให้มีหน้าต่างที่จะใช้ร่วมกันระหว่างหลายครั้ง แต่

ผมชอบรูปแบบที่ใช้โดยแต่ฉันไม่สามารถยืนยันว่ามันเป็นสิ่งที่ดีกว่ารุ่นที่ใช้โดยtmuxscreen


3
โปรอาร์กิวเมนต์tmuxเป็นDeutsche Bahn นั่งรถไฟเร็วพยายามทำงานsshโดยใช้การเชื่อมต่อมือถือและคุณจะเห็นได้อย่างรวดเร็วว่าtmuxแบบจำลองนั้นเหนือกว่าเพราะหลังจากการเชื่อมต่อที่เกิดขึ้นบ่อยครั้งหนึ่งคุณไม่จำเป็นต้องจัดเรียงบานหน้าต่างทั้งหมดบน jumphost หลังจาก relogin อีกครั้ง SCNR
Tino

3
ถ้าคุณกำลังเผชิญ disconnections บ่อยผมขอแนะนำให้มองเข้าไปในร็อกซึ่งสามารถกู้คืนโดยอัตโนมัติจากสัญญาณที่หายไปไม่เหมือนssh
ปริTomoiagă

4

สำหรับฉันตัวจัดการแจกสำหรับ tmux คือการใช้งานเซสชันที่ใช้ร่วมกัน

ในหน้าจอ GNU หากคุณให้ผู้ใช้รายอื่นเชื่อมต่อกับเซสชันหรือเชื่อมต่อเซสชันของคุณกับเทอร์มินัลมากกว่าหนึ่งเครื่องพวกเขาสามารถทำงานได้อย่างอิสระ (การสลับหน้าจอในเซสชัน A จากเทอร์มินัล B เซสชัน A)

ข้างต้นไม่ใช่กรณีที่มี tmux (หรือยัง) หรือฉันยังไม่สามารถหาวิธีที่จะเปลี่ยนพฤติกรรมได้

หากมีคนรู้วิธีที่จะเปลี่ยนพฤติกรรมนี้ใน tmux หรือหาก tmux อัปเดตเพื่อเปลี่ยนพฤติกรรมนี้หรือให้ตัวเลือกเพื่อเปลี่ยนพฤติกรรมนี้ตอนนี้โปรดแสดงความคิดเห็น


6
tmuxมีความคิดของ "เชื่อมโยง" new-session -t sharedการประชุมด้วย Windows จาก 'ที่ใช้ร่วมกัน' จะปรากฏขึ้นในเซสชั่นใหม่หน้าต่างใหม่ในที่หนึ่งจะปรากฏขึ้นในอีกเซสชั่นและปิดหน้าต่างในที่หนึ่งปิดในอีก อย่างไรก็ตามหน้าต่างใดที่ไคลเอนต์แต่ละรายเห็นจะเฉพาะกับเซสชันจริงที่แนบ
chepner
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.