Farbige Shell
Vorher:
| Nachher:
|
xpert:/usr/src/linux$ _
| -[user@host]-*-[Don, 30. Jan 2003]-*-[18:36]-
(/usr/src/linux) _
|
wenig informativ: der Standard-Prompt
| so oder ähnlich sieht der neue, farbige Bash-Prompt dann
schließlich aus
|
Der Shell-Prompt der Bash befindet sich in der Variablen $PS1. Um ihn zu verändern,
muss der Wert in dieser Variablen überschrieben werden. Am besten eignet sich die
Datei '.bashrc', um einen selbsterstellten Shell-Prompt zu speichern. Diese Datei befindet
sich im Home-Verzeichnis des jeweiligen Benutzers und kann mit einem einfachen Text-Editor
bearbeitet werden. Meist befindet sich hier bereits eine Zeile, welche mit 'PS1=' beginnt.
Hier wurde dann bereits ein Prompt definiert. Um diesen Prompt durch einen eigenen zu
ersetzen, kommentiert man diese Zeile durch ein '#' am Anfang der Zeile einfach aus und
fügt die Zeile(n) für den eigenen Prompt dahinter ein.
Da ein benutzerdefinierter Prompt recht komplex und umfangreich werden kann, empfielt es sich,
diesen in eine eigene Funktion zu schreiben und diese dann später aufzurufen. Im folgenden
Beispiel wird das so gemacht. Hier sehen Sie auf der linken Seite die einzelnen Zeilen,
welche der Konfigurationsdatei '.bashrc' hinzugefügt werden und auf der rechten Seite eine
Erklärung dafür.
Konfiguration
| Erklärung
|
function farbige_shell {
| Definition der neuen Funktion, welche den neuen Shell-Prompt enthält
|
local GRAY="\[\033[1;30m\]"
local LIGHT_GRAY="\[\033[0;37m\]"
local CYAN="\[\033[0;36m\]"
local LIGHT_CYAN="\[\033[1;36m\]"
local NO_COLOUR="\[\033[0m\]"
local BLUE="\[\033[0;34m\]"
local LIGHT_BLUE="\[\033[1;34m\]"
local RED="\[\033[0;31m\]"
local LIGHT_RED="\[\033[1;31m\]"
local GREEN="\[\033[0;32m\]"
local LIGHT_GREEN="\[\033[1;32m\]"
local PURPLE="\[\033[0;35m\]"
local LIGHT_PURPLE="\[\033[1;35m\]"
local BROWN="\[\033[0;33m\]"
local YELLOW="\[\033[1;33m\]"
local BLACK="\[\033[0;30m\]"
local WHITE="\[\033[1;37m\]"
|
Hier werden die Farben definiert, die so später einfacher verwendet
werden können, um den Shell-Prompt farblich zu gestalten.
|
PS1="\n$GRAY-$CYAN[$LIGHT_CYAN\u$CYAN@$LIGHT_CYAN\h$CYAN]\
| Der normale Shell-Prompt ist in der Variablen $PS1 gespeichert. Um ihn zu
ändern, wird dieser Variablen ein neuer Wert zugewiesen. Eigentlich
gehört alles, was jetzt folgt, in eine einzige Zeile, damit es aber
übersichtlicher wird, kann es auch über mehrere Zeilen aufgeteilt
werden. Dazu muss am Ende einer jeden Zeile ein Backslash '\' stehen.
In dieser Zeile sind bereits die Variablen '\u' und '\h' enthalten, welche
den Benutzernamen und den Hostnamen, also den Namen des Computers ausgeben.
|
$GRAY-$CYAN*$GRAY-\
| Diese Zeile erstellt einen Trenner.
|
$CYAN[$LIGHT_CYAN\$(date +%a,\ %d.\ %b\ %y)$CYAN]\
| Hier wird dem Shell-Prompt das aktuelle Datum über die Funktion 'date'
hinzugefügt. Das '%a' steht hier für den Wochentag als dreistellige
Abkürzung, also z.B. 'Don', 'Fre', 'Sam' usw. Das '%d" gibt den aktuellen
Tag im Monat als Zahl aus. Mit '%b' wird der Monatsname ausgegeben und das '%y'
lässt die Jahreszahl erscheinen.
|
$GRAY-$CYAN*$GRAY-\
| Auch hier wird wieder ein Trenner hinzugefügt.
|
$CYAN[$LIGHT_CYAN\$(date +%H:%M)$CYAN]$GRAY-$NO_COLOUR\n\
| Diese Zeile fügt dem Shell-Prompt noch die aktuelle Uhrzeit hinzu.
'%H' steht für Stunde und '%M' für Minute. Beide Zahlen werden
so immer zweistellig angezeigt.
Das '\n' am Ende dieser Zeile sorgt dafür, dass ein Zeilenumbruch
hinzugefügt wird und so der Shell-Prompt zweizeilig erscheint.
|
$CYAN($LIGHT_CYAN\w$CYAN)$NO_COLOUR"
| Was hier noch angehängt wird, erscheint später beim Shell-Prompt
in der zweiten Zeile. Hier soll noch das Verzeichnis angezeigt werden, in dem
sich der Benutzer zur Zeit befindet. Dies geschieht mit der Variablen '\w'.
|
}
| Hiermit wird die neue Shell-Prompt-Funktion abgeschlossen.
|
farbige_shell
| Damit der neue Prompt auch wirklich erscheint, muss die eben erstellte Funktion
noch aufgerufen werden.
|
Falls auf Ihrem Linux-System die farbige Ausgabe des Befehls 'ls' noch nicht
aktiviert ist, so können Sie dies nachholen, indem Sie in Ihrer '.bashrc'-Datei
die folgenden Zeilen hinzufügen:
export LS_OPTIONS='--color=auto'
eval `dircolors`
Nun werden beim Aufruf des Befehls 'ls' die Verzeichnisse blau und ausführbare Dateien grün angezeigt und
lassen sich dadurch viel leicher von anderen Dateien unterscheiden.
Fragen und Anregungen zu diesem Bericht?
Schreiben Sie mir eine E-Mail!
|