{"id":10850,"date":"2023-09-10T12:28:12","date_gmt":"2023-09-10T10:28:12","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=10850"},"modified":"2023-09-10T12:32:58","modified_gmt":"2023-09-10T10:32:58","slug":"bequeme-autovervollstandigung-statusleiste-zeitmessung-mit-ble","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/bequeme-autovervollstandigung-statusleiste-zeitmessung-mit-ble\/","title":{"rendered":"Bequeme Autovervollst\u00e4ndigung, Statusleiste, Zeitmessung &#038; mehr f\u00fcr dein Terminal mit &#8222;ble&#8220;"},"content":{"rendered":"<p>Hast du schon mal die gleichen Befehle \u00f6fters eingegeben? Warst du schon mal auf einem Raspberry Pi oder anderen GNU\/Linux-Installationen und hast dir eine Statusleiste mit Informationen zu diesem System gew\u00fcnscht? Fragst du dich bei l\u00e4nger andauernden Vorg\u00e4ngen wie z.B. dem Kopieren von Dateien \u00f6fter mal, wie viel Zeit dieser Befehl in Anspruch genommen hat? W\u00fcnschst du dir Syntax-Hervorhebung beim Tippen? All das und noch mehr kann jede Standard Bash-Shell mit dem <a href=\"https:\/\/github.com\/akinomyoga\/ble.sh\" data-type=\"link\" data-id=\"https:\/\/github.com\/akinomyoga\/ble.sh\" target=\"_blank\" rel=\"nofollow\">n\u00fctzlichen Werkzeug namens <strong>ble<\/strong><\/a>, welches ich dir in diesem Beitrag vorstelle.<\/p>\n<h2 class=\"wp-block-heading\">Was ist ble?<\/h2>\n<p>Ble beschreibt sich selbst als Befehlszeileneditor, der komplett in der Skriptsprache Bash geschrieben wurde. Das Werkzeug m\u00f6chte <strong><a href=\"https:\/\/tiswww.case.edu\/php\/chet\/readline\/rltop.html\" data-type=\"link\" data-id=\"https:\/\/tiswww.case.edu\/php\/chet\/readline\/rltop.html\" target=\"_blank\" rel=\"nofollow\">GNU readline<\/a><\/strong> verbessern: Die Bibliothek dient zum Bearbeiten von Zeilen und wird von der Bash selbst verwendet, um Beispielsweise die Autovervollst\u00e4ndigung mit <strong>&lt;Tab&gt;<\/strong> anzubieten: Wer beispielsweise <strong>unz<\/strong> gefolgt von der <strong>&lt;Tab&gt;<\/strong>Taste eintippt, erh\u00e4lt den Befehl <strong>unzip<\/strong> &#8211; oder alternativ eine Liste, falls mehrere Befehle mit dem gleichen Name gefunden werden. Die Bash bietet weitere n\u00fctzliche Funktionen wie die Suche im Verlauf mit <strong>[STRG] + [R]<\/strong>. Auch die Suche ist jedoch recht rudiment\u00e4r gehalten. Daher sind <a href=\"https:\/\/u-labs.de\/portal\/besser-auf-der-konsole-mit-fzf-suchen-suchverlauf-schnelle-ordnerwechsel-dateivorschau-mehr\/\" data-type=\"post\" data-id=\"8260\">Werkzeuge wie fzf entstanden<\/a>, um sie etwa mit einer Trefferliste oder zus\u00e4tzlichen Operatoren (z.B. Ausschlie\u00dfen von Begriffen) zu erg\u00e4nzen.<\/p>\n<p>\u00c4hnlich sieht es mit <strong>readline<\/strong> aus: \u00dcber die <strong>~\/.inputrc<\/strong> kann man zwar einige Einstellungen vornehmen. Einige n\u00fctzliche Funktionen lassen sich damit aber nicht umsetzen. Hier \u00fcbernimmt <strong>ble<\/strong> und bietet eine Reihe an praktischen Funktionen, womit die Konsole nicht nur \u00fcbersichtlicher und produktiver wird, sondern auch etwas farbenfroher.<\/p>\n<h2 class=\"wp-block-heading\">Installation<\/h2>\n<p>Auf eurem System werden Gawl &amp; Git als Abh\u00e4ngigkeiten ben\u00f6tigt. Anschlie\u00dfend das GitHub-Repository klonen, Make-Skript ausf\u00fchren, das Startskript von <strong>ble<\/strong> in die .bashrc einbetten um es bei jeder Konsolenanwendung automatisch zu laden und anschlie\u00dfend mit <strong>source<\/strong> eure .bashrc neu laden &#8211; dadurch werden die \u00c4nderungen sofort wirksam, statt erst bei der n\u00e4chsten Anmeldung.<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo apt install make gawk git\n\ngit clone --recursive --depth 1 --shallow-submodules https:\/\/github.com\/akinomyoga\/ble.sh.git\nmake -C ble.sh install PREFIX=~\/.local\necho &#039;source ~\/.local\/share\/blesh\/ble.sh&#039; &gt;&gt; ~\/.bashrc\nsource ~\/.bashrc\n<\/pre>\n<\/div>\n<p>Das Skript legt sich selbst und seine Daten in <strong>~\/.local\/share\/blesh\/<\/strong> ab. Der erste Start dauert einige Sekunden, da hier die Initialisierung durchgef\u00fchrt wird. <\/p>\n<h2 class=\"wp-block-heading\">Diese praktischen Funktionen bietet dir ble<\/h2>\n<p>Anschlie\u00dfend ist <strong>ble<\/strong> aktiv: In diesem Beispiel habe ich <strong>ps<\/strong> eingetippt. Direkt nachdem ich mit Tippen aufh\u00f6re, zeigt <strong>ble<\/strong> einen Beispieleintrag aus dem Verlauf. Dieser wird als markierter Text rechts angezeigt und nur \u00fcbernommen, wenn wahlweise [Tab] oder die Pfeil-nach-Rechts-Taste gedr\u00fcckt wird. Tippt man weiter oder dr\u00fcckt Enter (weil man etwa ps ohne Parameter aufrufen m\u00f6chte), ignoriert das Werkzeug die Vorschl\u00e4ge. Sie erscheinen weiterhin, so lange es zum eingegebenen Befehl etwas passendes finden kann.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik.png\"><img loading=\"lazy\" decoding=\"async\" width=\"529\" height=\"103\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik.png\" alt=\"\" class=\"wp-image-10854\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik.png 529w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-300x58.png 300w\" sizes=\"auto, (max-width: 529px) 100vw, 529px\" \/><\/a><\/figure>\n<\/div>\n<p>Das passiert Permanent im Hintergrund, w\u00e4hrend du tippst. Die Vorschl\u00e4ge k\u00f6nnen sich daher \u00e4ndern und sind vielseitig: Es wird auf verf\u00fcgbare Befehle in <strong>$PATH<\/strong>, zuvor ausgef\u00fchrte Befehle aus der Bash-Historie sowie existierende Dateien\/Ordner im Dateisystem zur\u00fcckgegriffen. In folgendem Beispiel wird daher <strong>\/etc\/resolv.conf<\/strong> vorgeschlagen, obwohl ich diesen Befehl auf dem Testsystem noch nie ausgef\u00fchrt habe.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"529\" height=\"103\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-1.png\" alt=\"\" class=\"wp-image-10853\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-1.png 529w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-1-300x58.png 300w\" sizes=\"auto, (max-width: 529px) 100vw, 529px\" \/><\/a><\/figure>\n<\/div>\n<p>Dabei versucht <strong>ble<\/strong>, den wahrscheinlichsten Treffer anzuzeigen. Teilweise gibt es aber auch mehrere: In diesem Beispiel etwa <strong>resolv.conf.bak<\/strong> und <strong>resolvconf.conf<\/strong>. Mit der <strong>&lt;Tab&gt;<\/strong> Taste wird darunter eine Auswahl aller Treffer angezeigt, durch die man durch erneutes Dr\u00fccken von <strong>&lt;Tab&gt;<\/strong> navigieren kann. \u00dcbernommen wird er mit <strong>&lt;Enter&gt;<\/strong>. <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"569\" height=\"125\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-2.png\" alt=\"\" class=\"wp-image-10855\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-2.png 569w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-2-300x66.png 300w\" sizes=\"auto, (max-width: 569px) 100vw, 569px\" \/><\/a><\/figure>\n<\/div>\n<p>Bereits bei diesen einfachen Demonstrationen sieht man, wie <strong>ble<\/strong> durch verschiedene Farben versucht, die Eingabe \u00fcbersichtlicher zu gestalten: Der Befehl selbst (hier <strong>cat<\/strong>) wird gr\u00fcn, der Ordner <strong>\/etc<\/strong> blau und der Dateiname <strong>resolvconf.conf<\/strong> wei\u00df. Das geschieht auch an anderen Stellen, etwa bei Parametern. Wird ein Befehl mit Fehlercode (= R\u00fcckgabewert ungleich 0) beendet, zeigt es den R\u00fcckgabewert in einer eigenen roten Zeile an.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"559\" height=\"125\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-4.png\" alt=\"\" class=\"wp-image-10857\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-4.png 559w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-4-300x67.png 300w\" sizes=\"auto, (max-width: 559px) 100vw, 559px\" \/><\/a><\/figure>\n<\/div>\n<p>Zum Vergleich: Die normale Bash alleine (also ohne <strong>ble<\/strong>) w\u00fcrde an dieser Stelle nichts unternehmen: Gibt euch die aufgerufene Software keine Fehlermeldung aus (wie z.B. grep), erscheint keinerlei Ausgabe. Dass aus Sicht des Programms ein Fehlerfall aufgetreten ist, seht ihr nur durch manuelle Ausgabe von <strong>$?<\/strong>: Die Variable enth\u00e4lt den Exit-Code des zuletzt ausgef\u00fchrten Befehls. Hier <strong>1<\/strong>, was grep zur\u00fcck liefert, wenn der gesuchte Text nicht gefunden wurde.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"479\" height=\"169\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-3.png\" alt=\"\" class=\"wp-image-10856\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-3.png 479w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-3-300x106.png 300w\" sizes=\"auto, (max-width: 479px) 100vw, 479px\" \/><\/a><\/figure>\n<\/div>\n<h2 class=\"wp-block-heading\">Die Konfigurationsdatei bietet noch viel mehr n\u00fctzliche Dinge<\/h2>\n<p>Viele weitere Funktionen des Kommandozeilenwerkzeugs sind standardm\u00e4\u00dfig nicht eingeschaltet. Standardm\u00e4\u00dfig l\u00e4dt <strong>ble<\/strong> die Konfigurationsdatei <strong>~\/.blerc<\/strong>, sofern vorhanden. Ihr k\u00f6nnt diese <a href=\"https:\/\/u-labs.de\/portal\/dateien-mit-dem-raspberry-pi-bearbeiten-4-wege-fuer-einsteiger-grafisch-und-mit-nano-vim-auf-der-konsole\/\" data-type=\"post\" data-id=\"7514\">mit einem Texteditor eurer Wahl anlegen<\/a> und die gew\u00fcnschten Einstellungen aus den folgenden Abschnitten setzen. Diese werden nicht sofort wirksam, der Befehl <strong>ble-reload<\/strong> l\u00e4dt die Datei neu. <\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nvim ~\/.blerc\nble-reload\n<\/pre>\n<\/div>\n<p><strong>Aber Vorsicht<\/strong>: Fehler in der <strong>.blerc<\/strong> k\u00f6nnen dazu f\u00fchren, dass die Konsole nicht mehr funktionsf\u00e4hig ist! Ich empfehle daher, <strong>vorher<\/strong> einen zweiten Reiter zu \u00f6ffnen, in dem ihr eine weitere Konsole\/SSH-Sitzung \u00f6ffnet. Im Fehlerfall k\u00f6nnt ihr diese nutzen, um das Problem an der .blerc zu korrigieren und <strong>in einer neuen Konsole<\/strong> zu testen.<\/p>\n<p>Gerade beim ausprobieren passierte es in meinen Tests gelegentlich, dass die \u00c4nderungen nicht wie gew\u00fcnscht wirksam wurden. Hier half in den meisten F\u00e4llen das L\u00f6schen des Zwischenspeichers (Cache). In einem hartn\u00e4ckigen Fall funktioniert es nach dem \u00d6ffnen einer neuen Konsole\/SSH-Verbindung.<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nrm -rf $_ble_base_cache\n<\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\">Statuszeile mit eigenen Informationen, Exitcode &amp; Trennlinien<\/h3>\n<p>Mit <strong>ble<\/strong> kann man auch eine Statuszeile am unteren Ende des Bildschirms einblenden. Neben vorgefertigten Variablen lassen sich Befehle ausf\u00fchren, deren Ausgabe eingef\u00fcgt wird: Folgendes Beispiel ist f\u00fcr den Raspberry Pi optimiert und <\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nfunction ble\/prompt\/backslash:custom\/memoryTime {\n  ble\/prompt\/unit\/add-hash &#039;$SECONDS&#039;\n  ble\/prompt\/process-prompt-string &quot;\ud83d\udcbe$(free -h | grep Mem | awk &#039;{printf $3 &quot;\/&quot; $2}&#039;)\\r\u23f0\\t&quot;\n}\nbleopt prompt_status_line=&quot;\ud83d\udc27$(uname -o) $(uname -r) $(uname -m)\\r\ud83d\udcdf$(dmesg | grep &#039;Machine model&#039; | awk -F&#039;: &#039; &#039;{print $2}&#039;)\\r\\q{custom\/memoryTime}&quot;\nbleopt prompt_status_align=$&#039;justify=\\r&#039;\n<\/pre>\n<\/div>\n<p>Dieses Beispiel zeigt links unten die Kernel-Version sowie Architektur an. In der Mitte Modell und Revision des Raspberry Pi. Daneben belegter\/insgesamt verf\u00fcgbarer Arbeitsspeicher und Uhrzeit. Die letzten beiden werden automatisch aktualisiert, allerdings nur, wenn man aktiv ist. H\u00f6rt das Tippen auf, pausiert <strong>ble<\/strong> die Aktualisierung. Alle Daten sollen zentriert dargestellt werden, anhand des Tabs ausgerichtet. F\u00fcr die meisten Angaben werden Shell-Befehle ausgef\u00fchrt, d.H. man kann viele weitere Daten darstellen, etwa den Akkustand eines Notebooks (wenngleich dies etwas Leistung kostet). Au\u00dferhalb des Raspberry Pis sollte man die Modellanzeige entfernen, da sie unter X86 Desktops\/Servern nicht wie auf dem Raspberry Pi OS funktioniert:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nbleopt prompt_status_line=&quot;\ud83d\udc27$(uname -o) $(uname -r) $(uname -m)\\r\\q{custom\/memoryTime}&quot;\n<\/pre>\n<\/div>\n<p>Interessant finde ich zudem die Ausf\u00fchrungszeit, Anzeige von Fehlercodes (Exitcode != 0) und mit dem <em>promt_ruler<\/em> eine Trennlinie. So wird auf den ersten Blick klar, wo die Ausgabe eines Befehls anf\u00e4ngt bzw. endet.<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n# Zeigt die Ausf\u00fchrungszeit &amp; CPU-Last an, wenn der Befehl &gt; 10 ms ben\u00f6tigt hat\nbleopt exec_elapsed_mark=$&#039; \\\\e&#x5B;94m&#x5B;\u21aa\ufe0f&#x5B;%s \ud83d\udcc8%s%%]\\e&#x5B;m&#039;\nbleopt exec_elapsed_enabled=&#039;usr+sys&gt;=10&#039;\n# Exitcode (nur angezeigt, wenn nicht gleich null)\nbleopt exec_errexit_mark=$&#039; \\e&#x5B;91m&#x5B;\u26a1\ufe0fRC \u27a1\ufe0f %d]\\e&#x5B;m&#039;\n# Blaue Trennlinie zwischen den Befehlen\nbleopt prompt_ruler=$&#039;\\e&#x5B;94m-&#039; \n<\/pre>\n<\/div>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"321\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-5-1024x321.png\" alt=\"\" class=\"wp-image-10860\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-5-1024x321.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-5-300x94.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-5-768x241.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-5-730x229.png 730w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/grafik-5.png 1029w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<p>Die komplette Konfigurationsdatei <strong>~\/.blerc<\/strong>:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nfunction ble\/prompt\/backslash:custom\/memoryTime {\n  ble\/prompt\/unit\/add-hash &#039;$SECONDS&#039;\n  ble\/prompt\/process-prompt-string &quot;\ud83d\udcbe$(free -h | grep Mem | awk &#039;{printf $3 &quot;\/&quot; $2}&#039;)\\r\u23f0\\t&quot;\n}\nbleopt prompt_status_line=&quot;\ud83d\udc27$(uname -o) $(uname -r) $(uname -m)\\r\ud83d\udcdf$(dmesg | grep &#039;Machine model&#039; | awk -F&#039;: &#039; &#039;{print $2}&#039;)\\r\\q{custom\/memoryTime}&quot;\nbleopt prompt_status_align=$&#039;justify=\\r&#039;\n# Zeigt die Ausf\u00fchrungszeit &amp; CPU-Last an, wenn der Befehl &gt; 10 ms ben\u00f6tigt hat\nbleopt exec_elapsed_mark=$&#039; \\\\e&#x5B;94m&#x5B;\u21aa\ufe0f&#x5B;%s \ud83d\udcc8%s%%]\\e&#x5B;m&#039;\nbleopt exec_elapsed_enabled=&#039;usr+sys&gt;=10&#039;\n# Exitcode (nur angezeigt, wenn nicht gleich null)\nbleopt exec_errexit_mark=$&#039; \\e&#x5B;91m&#x5B;\u26a1\ufe0fRC \u27a1\ufe0f %d]\\e&#x5B;m&#039;\n# Blaue Trennlinie zwischen den Befehlen\nbleopt prompt_ruler=$&#039;\\e&#x5B;94m-&#039; \n<\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\">Fazit: N\u00fctzlich und eine nette Spielerei dazu<\/h3>\n<p>In <strong>ble<\/strong> sind einige n\u00fctzliche Funktionen enthalten, die teils von der <strong>Z-Shell<\/strong> inspiriert wurden, wie etwa die automatische Vervollst\u00e4ndigung von Befehlen &#8211; der Hauptgrund, warum ich mir <strong>ble<\/strong> genauer angeschaut habe. Die automatische Ausgabe des Exit-Codes ist nicht nur f\u00fcr weniger erfahrene Nutzer hilfreich. Auch wenn man wei\u00df, dass man diesen mit <strong>$?<\/strong> erf\u00e4hrt, ist es so doch deutlich einfacher. Mit den Farben und <a href=\"https:\/\/getemoji.com\/\" data-type=\"link\" data-id=\"https:\/\/getemoji.com\/\" target=\"_blank\" rel=\"nofollow\">ein paar Unicode-Emojis<\/a> sieht die Konsole zudem auch noch ansprechender aus.<\/p>\n<p>Durch die hohe Anpassbarkeit kann man Stunden damit verbringen, sich seine Shell bis hin zu Details wie z.B. einzelnen Farben recht genau anzupassen. Sicherlich m\u00f6gen manche Funktionen unter <strong>ZSH<\/strong> &amp; co. einfacher und teilweise sogar mit Boardmitteln realisierbar sein. Manch einer m\u00f6chte jedoch vielleicht nicht unbedingt seine komplette Shell wegen einzelnen Funktionen wechseln. Hier sehe ich <strong>ble<\/strong> als eine sinnvolle Erg\u00e4nzung.<\/p>\n<h3 class=\"wp-block-heading\">Weitere Infos<\/h3>\n<p>Das Werkzeug l\u00e4sst sich stark anpassen (z.B. Farben) und Erweitern (etwa eigene Befehle aufrufen und die Ausgabe einbetten). <a href=\"https:\/\/github.com\/akinomyoga\/ble.sh\/wiki\/Manual-%C2%A71-Introduction\" data-type=\"link\" data-id=\"https:\/\/github.com\/akinomyoga\/ble.sh\/wiki\/Manual-%C2%A71-Introduction\" target=\"_blank\" rel=\"nofollow\">Im offiziellen Handbuch<\/a> sind die verf\u00fcgbaren Einstellungen dokumentiert, vieles aus den folgenden Abschnitten befindet sich in <strong>\u00a74 Edit<\/strong>. Erg\u00e4nzend empfand ich manchmal ein Blick in die <a href=\"https:\/\/github.com\/akinomyoga\/ble.sh\/blob\/master\/blerc.template\" target=\"_blank\" rel=\"nofollow\"><strong>blerc.template<\/strong> Datei des Repositorys<\/a> als hilfreich: Das ist eine Art Beispieldatei, in der die verschiedenen Einstellungsm\u00f6glichkeiten aufgelistet sind, oft mit einer mehr oder weniger ausf\u00fchrlichen Erkl\u00e4rung. \u00c4hnlich, wie man das von vielen GNU\/Linux-Programmen kennt, die solch eine Datei bei der Installation anlegen.<\/p>\n<p>Falls euch einzelne Funktionen von <strong>ble<\/strong> nicht gefallen, k\u00f6nnt ihr so ziemlich alle davon einzeln deaktivieren. Dazu m\u00fcsst ihr eine bestimmte Variable auf einen leeren Wert setzen. Meist ist es diejenige, in der man das Format anpassen kann. Die verf\u00fcgbaren werden <a href=\"https:\/\/github.com\/akinomyoga\/ble.sh#22-disable-features\" target=\"_blank\" rel=\"nofollow\">in der README aufgelistet<\/a>. Folgende dient beispielsweise f\u00fcr die Formatierung der ben\u00f6tigten Ausf\u00fchrungsdauer, die auf eine leere Zeichenkette gesetzt und damit deaktiviert wird:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nbleopt exec_elapsed_mark=\n<\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hast du schon mal die gleichen Befehle \u00f6fters eingegeben? Warst du schon mal auf einem Raspberry Pi oder anderen GNU\/Linux-Installationen und hast dir eine Statusleiste mit Informationen zu diesem System gew\u00fcnscht? Fragst du dich bei l\u00e4nger andauernden Vorg\u00e4ngen wie z.B. dem Kopieren von Dateien \u00f6fter mal, wie viel Zeit dieser Befehl in Anspruch genommen hat? &#8230;<\/p>\n","protected":false},"author":5,"featured_media":11040,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[74],"tags":[844,1084],"class_list":["post-10850","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-bash","tag-cli"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/10850","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=10850"}],"version-history":[{"count":6,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/10850\/revisions"}],"predecessor-version":[{"id":10888,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/10850\/revisions\/10888"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/11040"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=10850"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=10850"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=10850"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}