Byobu so với GNU Screen so với tmux - tính hữu dụng và khả năng chuyển giao của các kỹ năng [đã đóng]


95

Cho đến nay tôi đã sử dụng Konsole để quản lý nhiều phiên shell nhưng tôi chưa thử Byobu , GNU Screentmux , hỗ trợ tốt hơn cho nhiều shell. Tất cả đều có chung một tính năng, đó là cho phép tách phiên hiện tại và sau đó gắn lại vào phiên cũ đó.

Để giúp tôi chọn một công cụ để tìm hiểu, tôi muốn biết: chúng khác nhau như thế nào về các khía cạnh sau đây?

  1. Các tính năng (rõ ràng)
  2. Dự án đáo hạn. Tôi không muốn học một công cụ thay đổi quá nhiều. Các cải tiến đều được chào đón, nhưng tôi không thích những bất ngờ như các tính năng biến mất.
  3. Đường cong học tập
  4. Có sẵn trong các nền tảng khác nhau. Nếu tôi học một công cụ, tôi muốn có thể sử dụng nó trên máy chủ FreeBSD, máy tính để bàn SuSE hoặc Ubuntu.
  5. Khả năng tương thích với các chương trình vỏ tương tác khác. Tôi vẫn có thể sử dụng vimemacs -nw(chế độ không phải cửa sổ hoặc chế độ văn bản) giống như cách tôi đã quen? Các phím tắt sẽ xung đột với các công cụ khác?

Tôi vừa thử tất cả chúng và Byobu trông giống như một mặt trước cho GNU Screen và tmux. Vậy thì tại sao ai đó tạo Byobu thay vì đóng góp cho dự án màn hình GNU và thêm các tính năng mới? Tại sao Byobu không phải là một loại chế độ giao diện nâng cao trong Màn hình GNU? Nếu tôi sử dụng Byobu làm công cụ hàng ngày với màn hình GNU làm phụ trợ, tôi có thể chuyển kiến ​​thức này sang sử dụng GNU Screen mà không có Byobu nếu một máy nhất định chỉ có Màn hình GNU?


1
Bình luận câu hỏi của riêng tôi. Sau khi tôi đăng, tôi chỉ thấy số lần mỗi thẻ được sử dụng trong StackExchange: gnu-screen: 199 lần tmux: 125 lần byobu: 18 lần Điều đó có nghĩa là byobu vẫn chưa phổ biến? Hoặc byobu đó trực quan đến mức không ai có bất kỳ câu hỏi về cách sử dụng nó?
Keitai

1
Bởi vì byobuchỉ là một nhánh của screencác tính năng bổ sung, vì vậy gnu-screenthẻ được áp dụng.
grawity

2
Theo tài liệu ( manpages.ubfox.com/manpages/precise/en/man1/byobu.1.html ) cấu hình mặc định của Byobu là sử dụng tmux làm phụ trợ mặc định. Nếu byobu là một ngã ba của màn hình gnu, điều đó có nghĩa là tmux tốt hơn màn hình gnu?
Keitai

1
Thật thú vị, tôi đã không biết rằng nó hỗ trợ tmux bây giờ, mặc dù nó vẫn chỉ là một tập lệnh bao bọc - thậm chí không phải là một ngã ba rõ ràng. Nhưng vâng, tmux về mặt nào đó tốt hơn so với Màn hình (ít nhất là yêu cầu FAQ của họ như vậy).
grawity

22
Byobu không phải là một ngã ba của bất cứ điều gì! Đó là một lớp trên cùng của Màn hình và Tmux, tương tự như Gnome / KDE là một lớp trên đầu Xorg.
Dustin Kirkland

Câu trả lời:


32

Đối với màn hình Tmux vs GNU, hãy đọc

và một số hóa thân so sánh khác có thể được tìm thấy trên blog và như vậy.

Một số thuật ngữ chung được lặp đi lặp lại:

  • Tmux mới hơn. Điều này có nghĩa là nó là một fancier một chút (tách dọc đơn giản, đường màu xanh lá cây đẹp) và một chút ít được kiểm tra tốt về khả năng tương thích (đến mức không đáng kể theo đề xuất của nó).
  • Tmux nghiêng về tài nguyên.
  • Màn hình GNU được tìm thấy ở mọi nơi và có lẽ vẫn còn được sử dụng nhiều hơn.

Ngoài ra, người ta có thể xem xét các chức năng cụ thể cho một hoặc thay thế khác, và sở thích cá nhân sẽ chi phối cuộc thảo luận. Cá nhân tôi đã từng sử dụng GNU Screen rất nhiều - bây giờ tôi sử dụng Tmux.

Tôi chưa tìm thấy Byobu có "tính năng sát thủ" nào đối với tôi. Nó cung cấp một sự trừu tượng mà tôi tin rằng không cần thiết cho các trường hợp sử dụng của tôi.


Một cách khác để xem xét là lưu ý rằng Byobu có thể sử dụng GNU Screen hoặc Tmux làm phụ trợ, điều này cho thấy sự khác biệt từ POV của người dùng chủ yếu là bề ngoài.


268

Câu hỏi tuyệt vời! Đối với những gì nó có giá trị, tôi là tác giả và người duy trì Byobu .

Byobu là một lớp cấu hình, ban đầu được viết để ngồi trên màn hình GNU , nhưng bây giờ cũng hoạt động trên đỉnh Tmux .

Tôi bắt đầu viết Byobu trở lại vào tháng 12 năm 2008 , khi tôi gặp một nhóm người dùng Screen và Ubuntu Server tại Googleplex và thấy rằng tất cả chúng tôi đều duy trì một loạt các bản hack gọn gàng / vui nhộn / hữu ích trong ~/.screenrccấu hình của mình. Và chúng tôi phải tự di chuyển những thứ đó xung quanh giữa hàng chục hoặc hàng trăm máy chủ mà chúng tôi đã sử dụng. Chúng tôi bắt đầu các mẹo và thủ thuật giao dịch, và tôi bắt đầu thu thập chúng vào dự án GPLv3 ban đầu được gọi là "hồ sơ màn hình". Khoảng 6 tháng sau, cả một cộng đồng đã phát triển xung quanh " hồ sơ màn hình " và dự án trở nên nhiều hơn chỉ là hack màn hình - chúng tôi có các tiện ích cấu hình, plugin trạng thái trực tiếp và keybindings. Vì vậy, chúng tôi đổi tên dự án "Byobu", một từ tiếng Nhật có nghĩa là những "màn hình" thanh lịch, gấp lại và có thêm lợi ích là có thể thành công hơn với Google cho "Byobu $ FOO" so với "Màn hình $ FOO".

Với Byobu hiện có trong hầu hết các bản phân phối Linux ( Ubuntu , Debian , Fedora , Arch ) và chức năng trên hầu hết các máy Mac / BSD và các UNIX khác, nó cung cấp giao diện, giao diện thuận tiện, thông tin trạng thái hệ thống động tại bất kỳ thiết bị đầu cuối nào bạn có thể cần truy cập.

Tại sao không đóng góp lại cho dự án GNU Screen? Một vài lý do ... Tất cả những gì Byobu hoạt động cũng như các tùy chọn cấu hình. Không cần phải đưa nó vào cơ sở nguồn màn hình để hoạt động. Một số thứ có thể hoạt động tốt hơn hoặc hoạt động tốt hơn nếu Screen bao gồm chúng theo mặc định, nhưng nhiều thay đổi rất "gây tranh cãi", thường rất khó hoặc không thể đóng góp cho dự án thượng nguồn 25 tuổi . Ngoài ra, dự án GNU Screen đang di chuyển rất chậm, nếu có. Nó đã hơn 25 tuổi và chưa có bản phát hành chính thức kể từ tháng 8 năm 2008 . Mỗi bản phân phối đều mang theo nhiều bản vá lỗi lớn chỉ để giữ cho / usr / bin / màn hình của bạn hoạt động an toàn. ví dụ: Ubuntu và Debian hiện đang mang 19K dòng mã trong ~ 48miếng vá .

Tôi đã học về Tmux khoảng 2 năm trước và thực sự yêu mã nguồn, thiết kế, giao diện và cộng đồng tích cực! Tôi đã có một thời gian dễ dàng hơn để đóng góp các bản sửa lỗi để ngược dòng Tmux và thảo luận về các chủ đề trong danh sách gửi thư. Và là một người dùng Byobu sử dụng nó ở mọi nơi, tôi muốn có giao diện giống như vậy đối với các phiên Tmux của tôi giống như những gì tôi đã đến để tận hưởng trong hơn 4 năm qua Byobu. Vì vậy, tôi đã chuyển tất cả mã Byobu để hoạt động tốt như nhau với Tmux dưới dạng phụ trợ, như Màn hình. Kể từ phiên bản Byobu 5.0 , Tmux hiện là phụ trợ mặc định, với Màn hình vẫn được hỗ trợ ở chế độ cũ. Byobu hiện tận dụng nhiều tính năng hiện đại của Tmux trên màn hình, bao gồm hỗ trợ 256 màu được cải thiện rất nhiều, các ký tự UTF8 và chia tách cửa sổ ngang / dọc.

Nếu bạn hài lòng với các cài đặt mặc định trong Màn hình hoặc Tmux hoặc muốn viết các tệp cấu hình của riêng bạn từ đầu, thì bằng mọi cách, Screen và Tmux là những tiện ích tuyệt vời đã tăng thêm hiệu quả cho cuộc sống của chúng tôi. Nếu bạn quan tâm đến một bộ cấu hình thực sự kéo dài và mở rộng những gì Screen và Tmux thực hiện ra khỏi hộp, hãy xem Byobu!

Chúc mừng, Dustin


16
Lời giải thích hay. Thật ngạc nhiên khi màn hình được vá rất nhiều - nó có cần một người bảo trì mới hay không? Và byobu là tuyệt vời - cảm ơn.
nealmcb

10
Tôi ước tôi có thể bỏ phiếu hai lần. Tôi đã sử dụng byobu trong nhiều năm nay và chỉ mới biết về sự phức tạp mà nó đã che giấu tôi trong suốt thời gian này.
Jamie Cook

2
Tôi luôn sử dụng CTRL+` as escape. With screen` và tmuxđiều này hoạt động như một cơ duyên, nhưng không phải với byobu(Debian 7.1 Wheezy).
Tino

1
Bây giờ screenđã có một người duy trì và phát triển mới dường như đã bốc hơi, mọi thứ có thay đổi không?
muru

Không thể mặc định những ý kiến ​​đó làm cho nó trở thành dự án tmux trẻ hơn? Có vẻ như câu trả lời còn thiếu một đoạn "Tại sao không đóng góp lại cho dự án tmux?" xkcd.com/927
dùng2707671

12

Từ một trường hợp sử dụng thực tế, sự khác biệt lớn nhất giữa screentmuxlà cách chúng xử lý các cửa sổ tách.

Một cửa sổ trong screenlà một thiết bị đầu cuối giả. Khi được gắn vào một screenphiên, bạn có thể chia thiết bị đầu cuối của mình thành nhiều khu vực, mỗi khu vực có thể hiển thị một screencửa sổ. Nhiều vùng có thể hiển thị cùng một cửa sổ. Các phần tách không phải là một phần của phiên; nếu bạn tách ra, phần tách của bạn sẽ biến mất.

Một cửa sổ tmuxbao gồm một hoặc nhiều thiết bị đầu cuối giả, mỗi thiết bị trên một khung. Điều này có nghĩa là các tấm vẫn tồn tại nếu bạn tháo ra và gắn lại sau đó. Điều đó cũng có nghĩa là bạn chỉ có thể hiển thị một cửa sổ tại một thời điểm tmuxvà các ô đó không thể được chia sẻ giữa nhiều cửa sổ. tmuxkhông cho phép một cửa sổ để được chia sẻ giữa nhiều phiên, tuy nhiên.

Tôi thích mô hình được sử dụng bởi tmux, nhưng tôi không thể tranh luận rằng nó tốt hơn mô hình được sử dụng bởi screen.


3
Đối số pro tmuxDeutsche Bahn . Đi tàu nhanh, cố gắng sshsử dụng kết nối di động và bạn sẽ nhanh chóng thấy rằng tmuxmô hình đó vượt trội hơn nhiều, bởi vì sau một trong những lần ngắt kết nối thường xuyên, bạn không cần phải sắp xếp lại tất cả các pan trên jumphost của mình sau khi đăng nhập lại. SCNR
Tino

3
nếu bạn đang phải đối mặt với việc ngắt kết nối thường xuyên, tôi khuyên bạn nên xem xét mosh có thể tự động phục hồi từ tín hiệu bị mất, không giống nhưssh
Ciprian Tomoiagă

4

Đối với tôi, công cụ giảm giá cho tmux là việc thực hiện chia sẻ phiên.

Trong Màn hình GNU, nếu bạn cho phép người dùng khác kết nối với một phiên hoặc đơn giản là phiên của bạn được kết nối với nhiều thiết bị đầu cuối, họ có thể hoạt động độc lập (chuyển đổi màn hình trong phiên A từ thiết bị đầu cuối B cũng không làm cho thiết bị đầu cuối A cũng chuyển đổi màn hình trong buổi A).

Ở trên không phải là trường hợp với tmux (chưa?) Hoặc tôi chưa thể tìm cách thay đổi hành vi.

Nếu ai đó biết cách thay đổi hành vi này trong tmux hoặc nếu tmux cập nhật để thay đổi hành vi này hoặc đưa ra tùy chọn để thay đổi hành vi này, vui lòng để lại nhận xét.


6
tmuxcó một khái niệm về các phiên "liên kết" với new-session -t shared. Windows từ 'chia sẻ' xuất hiện trong phiên mới, các cửa sổ mới xuất hiện trong một phiên bản khác và đóng một cửa sổ trong một cửa sổ này đóng cửa khác. Tuy nhiên, cửa sổ mà mỗi khách hàng nhìn thấy là cụ thể cho phiên thực tế mà nó đính kèm.
chepner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.