[[Vorlage(Getestet, bionic)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Programme_starten: Ein Programm starten] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis()]] [[Bild(./byobu_logo.png, 48, align=left)]] [https://byobu.org/ byobu] {en} ist ein Erweiterungs-Script bzw. Hilfsprogramm, aufbauend entweder auf dem Shell-Fenstermanager [:Screen:] oder [:tmux:]. Es dient der vereinfachten Bedienung dieser beiden Programme und zeigt darüber hinaus nützliche System-Informationen und Statusmeldungen innerhalb von zwei Zeilen am unteren Rand der Bildschirm-Sitzung(en). Dort können außerdem verschiedene Shell-Sitzungen, vergleichbar mit Browser-Tabs, in Registerkarten verwaltet werden. = Installation = byobu kann aus den Paketquellen installiert [1] werden: {{{#!vorlage Paketinstallation byobu }}} == Entwickler-PPA == Bei den folgenden Paketen handelt sich um Entwickler-Versionen! Die Versionen sind ggf. nicht stabil und unterliegen häufigen Aktualisierungen, die mitunter auch neue Funktionen beinhalten. [[Vorlage(PPA, byobu/ppa)]] = Verwendung = [[Vorlage(Bildunterschrift, ./byobushell, 300, byobu-shell, right)]] Das Programm kann über die Eingabe von: {{{#!vorlage Befehl byobu }}} im Terminal gestartet werden. Bei häufiger Nutzung ist eine Platzierung des Starters im Panel oder auf dem Desktop per [wikipedia:Drag_and_drop:Drag'n'Drop] aus dem Startmenü [3] zu empfehlen. Grundsätzlich kann byobu als Standard-Shell statt des „herkömmlichen“ [:Terminal:Terminals] verwendet werden, da es außer den zusätzlichen Eigenschaften und Funktionen, die ''screen'' und ''tmux'' bereitstellen, ein vollwertiges Terminal ist. Funktion und Bedienung sind somit auf Shell-Ebene mit denen des herkömmlichen Terminals identisch. Mit dem Befehl: {{{#!vorlage Befehl byobu-enable }}} wird byobu bei jedem Login eingeschaltet sein. Möchte man das Verhalten ausschalten, genügt folgender Befehl: {{{#!vorlage Befehl byobu-disable }}} Nach dem neuem Einloggen wird byobu nicht mehr angezeigt. = Merkmale und Funktionen = == Entkoppelte Shell-Prozesse == Ein bedeutender Vorteil zum konventionellen Terminal ist der, dass ein in byobu gestarteter und darin aktiver Prozess von der Shell „entkoppelt“ bzw. unabhängig ist. Ruft man beispielsweise in einem herkömmlichen Terminal den 3D-Beschleunigungs-Test: {{{#!vorlage Befehl glxgears }}} auf, so erscheint ein Fenster, in dem sich drei Zahnräder drehen, und die Anzahl der Bilder pro Sekunde („frames per second“) wird im Terminal angezeigt. Wird nun das Terminal geschlossen, so wird auch ''glxgears'' beendet, jedoch nicht so bei ''byobu''. Die Zahnräder drehen sich weiter, weil auch die Anwendung weiter aktiv ist. Dies kann man nach erneutem Starten von byobu zudem daran erkennen, dass auch die Bilder pro Sekunde während der Zeit weiterhin ausgegeben wurden, in der byobu deaktiviert war. == Sitzung-Verwaltung mittels Tabs == Screen und tmux bieten die Möglichkeit, verschiedene virtuelle Konsolensitzungen innerhalb eines einzigen Fensters zu erzeugen und zu verwalten. Anders als dort durch -mehr oder weniger umständliche- Tastaturkürzel bietet ''byobu'' hier eine komfortable und übersichtliche Sitzungsverwaltung in der oberen der beiden Informations-Zeilen in einem Panel am unteren Rand des Bildschirms. Über die Funktionstasten werden z.B. neue Sitzungen geöffnet, durch geöffnete Sitzungen (Tabs) gewechselt, die Verbindung zur aktuellen Sitzung gelöst ("detach") oder das Menü aufgerufen ([#Funktionstasten s.u.]). == System-Informationen und Statusmeldungen == ''byobu'' unterstützt die Darstellung einer umfangreichen Reihe von System- und Statusinformationen in der unteren der beiden Zeilen des Fenster-Panels. Die Einblendung der gewünschten Informationen ist über das Menü [[Vorlage(Tasten, F9)]] (''"Statusmeldungen ändern"'') durch Aktivierung bzw. Deaktivierung der einzelnen Statusmeldungen frei konfigurierbar ([#Statusmeldungen-im-Detail s.u.]). = Funktionstasten = ||<-4 rowclass="titel"> Funktionstasten & Aktion (Keybindings) || ||<:rowclass="kopf"> Funktionstaste || <-3:> Aktion || ||<:>[[Vorlage(Tasten, F2)]] || <-3:> Neue Sitzung öffnen (Neuer Tab) || ||<:>[[Vorlage(Tasten, F3)]] || <-3:> Zur vorherigen Sitzung wechseln (Tab links) || ||<:>[[Vorlage(Tasten, F4)]] || <-3:> Zur nächsten Sitzung wechseln (Tab rechts) || ||<:>[[Vorlage(Tasten, F5)]] || <-3:> Panel neu laden / Informationen aktualisieren|| ||<:>[[Vorlage(Tasten, F6)]] || <-3:> Von Sitzung lösen (detach) = byobu schließen\\ (Sitzungen & Prozesse bleiben aktiv und sind nach Neustart wieder verfügbar) || ||<:>[[Vorlage(Tasten, F7)]] || <-3:> Copy/Scrollback Modus aktivieren\\ Scrollback Buffer mit [[Vorlage(Tasten, /)]] und [[Vorlage(Tasten, ?)]] durchsuchen; Exit mit [[Vorlage(Tasten, Enter)]] || ||<:>[[Vorlage(Tasten, F8)]] || <-3:> Sitzung (Tab) umbenennen || ||<:>[[Vorlage(Tasten, F9)]] || <-3:> Menü || ||<:>[[Vorlage(Tasten, F12)]] || <-3:> Lock Terminal\\ (Nur relevant in der [:Terminal#Virtuelle-Konsole:Virtuellen Konsole], da in der GUI durch schließen des Fensters & Neustart zu umgehen) || ||<:>[[Vorlage(Tasten, Shift)]] + [[Vorlage(Tasten, F12)]] || <-3:> Funktionstasten an-/abschalten (Tmux)\\ (um sie an ein in der Session laufendes Programm – z. B. Midnight Commander – durchzureichen) || ||<:>[[Vorlage(Tasten, Strg)]] + [[Vorlage(Tasten, a)]] + [[Vorlage(Tasten, !)]] || <-3:> Funktionstasten an-/abschalten (Screen)|| ||<-4 rowclass="trennzeile"> || ||<:>[[Vorlage(Tasten, Strg)]] + [[Vorlage(Tasten, C)]] || <-3:> Prozess beenden || ||<:>[[Vorlage(Tasten, Strg)]] + [[Vorlage(Tasten, D)]] || <-3:> Sitzung beenden & Tab schließen|| = Statusmeldungen im Detail = ||<-4 rowclass="titel"> Statusmeldungen und Bedeutung || || Benachrichtigung ||<-2> Bedeutung (Ort im Panel)|| Farbe (Text / Hintergrund)|| || `apport` ||<-2> Bei Programmabsturz erstellt apport einen Bericht ("crash report") und erwartet, dass der Anwender entscheidet, ob dieser Bericht versendet wird oder nicht (="pending crash report"). Diese Information erinnert den User hieran.|| orange /schwarz || || `arch` ||<-2> Systemarchitektur der installierten Distribution. Gleichbedeutend dem Befehl `arch`. Wird hier die Information über die Architektur der Paketverwaltung bevorzugt, ist hierfür in der Datei '''/usr/lib/byobu/arch''' [3] der Eintrag `uname -m` in `dpkg --print-architecture` zu ändern. (unten/links)|| standard / standard || || `battery` ||<-2> Akku-Ladestatus; |-| Entladen, |+| Laden, |=| Voll Geladen - Beim Entladen und Laden wird der Ladezustand in % dargestellt - Zur weiteren Hervorhebung ändert sich die Hintergrundfarbe je nach Zustand: Grün, Gelb, Rot (unten/rechts) || (siehe "Bedeutung") || || `cpu_count` ||<-2> Anzahl der Prozessor-Kerne gefolgt von einem "x" (unten/rechts)|| standard / standard || || `cpu_freq` ||<-2> Prozzessor-Takt in GHz (unten/rechts) || weiß / hellblau || || `custom` ||<-2> Benutzerdefinierte, ausführbare Skripte oder Anwendungen aus Verzeichnis '''~/.byobu/bin''' (muss selber angelegt werden) einbinden. Syntax der Skript-Bezeichnung: `n_name`, wobei `n` die Aktualisierungs-Frequenz der Statusanzeige in Sekunden angibt; `n` sollte nicht weniger als 5 Sekunden betragen (z.B. 05_foo, 06_bar, etc.). Bitte beachten: CPU-intensive Skripte können Einfluss auf die gesamte Systemleistung haben! || standard / standard bzw. Benutzdefiniert || || `date` ||<-2> Datum. Format: Jahr-Monat-Tag (unten/rechts) || standard / standard || || `disk` ||<-2> Festplattenplatz im Verzeichnis `/`; Format: Gesamt verfügbar, Belegt in %. Das Standardverzeichnis kann geändert werden. Hierfür in der Datei ''~/.byobu/statusrc'' durch MONITORED_DISK=/wasauchimmer wunschgemäß anpassen [3] (unten/weit-rechts) || weiß / lila || || `ec2_cost` ||<-2> Berechnung laufender Kosten des Webservice [https://aws.amazon.com/de/ec2/ Amazon EC2] {de} || grün / schwarz || || `fan_speed` ||<-2> Prozessor- oder System-Lüfter-Geschwindigkeit, wie/wenn vom lm-Sensor übermittelt (unten/rechts) || schwarz / grau || || `hostname` ||<-2> Hostname des Systems (oben/rechts) || weiß / schwarz || || `ip_adress` ||<-2> IP-Adresse des Systems in Dezimalpunktschreibweise (oben/rechts)|| schwarz / grau || || `load_average` ||<-2> Ø in der letzten Minute vom System geladen in MB (unten/rechts) || schwarz / gelb || || `logo` ||<-2> Kryptische Annäherung an das aktuelle Betriebssystem-Logo. Anpassbar in '''~/.byobu/logo''' oder überschreiben durch setzen von LOGO=*wunschsmilie* in '''~/.byobu/statusrc''' [3] (unten/links)|| nach Einstellung || || `mail` ||<-2> System-Mail für den aktuellen User; Anzeige: "M" (Nicht verwechseln mit email!) (unten/links) || schwarz / grau || || `mem_available` ||<-2> Verfügbarer Arbeitsspeicher ("RAM") in MB bzw. GB (unten/rechts) || weiß / grün || || `mem_used` ||<-2> Benutzter Arbeitsspeicher in % vom verfügbaren Arbeitsspeicher (unten/rechts) || weiß / grün || || `network` ||<-2> Netzwerksende-/Empfangs-Bandbreite in kB/s der letzten 3 Sekunden ('^' = 'up' und 'v' = 'down' (unten/rechts) || weiß / violett || || `processes` ||<-2> Gesamtzahl der laufenden Prozesse auf dem System gefolgt von einem '&' als Hinweis auf 'Hintergrund-Prozesse' (unten/rechts) || weiß / ocker || || `reboot_required` ||<-2> Neustart erforderlich nach System-Aktualisierung ("update"); Anzeige: "R". Zusätzlich wird angezeigt, wenn nur das Profil aktualisiert werden muss, um Änderungen sichtbar zu machen (unten/links) || weiß / blau || || `release` ||<-2> Distribution und Version des laufenden Systems, wie von 'lsb release' übermittelt. Übersteuerung möglich durch Setzen von DISTRO=wasauchimmer in ''~/.byobu/statusrc'' [3] (unten/links) || schwarz (fett) / grau) || || `services` ||<-2> Service. Der Benutzer kann hier eine Dienst-Überwachung anzeigen lassen. Hierzu ist die SERVICE-Variable in '''~/.byobu/status''' anzupassen. [3] (unten/mitte) || cyan / weiß || || `time` ||<-2> Systemzeit in Std:Min:Sek (unten/rechts) || standard / standard || || `time_utc` ||<-2> Systemzeit nach "Coordinated Universal Time" (UTC, auch GMT) in Std:Min (unten/rechts) || schwarz / hellgrau || || `updates_available` ||<-2> Anzahl der verfügbaren Aktualisierungen ("updates"), gefolgt von einem '!' - bei Sicherheits-Aktualisierungen gefolgt von '!!' (unten/mitte)|| weiß / rot || || `uptime` ||<-2> Laufzeit des Systems seit dem letzten Neustart in _h_m (Std min) (unten/links) || blau / grau || || `users` ||<-2> Anzahl der "remote"-Benutzer, die via SSHD im System angemeldet sind. Leer, wenn 0 Benutzer (unten/rechts) || rot / grau || || `whoami` ||<-2> Name des Benutzers der Bildschirmsitzung (oben/rechts)|| weiß / schwarz || || `wifi_quality` ||<-2> WLAN-Qualität. Anzeige der Bitrate in 'Mbps', gefolgt von der Signalstärke in Prozent (unten/links) || grau / petrol || = Problembehebung = ==Autovervollständigung aktivieren== Bei der Verwendung von ''byobu'' funktioniert die Autovervollständigung nicht. Das kann man leicht beheben, in dem man am Ende der '''.bashrc''' folgenden Code anfügt. {{{#!vorlage Befehl if [ -f /etc/profile.d/bash_completion.sh ]; then . /etc/profile.d/bash_completion.sh fi }}} Damit die Autovervollständigung in Kraft tritt, wird folgender Befehl benötigt: {{{#!vorlage Befehl source /etc/profile.d/bash_completion.sh }}} Ab jetzt sollte die Autovervollständigung wieder gehen. == SSH-Byobu == Man kann ''byobu'' auch das alte [:Screen#ssh-Screen: SSH-Screen]-Verhalten beibringen: Mit den folgenden Erweiterung am Ende der Datei '''.profile''' oder der system-weiten '''/etc/profile''' wird automatisch zu einer screen-Sitzung ("session") verbunden, wenn die Verbindung per ssh erfolgt. Bestehende Verbindungen zu der Sitzung werden ggf. getrennt. {{{#!vorlage Hinweis Man sollte byobu nicht in die Datei '''.bashrc''' eintragen, da es sonst in jedem Terminal ausgeführt wird. Das würde also auch für Dinge wie [:SSH#scp:scp] oder byobus eigene "virtuelle Terminals" gelten. }}} {{{if [[ "$TERM" != "screen-bce" && "$SSH_CONNECTION" != "" ]]; then /usr/bin/byobu-screen -S sshscreen -d -R && exit fi }}} Wird der ''screen'' beendet oder getrennt ("detach"), wird auch die ssh-Verbindung getrennt, also ist so auch nur eine ssh-Verbindung möglich. Das kann verhindert werden, indem man `&& exit` weglässt. == Midnight Commander == Wer hier die Mausunterstützung vermisst: Midnight Commander mit {{{mc -x}}} starten. Alternativ hilft es ggf. auch, vor dem Start {{{export TERM=xterm}}} zu setzen. Mit Midnight Commander Version 4.8.11 und höher sollten diese Work-Arounds allerdings nicht mehr nötig sein. == Funktionstasten in der Virtuellen Konsole = In der [:Terminal#Virtuelle-Konsole:Virtuellen Konsole] von Ubuntu werden für byobu mit [:tmux:] sämtliche Funktionstasten mit [[Vorlage(Tasten, shift)]] oder [[Vorlage(Tasten, strg)]] nicht erkannt. Die einzige Möglichkeit Zugriff auf diese Funktionen zu erhalten ist das Ändern [4] der Tastenbelegungen in den entsprechenden Konfigurationsdateien. Beispielsweise für [[Vorlage(Tasten, shift + f12)]] um die Funktionstasten ab-/anzuschalten: * '''/usr/share/byobu/keybindings/f-keys.tmux''' {{{ bind-key -n [mark]S-F12[/mark] source $BYOBU_PREFIX/share/byobu/keybindings/f-keys.tmux.disable \; display-message "Byobu F-keys: DISABLED" }}} * '''/usr/share/byobu/keybindings/f-keys.tmux.disable''' {{{ bind-key -n [mark]S-F12[/mark] source $BYOBU_PREFIX/share/byobu/keybindings/f-keys.tmux \; display-message "Byobu F-keys: ENABLED" }}} = Links = * [https://byobu.org/ Projektseite] {en} * [launchpad:byobu:Dokumentation und Herunterladen der aktuellen Version] {en} * [prolinux:/artikel/2/1745/tmux-mit-byobu-nutzen.html:tmux mit Byobu nutzen] {de} - Artikel Pro-Linux, 01/2015 * [https://ifdeflinux.blogspot.com/2013/04/byobu-bling-with-unicode-custom.html Byobu Bling with Unicode Custom Indicators] {en} - Blogbeitrag, 04/2013 * [:Terminal:] {Übersicht} Progammübersicht #tag: Shell, Fenstermanager, Fernwartung