Die .bashrc

Die .bashrc

Die datei .bashrc liegt im Homeverzeichnis des jeweiligen Benutzers und beinhaltet Einstellungen die die bash übernimmt, wenn sie vom jeweiligen benutzer gestartet wird (z.B. beim Login wenn es die Login-Shell ist). Die Einstellungen sind hierbei größtenteils Variablen die das Aussehen und das Verhalten der bash beeinflussen, wie zum Beispiel das Erscheinungsbild des Promptes oder die Größe der History.

Hier werden nicht alle Optionen bzw. Möglichkeiten der .bashrc behandelt, sondern nur die geläufigsten und meiner Meinung nach wichtigsten.

Man öffnet die .bashrc mit einem beliebigen Editor (emacs, vi, joe […])

 emacs ~/.bashrc 

Bei vielen Distributionen gibt es hier vorgefertigte Dateien, die sich aber sehr leicht anpassen und ändern lassen.


Aliase

Aliase sind wie der Name schon sagt prinzipiell andere bezeichnungen für bereits existierende Programmnamen, mit der möglichkeit diesen Programm-namen auch Variablen zu übergeben.

Ein paar Beispiele zu Aliasen:

alias ls='ls --color=auto'
alias mplayer='mplayer -fs -ao esd'
alias grep='grep -i' alias
WER_IST_DER_GROESSTE='echo $USERNAME' 

Diese zeilen bewirken dass von nun an der Befehl “ls” ohne Angabe von Parametern immer eine farbige Ausgabe liefert, mplayer ohne Angabe von Parametern den eSound-server benutzt und im Fullscreen-modus startet, grep automatisch keinen Unterschied mehr zwischen Groß- und Kleinschreibung macht, und die Shell auf eingabe von “WER_IST_DER_GROESSTE” mit dem jeweiligen Benutzernamen antwortet.


Den Prompt anpassen

d - Das Aktuelle Datum
h - Hostname (z.B. "host1.localnet" )
H - Hostname bis zum ersten Punkt (z.B. "host1" )
s - Name der Shell (in den meisten Fällen einfach "bash")
t - Uhrzeit im 24-Stunden-Format
T - Uhrzeit im 12-Stunden-Format
u - Username des Aktuellen Benutzers ( z.B. "root")
v - Version der Shell
V - Version der Shell inklusive Patchlevel
w - Aktuelles Verzeichnis (z.B. "/etc/init.d" )
W - Aktuelles Verzeichnis in relativer Form (z.B. "init.d")
! - Aktuelle Zeile in der History 

Mithilfe dieser Variablen lässt sich nun der Prompt relativ informativ gestalten, man sollte allerdings darauf achten dass er nich zu “überladen” wird.

Hier einige Beispiele:

PS1="u@h W> "

Daraus ergibt sich folgender Prompt: 1

PS1="! u@h W> "

Daraus ergibt sich folgender Prompt: 2

PS1="T u@h> "

Daraus ergibt sich Folgender Prompt: 3


Farbige Prompts:

Die Farbcodes werde ich hier nicht weiter aufschlüsseln. Stattdessen verweise ich auf diesen Link, wo die Farbcodes recht übersichtlich und anschaulich verdeutlicht sind.

Ein Beispiel:

  PS1="[33[01;32m]u@h[33[01;34m] w >[33[00m] "

Daraus ergibt sich folgender Prompt: 4


Andere Optionen

Die Variable “HISTCONTROL” beeinflusst unter welchen Umständen welche einträge, wie in die History aufgenommen werden.

 HISTCONTROL="ignoredups"

Nimmt einträge die schon in der History existieren nicht nocheinmal mit auf.

HISTCONTROL="erasedups"

Löscht alle gleichen einträge in der History außer den neuesten.

HISTCONTROL="ignorespace"

Nimmt befehle denen ein Leerzeichen voraus geht nicht in die History auf

HISTCONTROL="ignoreboth"

Kombiniert “ignoredups” und “ignorespace”Die Werte von HISTCONTROL lassen sich durch Doppelpunkte separiert kombinieren.

Die Variable “HISTFILE” setzt die Datei in der die History gespeichert werden soll. Hiermit könnte man z.B. eine Systemweite History-Datei anlegen (was aber nicht zu empfehlen ist.) Der Standardwert ist “~/.bash_history”

HISTFILE="~/.bash_history"

Die Variable “HISTSIZE” setzt einen Höchst-wert für die Anzahl der Zeilen die History-Datei beinhalten kann.

HISTSIZE="500"

Die Variable “HISTIGNORE” setzt befehle die nicht in die History übernommen werden sollen, wieder per Doppelpunkt separiert.
Hier ein Beispiel das alle Befehle die mit “a” und “c” beginnen nicht in die History übernimmt.

HISTIGNORE="a*:b*"

Siehe auch: Die Bash, bash-manual