Byobu vs. GNU Screen vs tmux - kegunaan dan kemampuan transfer keterampilan [ditutup]

95

Sejauh ini saya telah menggunakan Konsole untuk mengelola beberapa sesi shell tetapi saya belum mencoba Byobu , Layar GNU , dan tmux , yang menawarkan dukungan yang lebih baik untuk banyak shell. Mereka semua berbagi satu fitur utama, yaitu untuk memungkinkan memisahkan sesi saat ini dan kemudian menempel kembali ke sesi lama itu.

Untuk membantu saya memilih alat untuk dipelajari, saya ingin tahu: bagaimana perbedaannya dalam hal berikut?

  1. Fitur (jelas)
  2. Kematangan proyek. Saya tidak ingin mempelajari alat yang terlalu banyak berubah. Penyempurnaan dipersilahkan, tapi saya tidak suka kejutan seperti fitur yang hilang.
  3. Kurva belajar
  4. Ketersediaan di berbagai platform. Jika saya mempelajari alat, saya ingin dapat menggunakannya di server FreeBSD, desktop SuSE, atau Ubuntu.
  5. Kompatibilitas dengan program shell interaktif lainnya. Masih bisakah saya menggunakan vimdan emacs -nw(mode non-jendela, atau mode teks) dengan cara yang sama seperti dulu? Apakah pintasan keyboard akan bertentangan dengan yang ada di alat lain?

Saya baru saja mencoba semuanya dan Byobu terlihat seperti semacam front end untuk Layar GNU dan tmux. Lalu mengapa seseorang membuat Byobu alih-alih berkontribusi pada proyek layar GNU dan menambahkan fitur baru? Mengapa Byobu bukan semacam mode antarmuka lanjutan di Layar GNU? Jika saya menggunakan Byobu sebagai alat harian saya dengan layar GNU sebagai backend, dapatkah saya mentransfer pengetahuan ini untuk menggunakan Layar GNU tanpa Byobu jika mesin tertentu hanya memiliki Layar GNU?

Keitai
sumber
1
Mengomentari pertanyaan saya sendiri. Setelah saya memposting, saya hanya melihat berapa kali setiap tag digunakan di StackExchange: gnu-screen: 199 kali tmux: 125 kali byobu: 18 kali Apakah itu artinya byobu masih belum populer? Atau bahwa byobu sangat intuitif sehingga tidak ada yang memiliki pertanyaan tentang cara menggunakannya?
Keitai
1
Karena byobuhanya garpu screendengan fitur tambahan, maka gnu-screentag tersebut berlaku.
grawity
2
Menurut dokumentasi ( manpages.ubuntu.com/manpages/precise/en/man1/byobu.1.html ) konfigurasi default Byobu adalah menggunakan tmux sebagai backend default. Jika byobu adalah fork layar gnu, apakah itu berarti tmux lebih baik daripada layar gnu?
Keitai
1
Menarik, saya tidak tahu bahwa ini mendukung tmux sekarang, meskipun tetap hanya skrip pembungkus - bahkan tidak garpu tampaknya. Tapi ya, tmux dalam beberapa hal lebih baik daripada Layar (setidaknya FAQ mereka mengklaim demikian).
grawity
22
Byobu bukan garpu dari apa pun! Ini adalah lapisan di atas Layar dan Tmux, mirip dengan Gnome / KDE menjadi lapisan di atas Xorg.
Dustin Kirkland

Jawaban:

32

Untuk Tmux vs Layar GNU, baca

dan beberapa inkarnasi perbandingan lainnya yang dapat ditemukan di blog dan semacamnya.

Beberapa istilah umum yang sering diulang:

  • Tmux lebih baru. Ini berarti itu sedikit lebih bagus (pemisahan vertikal sederhana, garis hijau yang bagus) dan agak kurang teruji dengan baik untuk kompatibilitas misalnya (sampai batas yang dapat diabaikan menurut pendukungnya).
  • Tmux lebih mengandalkan sumber daya.
  • Layar GNU ditemukan di mana-mana dan kemungkinan besar masih lebih banyak digunakan.

Terlepas dari ini, orang dapat melihat fungsi spesifik untuk satu atau alternatif lain, dan preferensi pribadi akan mendominasi diskusi. Saya pribadi dulu sering menggunakan Layar GNU - sekarang saya menggunakan Tmux.

Saya belum menemukan Byobu memiliki "fitur pembunuh" untuk saya. Ini memberikan abstraksi di mana saya percaya tidak diperlukan untuk kasus penggunaan saya.


Cara lain untuk melihatnya adalah dengan mencatat bahwa Byobu dapat menggunakan GNU Screen atau Tmux sebagai backend, yang menunjukkan bahwa perbedaan dari pengguna POV sebagian besar dangkal.

Daniel Andersson
sumber
268

Pertanyaan bagus! Untuk apa nilainya, saya penulis dan pengelola Byobu .

Byobu adalah lapisan konfigurasi, awalnya ditulis untuk duduk di atas Layar GNU , tetapi sekarang juga berfungsi di atas Tmux .

Saya mulai menulis Byobu pada bulan Desember 2008 , ketika saya bertemu dengan sekelompok pengguna Screen dan Ubuntu Server di Googleplex dan menemukan bahwa kita semua memelihara banyak hack yang rapi / menyenangkan / bermanfaat dalam ~/.screenrckonfigurasi kita . Dan kami harus memindahkan secara manual antara puluhan atau ratusan server yang kami gunakan. Kami mulai menukar tip dan trik, dan saya mulai mengumpulkannya ke dalam proyek GPLv3 asli yang disebut "profil layar". Sekitar 6 bulan kemudian, seluruh komunitas telah mengembangkan " profil layar " dan proyek ini menjadi lebih dari sekadar peretas layar - kami memiliki utilitas konfigurasi, plugin status langsung, dan ikatan kunci. Jadi kami mengganti nama proyek "Byobu", yang merupakan kata dalam bahasa Jepang untuk "layar" lipat yang elegan, dan memiliki manfaat tambahan untuk dapat lebih berhasil di Google untuk "Byobu $ FOO" daripada "Screen $ FOO".

Dengan Byobu sekarang di sebagian besar distribusi Linux ( Ubuntu , Debian , Fedora , Arch ), dan fungsional pada sebagian besar Mac / BSDs dan UNIX lainnya, ini memberikan tampilan dan nuansa yang sama, ikatan kunci yang nyaman, informasi status sistem dinamis pada terminal apa pun yang Anda mungkin perlu mengakses.

Mengapa tidak berkontribusi kembali ke proyek Layar GNU? Beberapa alasan ... Semua yang dilakukan Byobu sama baiknya dengan opsi konfigurasi. Tidak ada yang perlu dimasukkan dalam basis sumber Layar agar berfungsi. Beberapa hal mungkin bekerja lebih baik atau berkinerja lebih baik jika Screen memasukkannya secara default, tetapi banyak dari perubahan itu sangat "pendapat", yang biasanya sulit atau tidak mungkin untuk berkontribusi pada proyek hulu 25 tahun . Juga, proyek Layar GNU bergerak sangat lambat, jika tidak sama sekali. Ini berusia 25 tahun ke atas, dan belum memiliki rilis resmi sejak Agustus 2008 . Setiap distribusi membawa tumpukan besar tambalan hanya untuk menjaga agar / usr / bin / layar Anda bekerja dan aman. misal, Ubuntu dan Debian saat ini membawa 19K baris kode di ~ 48tambalan .

Saya belajar tentang Tmux sekitar 2 tahun yang lalu, dan benar-benar jatuh cinta dengan kode sumber, desain, antarmuka, dan komunitas aktif! Saya memiliki waktu yang jauh lebih mudah menyumbang perbaikan ke hulu Tmux dan mendiskusikan topik di milis. Dan sebagai pengguna Byobu yang menggunakannya di mana-mana, saya ingin tampilan dan nuansa yang sama untuk sesi Tmux saya dengan apa yang saya nikmati dalam 4+ tahun Byobu. Jadi saya mem - porting semua kode Byobu agar berfungsi sama baiknya dengan Tmux sebagai backend, sebagai Screen. Pada rilis Byobu 5.0 , Tmux sekarang menjadi backend default, dengan Layar masih didukung dalam mode lawas. Byobu sekarang memanfaatkan banyak fitur modern Tmux over Screen, termasuk dukungan 256 warna yang jauh lebih baik, karakter UTF8, dan pemisahan jendela horizontal / vertikal.

Jika Anda puas dengan pengaturan default di Screen atau Tmux, atau ingin menulis file konfigurasi Anda sendiri dari awal, maka tentu saja, Screen dan Tmux sebagai utilitas fantastis yang telah menambahkan efisiensi bertahun-tahun dalam kehidupan kita. Jika Anda tertarik dengan serangkaian konfigurasi yang benar-benar memperluas dan memperluas apa yang dilakukan Screen dan Tmux di luar kotak, lihatlah Byobu!

Cheers, Dustin

Dustin Kirkland
sumber
16
Penjelasan yang bagus. Luar biasa layarnya begitu banyak ditambal - apakah perlu pengelola baru atau apa? Dan byobu sangat bagus - terima kasih.
nealmcb
10
Saya berharap saya bisa memilih dua kali. Saya telah menggunakan byobu selama bertahun-tahun sekarang dan baru saja mengetahui kompleksitas yang selama ini saya sembunyikan.
Jamie Cook
2
Saya selalu menggunakan CTRL+` as escape. With layar` dan tmuxini berfungsi seperti pesona, tetapi tidak dengan byobu(Debian 7.1 Wheezy).
Tino
1
Sekarang yang screentelah memiliki pengelola baru dan pengembangan tampaknya telah mengambil tenaga, apakah semuanya berubah?
muru
Tidak bisakah standar opini itu menjadikannya proyek tmux yang lebih muda? Tampaknya jawabannya hilang paragraf "Mengapa tidak berkontribusi kembali ke proyek tmux?" xkcd.com/927
user2707671
12

Dari use case aktual, perbedaan terbesar antara screendan tmuxbagaimana mereka menangani split windows.

Jendela dalam screenadalah terminal pseudo-tunggal. Saat dilampirkan ke screensesi, Anda dapat membagi terminal Anda menjadi beberapa wilayah, yang masing-masing dapat menampilkan screenjendela. Beberapa wilayah dapat menampilkan jendela yang sama. Perpecahan bukan bagian dari sesi; jika Anda melepaskan, perpecahan Anda hilang.

Jendela dalam tmuxterdiri dari satu atau lebih terminal palsu, satu terminal. Ini berarti bahwa panel tetap ada jika Anda melepaskan dan memasang kembali nanti. Ini juga berarti bahwa Anda hanya dapat menampilkan satu jendela pada satu waktu tmux, dan panel tidak dapat dibagi di antara banyak jendela. tmuxmemang memungkinkan jendela untuk dibagikan di antara beberapa sesi, namun.

Saya lebih suka model yang digunakan oleh tmux, tetapi saya tidak bisa membantah bahwa itu lebih baik daripada model yang digunakan oleh screen.

chepner
sumber
3
Argumen pro tmuxadalah Deutsche Bahn . Naik kereta cepat, cobalah untuk bekerja sshmenggunakan koneksi seluler dan Anda akan segera melihat bahwa tmuxmodelnya jauh lebih unggul, karena setelah salah satu koneksi yang sering terputus Anda tidak perlu mengatur ulang semua panel di jumphost Anda setelah login ulang. SCNR
Tino
3
jika Anda sering menghadapi pemutusan, saya sarankan melihat ke mosh yang dapat pulih secara otomatis dari sinyal yang hilang, tidak sepertissh
Ciprian Tomoiagă
4

Bagi saya, pemecah kesepakatan untuk tmux adalah implementasi sesi berbagi.

Di Layar GNU, jika Anda membiarkan pengguna lain terhubung ke satu sesi, atau hanya menyambungkan sesi Anda ke lebih dari satu terminal, mereka dapat beroperasi secara mandiri (berpindah layar dalam sesi A dari terminal B tidak membuat terminal A juga membuat layar A juga berganti layar di sesi A).

Di atas bukan kasus dengan tmux (belum?) Atau saya belum dapat menemukan cara untuk mengubah perilaku.

Jika seseorang mengetahui cara untuk mengubah perilaku ini di tmux atau jika tmux memperbarui untuk mengubah perilaku ini atau memberikan opsi untuk sekarang mengubah perilaku ini, silakan tinggalkan komentar.

therealklanni
sumber
6
tmuxmemiliki gagasan tentang sesi "tertaut" dengan new-session -t shared. Windows dari 'shared' muncul di sesi baru, jendela baru di satu muncul di yang lain, dan menutup jendela di satu menutupnya di yang lain. Namun, jendela mana yang dilihat setiap klien khusus untuk sesi aktual yang dilampirkannya.
chepner