Linux Bibel online

Creative Commons Lizenzvertrag
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 3.0 Österreich Lizenz.

Change language by Google translator: ...

Das Terminal unter Linux sieht meist ziemlich fade aus:

Das Terminal unter Linux den eigenen Wünschen entsprechend anpassen

Das Terminal unter Linux

Dies ist aber unter Windows und MAC OS auch nicht anders, je nachdem welche Linux-Distribution man nutzt und wie der Distributor diese vor gibt kann der so genannte Terminal-Prompt auch ein klein wenig anders aussehen, dies können andere Farben oder Informationen sein. Wie der Prompt eigentlich aufgebaut ist haben wir schon unter das Linux-Terminal erfahren, der Nutzer muss mit diesem vor gegebenen Prompt aber natürlich nicht leben, er kann diesen verändern wie er dies möchte.

Welche Vorteile könnte ein solch angepasster Terminal-Prompt denn bieten? Nun sind Linux-Nutzer meist verspielte Gesellen die gerne machen was sie wollen und machen was ihnen gefällt - andererseits kann ein solcher auch Vorteile bieten, so etwa mehr Informationen anzeigen oder wenn jemand mehrere Terminals nutzt - etwa auch solche mit denen man per SSH andere Rechner wartet den Nutzer-Namen in einer anderen Farbe dar stellt um gleich zu sehen auf welchem Rechner man sich befindet. So ist es etwa auch nützlich den normalen Nutzer anders zu färben als den Administrator um gleich zu sehen als was man wirklich gerade arbeitet - hier etwa der Unterschied zum oberen Bild als Nutzer "root":

Das Terminal unter Linux den eigenen Wünschen entsprechend anpassen

Das Terminal unter Linux den eigenen Wünschen entsprechend anpassen - anderer Nutzer, andere Farbe

Als erstes gleich einmal - hier kann nichts passieren, Sie können werkeln und basteln wie Sie wollen - Sie können hier absolut nichts zerstören - wie der Terminal-Prompt aussieht regelt die System-Datei "/etc/bashrc", wenn man seinen eigenen Prompt erstellen und anpassen will tut man dies per Texteditor an der in seinem Home-Verzeichnis versteckten Datei ".bashrc" - Angaben die man hier macht sind nur so lange aktiv bis man diese wieder löscht. Als erstes beginnt man mit seinen Experimenten sowieso nur in einem Terminal im Fenster ohne die Änderungen zu speichern, schließt man dieses und öffnet es erneut ist alles wieder wie vor den Anpassungen - erst wenn man Änderungen in der oben genannten versteckten Datei speichert sind diese für den jeweiligen Nutzer auch wirklich aktiv.

Welche Einstellungen sind nötig

Einstellungen am Terminal nimmt man meist mit Variablen vor - die für den Terminal-Prompt verantwortliche nennt sich ganz einfach "PS1" und deren Werte - also die die das System vorgegeben hat lassen sich durch den Befehl:

echo $PS1

erfragen:

Den Terminal-Prompt unter Linux nach eigenen Wünschen anpassen

Den Terminal-Prompt unter Linux nach eigenen Wünschen anpassen - Die Variable PS1

Hier als Beispiel kommt ganz einfach der Eintrag:

\[\e]0;\u@\h: \w\a\]$

heraus. Dies mag nun ein wenig kryptisch aussehen - ist es aber gar nicht, es gibt nur fast unendliche Möglichkeiten die wir uns nun ansehen werden. Als erstes wollen wir lernen wie wir Einstellungen nur temporär testen, dazu nutzt man einfach auf dem Terminal folgenden Befehl:

PS1='Werte'

Zwischen den Anführungszeichen gibt man seine Einstellungen ein, nach dem Bestätigen mit der Eingabe-Taste sind diese sofort aktiv, schließt man das Terminal-Fenster sind diese Einstellungen wieder weg. Will man die Einstellungen dauerhaft speichern trägt man diese mit einem beliebigen Texteditor in die in seinem Home-Verzeichnis versteckte Datei ".bashrc" ein, ganz einfach als neue Zeile am Ende der Datei im Stile von:

PS1='Werte'

Nach dem Speichern der Datei, dem neuen Start eines Terminal-Fensters sind die Einstellungen dort aktiv, arbeitet man mit einem virtuellen Terminal werden die Einstellungen durch den Befehl:

source ~/.bashrc

aktiv, will man die Einstellungen wieder los werden löscht man einfach die erstellte Zeile.

Die Werte für Einstellungen

Die möglichen Werte für Einstellungen sind vielfältig daher wollen wir zu Beginn ohne Farben spielen und diese erst später behandeln. Die Einstellungen, also die Werte werden durch so genannte Escape-Sequenzen angegeben - dies muss man eigentlich nicht wissen und ist nur rein informativ.

Zu Beginn muss man erst einmal verstehen um was es eigentlich geht, nehmen wir uns also wieder das voran gegangene Beispiel meiner Einstellungen - Standard des Systems vor:

\[\e]0;\u@\h: \w\a\]$

Dies ist momentan etwas verwirrend, aber ich werde gleich einmal die Farben heraus nehmen womit wir:

\u@\h: \w\a$

erhalten. Noch immer kompliziert - gleich nicht mehr, jede Escape-Sequenz wir durch einen Backslash "\" eingeleitet, alles andere schreibt die Bash - also der Interpreter hinter dem Terminal in den Prompt - nun wollen wir die ganzen Sequenzen gleich einmal kennen lernen sowie deren Funktionen:

Escape-Sequenz Bedeutung
\a die Glocke (Bell), sieht man nicht
\A die Uhrzeit im 24h-Format (hh:mm)
\d Datum im Stile von "Tag Monat Tag"
\e Escape-Zeichen (033)
\h Der Hostname / Rechnername bis zum ersten Punkt "."
\H Der vollständige Hostname / Rechnername
\j Die Anzahl der auf dem Terminal laufenden Prozesse
\l Das aktuelle Terminal
\n Eine neue Zeile beginnen
\t Die Uhrzeit im 24h-Format (hh:mm:ss)
\T Die Uhrzeit im 12h-Format (hh:mm:ss)
\r Ein Zeichen zurück
\s Bezeichnung der Shell, des Interpreters
\u Der Nutzername des aktuellen Nutzers
\v Die Version der Bash
\V Die Unterversion der Bash
\w Das aktuelle Verzeichnis
\W Die letzte Komponente des aktuellen Verzeichnisses
\! Die aktuelle History-Nummer
\# Die Anzahl des aktuellen Befehls
\$ Der Nutzer, Nutzer oder Administrator
\\ Schreibt den Backslash "\"
\nnn Zeichen der oktalen Zahl die man statt "n" angibt
\[ Beginn einer nicht sichtbaren Sequenz, Beispiel einer Farbe
\] Ende einer nicht sichtbaren Sequenz, Beispiel einer Farbe
\@ Uhrzeit im Format AM/PM

Nun wollen wir ganz einfach einmal Beginnen, wir wollen nur unseren Nutzernamen anzeigen lassen:

PS1='\u'

Das Terminal unter Linux anpassen mit Escape-Sequenzen

Das Terminal unter Linux anpassen mit Escape-Sequenzen

Nach der Bestätigung mit der Eingabe-Taste wird nur noch angezeigt was wir haben wollen - in diesem Fall eben unser Nutzername. Wollen wir etwas weiter gehen und ganz einfach den Doppelpunkt dahinter anfügen und zwar nach einem Leerzeichen:

PS1='\u :'

und schon erhalten wir den passenden Prompt:

Das Terminal unter Linux anpassen mit Escape-Sequenzen

Das Terminal unter Linux anpassen mit Escape-Sequenzen

Dies kann man natürlich immer weiter so fort führen - etwa:

PS1='\u@\h\w | \d-\t \w :'

Das Terminal unter Linux anpassen mit Escape-Sequenzen

Das Terminal unter Linux anpassen mit Escape-Sequenzen

Wir können natürlich auch unsere eigenen Variablen in den Prompt einfließen lassen, beispielsweise die Kernel-Version oder welche Informationen auch immer. Ich Beispiel will ich ganz einfach die Version des Kernels einfügen, dazu legt man sich ein Alias für den passenden Befehl an, die Version des Kernels erfahren wir durch den Befehl:

uname -r

Das Terminal unter Linux anpassen mit Escape-Sequenzen

Das Terminal unter Linux anpassen mit Escape-Sequenzen

Für diesen Befehl legt man sich nun ein passendes Alias in der schon genannten Datei ".bashrc" an -etwa:

KERNEL=$(uname -r)

Nun lässt man dieses Alias ganz einfach in die Escape-Sequenzen einfließen - etwa:

PS1=''"$KERNEL"':\u@\h\w | \d-\t \w :'

Das Terminal unter Linux anpassen mit Escape-Sequenzen

Das Terminal unter Linux anpassen mit Escape-Sequenzen

Farben

Zuletzt wollen wir noch ein wenig Farbe ins Spiel bringen, auch dies ist wie schon beschrieben problemlos möglich. Als erstes - wir haben schon gelesen das wir Zeichen die nicht sichtbar sein sollen durch "\[" eingeleitet und durch "\]" beendet werden, unsere Farben-Codes gehören also dazwischen denn wir wollen ja nicht die Zeichen sondern die Farben sehen.

Wir wollen uns nun wieder eine Tabelle ansehen, wenn wir Farben auf dem Prompt nutzen wollen gibt es zwei verschiedene Arten, Vordergrund-Farben mit denen wir die Farben der Schrift fest legen und Hintergrund-Farben mit denen wir den Hintergrund bestimmen:

Farbe Schrift Code Farbe Hintergrund Code
schwarz \[\033[0;30m\] keine \[\033[m\]
dunkelgrau \[\033[1;30m\] schwarz \[\033[40m\]
rot \[\033[0;31m\] rot \[\033[41m\]
helles rot \[\033[1;31m\] grün \[\033[42m\]
grün \[\033[0;32m\] helles braun \[\033[43m\]
braun \[\033[0;33m\] blau \[\033[44m\]
gelb \[\033[1;33m\] lila \[\033[45m\]
blau \[\033[0;34m\] türkis \[\033[46m\]
helles blau \[\033[1;34m\] helles grau \[\033[47m\]
dunkles lila \[\033[0;35m\]
helles lila \[\033[1;35m\]
dunkles türkis \[\033[0;36m\]
türkis \[\033[1;36m\]
helles grau \[\033[0;37m\]
weiß \[\033[1;37m\]
farblos \[\033[0m\]

Wir sehen hier bei jeder Farbe den Wert "\033", dies ist nichts anderes als die Angabe für eine Sequenz - in diesem Fall also für eine beliebige Farbe die dann folgt, die Farbe selbst hat unbedingt mit einem "m" zu enden. Wichtig ist es auch zu verstehen das wenn man mit einer Farbe beginnt diese so weit fort gesetzt wird bis man diese durch eine andere ersetzt.

Wollen wir also einmal wieder ganz von vorne beginnen mit unserer Escqpe-Sequenz:

\u@\h: \w\a\]$

Als kleines Beispiel möchte ich ganz einfach den Namen des Nutzers in gelb sehen, also die Schrift - dazu dient der Farben-Code "\[\033[1;33m\]":

PS1='\[\033[1;33m\]\u@\h: \w\a\]$'

Farbe in den Prompt auf dem Linux-Terminal bringen

Farbe in den Prompt auf dem Linux-Terminal bringen

Wie oben schon beschrieben wird alles was danach folgt in der selben Farbe dar gestellt, will man also wieder auf die normale Farbe kommen muss man diese an der gewünschten Stelle an bringen - etwa:

PS1='\[\033[1;33m\]\u@\[\033[1;37m\]\h: \w\a\]$'

Farbe in den Prompt auf dem Linux-Terminal bringen

Farbe in den Prompt auf dem Linux-Terminal bringen

Um ein wenig Hintergrund-Farbe anzubringen gibt man diese ganz einfach ebenfalls an der gewünschten Stelle an. Noch ein kleines Beispiel für einen erweiterten Bash-Prompt:

PS1='\n\[\033[47;30m\]\d, \A \[\033[41;37m\] \u \auf \H \[\033[47,30m\] MB free=$freemem \[\033[41;37m\] $CPU \[\033[40;37m\] [$timediff] \[\033[42;30m\] \w \[\033[0m\]\n'

Farbe in den Prompt auf dem Linux-Terminal bringen

Farbe in den Prompt auf dem Linux-Terminal bringen

Suche Nach oben Startseite Mail an den Autor Links rund um Linux

SiteLock