Do tej pory korzystałem z Konsoli do zarządzania wieloma sesjami powłoki, ale nie próbowałem Byobu , GNU Screen i tmux , które oferują lepszą obsługę wielu powłok. Wszystkie mają jedną wspólną cechę, którą jest umożliwienie odłączenia bieżącej sesji, a następnie ponownego przyłączenia do tej starej sesji.
Aby pomóc mi wybrać narzędzie do nauki, chciałbym wiedzieć: czym różnią się pod następującymi względami?
- Funkcje (oczywiście)
- Dojrzałość projektu. Nie chcę uczyć się narzędzia, które zmienia się za bardzo. Ulepszenia są mile widziane, ale nie lubię niespodzianek, takich jak znikające funkcje.
- Krzywa uczenia się
- Dostępność na różnych platformach. Jeśli nauczę się narzędzia, chciałbym móc używać go na serwerze FreeBSD, komputerze SuSE lub Ubuntu.
- Zgodność z innymi interaktywnymi programami powłoki. Czy nadal mogę używać
vim
iemacs -nw
(tryb inny niż okno lub tryb tekstowy) w taki sam sposób, w jaki jestem przyzwyczajony? Czy skróty klawiaturowe będą kolidować ze skrótami innych narzędzi?
Właśnie wypróbowałem je wszystkie i Byobu wygląda jak rodzaj interfejsu dla GNU Screen i tmux. Dlaczego więc ktoś stworzył Byobu zamiast współtworzyć projekt ekranowy GNU i dodawać nowe funkcje? Dlaczego Byobu nie jest rodzajem zaawansowanego trybu interfejsu na ekranie GNU? Jeśli używam Byobu jako mojego codziennego narzędzia z ekranem GNU jako backendem, czy mogę przenieść tę wiedzę, aby korzystać z ekranu GNU bez Byobu, jeśli określona maszyna ma tylko ekran GNU?
źródło
byobu
jest to tylko rozwidleniescreen
z dodatkowymi funkcjami, więcgnu-screen
tag ma zastosowanie.Odpowiedzi:
Dla Tmux vs GNU Screen przeczytaj
oraz kilka innych wcieleń porównawczych, które można znaleźć na blogach i tym podobne.
Niektóre ogólne warunki, które są często powtarzane:
Oprócz tego można spojrzeć na określone funkcje dla jednej lub drugiej alternatywy, a osobiste preferencje zdominują dyskusję. Ja osobiście intensywnie korzystałem z GNU Screen - teraz używam Tmux.
Nie znalazłem dla Byobu żadnych „zabójczych funkcji” dla mnie. Zapewnia abstrakcję, w której moim zdaniem nie jest potrzebna dla moich przypadków użycia.
Innym sposobem spojrzenia na to jest zauważenie, że Byobu może używać albo GNU Screen lub Tmux jako backendu, co pokazuje, że różnice w stosunku do POV użytkownika są w większości powierzchowne.
źródło
Świetne pytanie! Za to, co jest warte, jestem autorem i opiekunem Byobu .
Byobu to warstwa konfiguracyjna, pierwotnie napisana, aby siedzieć na ekranie GNU , ale teraz działa również na Tmuxie .
Zacząłem pisać Byobu w grudniu 2008 roku , kiedy spotkałem się z grupą użytkowników Screen i Ubuntu Server w Googleplex i odkryłem, że wszyscy utrzymywaliśmy własny zestaw schludnych / zabawnych / przydatnych hacków w naszych
~/.screenrc
konfiguracjach. Musieliśmy ręcznie przenosić je między dziesiątki lub setki używanych przez nas serwerów. Zaczęliśmy handlować wskazówkami i sztuczkami, a ja zacząłem gromadzić je w oryginalnym projekcie GPLv3 o nazwie „profile-ekranu”. Około 6 miesięcy później cała społeczność rozwinęła się wokół „ profili ekranowych ”, a projekt stał się czymś więcej niż tylko hackami ekranowymi - mieliśmy narzędzia konfiguracyjne, wtyczki statusu na żywo i skróty klawiszowe. Dlatego zmieniliśmy nazwę projektu „Byobu”, czyli japońskie słowo określające te eleganckie, składane „ekrany”, i ma tę dodatkową zaletę, że jest w stanie z powodzeniem korzystać z Google dla „Byobu $ FOO” niż „Screen $ FOO”.Dzięki Byobu teraz w większości dystrybucji Linuksa ( Ubuntu , Debian , Fedora , Arch ) i działającym na większości komputerów Mac / BSD i innych UNIX-ów, daje to samo wrażenie, wygodne klawisze i dynamiczne informacje o stanie systemu na dowolnym terminalu potrzebujesz dostępu.
Dlaczego nie wesprzeć projektu GNU Screen? Kilka powodów ... Wszystko, co działa Byobu, a także opcje konfiguracji. Żadne z tych elementów nie musi być zawarte w bazie ekranu, aby było funkcjonalne. Niektóre rzeczy mogą działać lepiej lub działać lepiej, jeśli Screen je domyślnie uwzględni, ale wiele zmian jest bardzo „opiniotwórczych”, co zwykle jest trudne lub niemożliwe do wniesienia do 25-letniego projektu upstream. Ponadto projekt GNU Screen porusza się bardzo wolno, jeśli w ogóle. Ma ponad 25 lat i od sierpnia 2008 roku nie ma oficjalnego wydania . Każda dystrybucja zawiera ogromne stosy łatek, aby Twój / usr / bin / screen działał i był bezpieczny. np. Ubuntu i Debian przenoszą obecnie 19 000 wierszy kodu w ~ 48łaty .
Dowiedziałem się o Tmuxie około 2 lata temu i naprawdę zakochałem się w kodzie źródłowym, projekcie, interfejsie i aktywnej społeczności! O wiele łatwiej mi było wnoszenie poprawek do Tmuxa i omawianie tematów na liście mailingowej. Jako użytkownik Byobu, który używa go wszędzie, chciałem, aby moje sesje Tmux wyglądały tak samo, jak te, które podobały mi się przez ponad 4 lata Byobu. Więc przeniosłem cały kod Byobu, aby działał równie dobrze z Tmuxem jako backendem, jak Screen. Począwszy od wydania Byobu 5.0 , Tmux jest teraz domyślnym backendem, a Screen nadal jest obsługiwany w starszym trybie. Byobu wykorzystuje teraz wiele nowoczesnych funkcji Tmux na ekranie, w tym znacznie ulepszoną obsługę 256 kolorów, znaki UTF8 oraz podział okien w poziomie / pionie.
Jeśli jesteś zadowolony z domyślnych ustawień Screen lub Tmux, lub chcesz pisać własne pliki konfiguracyjne od zera, to na pewno Screen i Tmux to fantastyczne narzędzia, które dodały wiele lat wydajności w naszym życiu. Jeśli interesuje Cię zestaw konfiguracji, które naprawdę rozciągają i rozszerzają to, co robi Screen i Tmux po wyjęciu z pudełka, spójrz na Byobu!
Pozdrawiam, Dustin
źródło
CTRL+` as escape. With
screen` itmux
działa to jak urok, ale nie zbyobu
(Debian 7.1 Wheezy).screen
ma nowego opiekuna i wydaje się, że rozwój nabrał tempa, czy coś się zmienia?Z rzeczywistego przypadku użycia, największa różnica między
screen
itmux
to w jaki sposób obsługiwać one podzielone okna.Okno w
screen
to pojedynczy pseudo-terminal. Po dołączeniu doscreen
sesji możesz podzielić terminal na wiele regionów, z których każdy może wyświetlaćscreen
okno. Wiele regionów może wyświetlać to samo okno. Podziały nie są częścią sesji; jeśli się odłączysz, twoje podziały znikną.Okno
tmux
składa się z jednego lub więcej pseudo-terminali, po jednym na okienko. Oznacza to, że panele będą się utrzymywać, jeśli później odłączysz i ponownie połączysz. Oznacza to również, że możesz wyświetlać tylko jedno okno na raztmux
, a panele nie mogą być współużytkowane przez wiele okien.tmux
nie pozwalają okno dzielony pomiędzy wielu sesjach, jakkolwiek.Wolę model używany przez
tmux
, ale nie mogę argumentować, że jest lepszy niż model używany przezscreen
.źródło
tmux
jest Deutsche Bahn . Jedź szybkim pociągiem, spróbuj przepracowaćssh
połączenie mobilne, a szybko zobaczysz, żetmux
model jest o wiele lepszy, ponieważ po jednej z częstych przerw w połączeniu nie musisz ponownie ustawiać wszystkich paneli na swoim jumphost po ponownym zalogowaniu. SCNRssh
Dla mnie przełomem dla tmux była implementacja udostępniania sesji.
W GNU Screen, jeśli pozwalasz innemu użytkownikowi połączyć się z sesją lub po prostu masz sesję podłączoną do więcej niż jednego terminala, mogą one działać niezależnie (przełączanie ekranów w sesji A z terminala B nie powoduje przełączania ekranów w sesja A).
Powyższe nie ma miejsca w przypadku tmux (jeszcze?) Lub nie byłem jeszcze w stanie znaleźć sposobu na zmianę zachowania.
Jeśli ktoś zna sposób na zmianę tego zachowania w tmux lub jeśli tmux aktualizuje się, aby zmienić to zachowanie lub dać opcję zmiany tego zachowania, zostaw komentarz.
źródło
tmux
ma pojęcie „połączonych” sesji znew-session -t shared
. Okna z „udostępnionego” pojawiają się w nowej sesji, nowe okna w jednym pojawiają się w drugim, a zamknięcie okna w jednym zamyka je w drugim. Jednak okno, które widzi każdy klient, jest specyficzne dla faktycznej sesji, którą dołącza.