(weitergeleitet von Main.BashrcKonfigurieren)

Beschreibung

Die "Bourne again Shell" (bash) ist Teil des GNU-Projekts. Ihr Name ist ein absichtlich zweideutiges Wortspiel und kann sowohl als "wiedergeborene (born again) Shell" als auch als "wieder einmal (eine) Bourne Shell" interpretiert werden. Geschrieben wurde die Bash größtenteils von Brian Fox und Chet Ramey Ende der 80er Jahre.

Die Bash ist voll kompatibel zur originalen Bourne Shell (sh), ist jedoch im Funktionsumfang erheblich erweitert. Vor allem beherrscht sie einen Großteil der Fähigkeiten der ksh, und versteht auch Teile der Syntax der csh, wie zum Beispiel die Command-History, den Directory-Stack, die $RANDOM-Variable und die POSIX-Form der Command-Substitution '$(...)'. Daneben sind auch eine ganze Reihe eigene Erweiterungen implementiert.

Die Bash ist die Standard-Shell (/bin/sh) auf vielen Linux-Systemen und wurde auf fast alle Unix-Systeme portiert. Seit Mac OS X 10.3 ist die Bash auch Standard-Shell des Mac-Betriebssystem. Vor 10.3 war die Tcsh die Standard-Shell.

Was ist bashrc ?

Die "unsichtbare" Datei .bashrc ist die Konfigurationsdatei für die Bash-Shell.

Du solltest zunächst überprüfen ob dein System die Shell "Bash" verwendet, denn es gibt weitaus mehr und verschiedene die man zur Anwendung bringen kann. Ab MAC OS X 10.3 ist jedoch standardmäßig die "Bash" eingestellt und unsere Vorhaben sollte damit realisierbar sein. Dazu sollte man aber überlegen ob man diese systemweit oder nur User-bezogen einrichten möchte. Um eine systemweite Aktivierung zu ermöglichen, bearbeitet man als Root oder Sudo die Datei "/etc/bashrc". Um nur sich selbst diesen Service zu ermöglichen, legt man im User-Home-Verzeichnis eine Datei ".bash_profile" an. Überzeuge Dich aber vorher das nicht bereits eine Datei ".bash_login" oder ".profile" existiert. Diese würden nach Anlegen von ".bash_profile" nicht mehr ausgeführt!

Steuertasten in der Shell

Mit der Cursortaste nach oben kann man die zuletzt eingetippten Befehle erneut aufrufen (history). Mit der Tab-Taste kann man einen angefangenen Befehl oder Pfad komplettieren lassen. In diesem Zusammenhang sind die folgenden Tastaturkürzel besonders interessant.

Wichtige Tastenkombinationen

Ctrl+ACursor zum Anfang der Zeile
Ctrl+ECursor zum Ende der Zeile
Ctrl+TVertauscht die Buchstaben links und rechts vom Cursor (ist der Cursor am Ende der Zeile die letzten beiden Buchstaben).
Ctrl+KSchneidet alles nach dem Cursor ab.
Ctrl+YFügt das zuletzt Ausgeschnittene wieder ein.
Ctrl+LLöscht den Bildschirm (Zeichenbuffer des Terminals).
Ctrl+USchneidet alles vor dem Cursor aus.
Ctrl+WSchneidet das Wort vor dem Cursor.

Bis auf die letzten drei Tastenkürzel funktionieren die Tastaturkurzbefehle übrigens auch in den meisten graphischen Benutzerprogrammen von Mac OS X.

Tipps

Farbe ins Terminal bringen

Es ist nicht schwer die Colors zu aktivieren, dazu sollte man aber überlegen ob man diese systemweit oder nur user-bezogen einrichten möchte. Um eine systemweite Aktivierung zu ermöglichen, bearbeitet man als Super-User (mit sudo oder als root) die Datei "/etc/bashrc". Um nur sich selbst diesen Service zu ermöglichen, legt man im User-Home-Verzeichnis eine Datei ".bash_profile" an.

Eingetragen wird darin nur folgendes:

 export TERM=xterm-color
 export CLICOLOR=true
 export LSCOLORS=FxGxdxhxcxbxexcxcxFxFx               # Rot
 #export LSCOLORS=hxfxcxdxBxegedabagacad              # Grau/Weiss
 #export LSCOLORS=ExGxFxdxCxDxDxBxBxExEx              # Blau

Anschließend startet man den Computer neu oder restartet das Programm Terminal, je nach Gebrauch. Sofortige Wirkung erzielt allerdings die Eingabe von "source /etc/bashrc". Bei Anzeigen des List-Befehls (ls) im Terminal sowie im SUT werden nun farbige Objekte angezeigt. Mit einer # (Raute) können in Dateien wie .bash_profile Kommentare eingefügt werden. Text hinter der Raute bis zum Ende der Zeile wird nicht mehr ausgeführt und nicht beachtet. Dies kann man auch zum Auskommentieren (Deaktivieren) ganzer Zeilen nutzen, wie es oben bei den letzten beiden Zeilen (mit # am Anfang) zu sehen ist.

Anmerkung

Es kann unter bestimmten Umständen zu Darstellungsproblemen im SUT führen wenn man die Colors systemweit aktiviert und eingestellt hat. Worauf das zurückzuführen ist, weiß ich bisher nicht. Nach einer nochmaligen Eingabe eines Befehls ist die Anzeige auf dem Bildschirm aber oftmals wieder normal. Es könnte also sein, dass diese Funktion nicht ganz ausgereift ist und noch Fehler verursacht. Anwendung also wie immer auf eigene Gefahr.

Alias verwenden

Alias-Dateien sind Abkürzungen und eine schöne Sache... Die Formulierung lautet: alias [meine Abkürzung]="[Befehl]"

folgende verwende ich:

 alias .="pwd"
 alias ..="cd ..; pwd"
 alias ...="cd ../..; pwd"

 alias ls="ls -G"
 alias l="ls -Gla"
 alias p="ps xa | grep "
 alias g="grep"

Ändern des Shell-Prompts

Etwas Farbe muss her

Es gibt die Möglichkeit nach dem Aktivieren der Farben in der Bash den langweiligen, grau-weißen Eingabeprompt etwas bunter zu gestalten. Dies kann man ganz einfach mit der Variable PS1 tun. Ein echo dieser Variable zeigt das Standardformat:

 barachiel@bastard:~$ echo $PS1
 \u@\h:\w$

Mit dem Spezialcharakter \e[ kann man nun etwas Farbe in den langweiligen Promptalltag bringen:

 export PS1="\e[1;32m\u\e[0;32m@\h:\e[1;32m\w\e[0;32m$\e[0m "

und schon ist das langweilige weiße Prompt in ein farbig, grünes New-Age Prompt verwandelt. Zur Erklärung: Der Charakter \e[ leitet eine Farbauswahl ein. Die direkt nachfolgende Ziffer gibt die Helligkeit der nachfolgenden Farbe an. 0 steht hierbei für normal, 1 für leuchtend hell und 2 für dunkel. Die mit Semikolon getrennte, nachfolgende Ziffer steht für den Farbcode. 0 bedeutet schwarz, 1 weiß, 31 rot, 32 grün, 33 blau usw. 8 einfach mal ausprobieren). Ein m schließt die Farbauswahl ab. Mit \e[0m stellt man die Farbe wieder zurück auf den Terminalstandard.

Hier ein Ausprobierskript:

 
#!/bin/bash
i=0           
while [ $i -le 110 ]; do    
       echo -e "$i \e[${i}mtest\e[0m" 
       i=$[$i+1]    
done
 

Doch Achtung

Bei \e[ handelt es sich um ein Escapezeichen, das zwar nicht angezeigt wird, jedoch sehr wohl als Charakter bei der Linienlängenberechnung zählt. Eine farbige Zeile bricht dann nicht mehr richtig am Ende des Fensters um und macht keinen Spaß. Um dem entgegenzuwirken, muss man jegliche Farbauszeichnungen mit \[ und \] einrahmen: \[\e[1;31m\]Farbig\[\e[0m\]. In den nachfolgenden Beispielen wird dies zwar berücksichtigt, trotzdem sollte man sich dies im Hinterkopf behalten.

Nun haben wir also ein farbiges Prompt. Doch es geht noch weiter: Mit der Variable PROMPT_COMMAND können wir ein Kommando festlegen das bei jeder Promptanzeige ausgeführt wird. Dies erlaubt uns, unser Prompt dynamisch aufzubauen:

  PROMPT_COMMAND='PS1="\[\e[1;32m\]\u\[\e[0;32m\]@\h:\[\e[1;32m\]\w\[\e[0;32m\]\ 

  \`if [ $? -ne 0 ]; then echo -n \"\[\e[1;31m\]:(\"; else echo -n \"\[\e[1;32m\]\ 

  :)\"; fi\`\[\e[0;31m\]\$ \[\e[0m\]"' @@

Dies erstellt uns nun bei jedem Prompt neben dem schön, grünen Prompt ein grünes Smilie hinter der Pfadanzeige, falls der letzte Command den Rückgabewert 0 zurückgibt - also alles glattging. Sollte dies nicht so sein, wird stattdessen ein rotes, trauriges Smilie angezeigt.

Viel Spaß nun mit euren eigenen, farbigen Prompts :).

Verweise

Kategorien
MacGyver, Terminal, Tutorials

Zuletzt geändert am 27.01.2015 20:39 Uhr von Schnaks ( Besuche)

© 2004 – 2024 ApfelWiki

Impressum - Datenschutz

cb