Die Bash

Die Bash (Bourne-Again Shell) ist die wohl meistgenutzte Shell in der Linuxwelt.

Sie zeichnet sich durch ihre intuitive Benutzbarkeit, Auto-Completion und sh-kompatibilität aus.
Normalerweise ist die Bash die Login-Shell. Sollte das nicht so sein kann sie über

/bin/bash

aufgerufen werden.


Autocompletion

Die Autocompletion ist eine sehr nützliche Funktion der bash. Sie wird durch einen Druck auf die Tabulator-Taste ausgeführt.
Beispiel:

/sbin/ifco

wird durch drücken der Tabulator-Taste zu

/sbin/ifconfig

Wenn man keinen absoluten Pfad angibt werden zur Autocompletion die Programme die in PATH und im aktuellen Verzeichnis stehen angezeigt.
Wenn das Ergebnis eindeutig ist wird direkt kompletiert, ansonsten werden die verschiedenen Möglichkeiten ausgegeben.

Beispiel:

user@host:> b

gibt nach eingabe der Tabulator-Taste aus:

basename bash bashbug bashcom-config bb bc [...]

Umgebungsvariablen

Umgebungsvariablen enthalten Informationen wie zum Beispiel das aktuelle Verzeichnis, das Home-Verzeichnis etc. Einzelne Umgebungsvariablen können per

echo $VARIABLE 

ausgegeben werden, also zum Beispiel per

echo $HOME  

um das HOME-Verzeichnis auszugeben. Man kann die Verschiedenen Variablen ändern indem man einfach den Variablennamen gefolgt vom neuen Wert eingibt.

Beispiel:

PATH=$PATH:/home/benutzer/bin 

würde die Variable PATH um den Wert :/home/benutzer/bin erweitern.

Man kann sich die Umgebungsvariablen mit dem Befehl

env

ausgeben lassen. Außerdem lassen sich die Variablen über den befehl

export

anpassen. Man kann für Skripte usw. auch normale Variablen setzen. Diese sind prinzipiell frei wählbar und werden genau wie normale Variablen gesetzt.

Sollte eine zu setzende Variable noch nicht existieren wird diese durch die Zuordnung selbst erzeugt.

Beispiel:

VORNAME=JOHN
NACHNAME=WAYNE
echo $VORNAME $NACHNAME

gibt dann "JOHN WAYNE" aus. Variablen sind vor allem für Skripte nützlich. Dazu später mehr.


Nützliche Tastenkombinationen

Die bash beinhaltet vordefinierte Tastenkombinationen die einem die arbeit mit dem System erleichtern können. Hier eine einführende (unvollständige) Liste:

Steuerung-A Bringt den Cursor an den Anfang des Shell-Prompts
Steuerung-E Bringt den Cursor an das Ende des Shell-Prompts
Steuerung-K Löscht alle Zeichen von der Position des Cursors bis zum Ende der Zeile
Steuerung-W Löscht die Zeichenkette vor dem Cursor bis zum nächsten Trennzeichen (z.B. Leerzeichen)
Steuerung-R Sucht in der History nach der Eingabe
Steuerung-Z Bringt ein ausgeführtes Programm in den Hintergrund (Zurück in den Vordergrund holen per "fg"
Steuerung-D Logout

Konfiguration

Die Bash wird über die Konfigurationsdatei .bashrc konfiguriert. Siehe .bashrc

Hier lassen sich nützliche Dinge wie aliase, das aussehen des Prompts etc. einstellen.


Die History

Die bash beinhaltet eine sogenannte History. Das bedeutet dass sämtliche eingetippten Befehle in einer Datei gespeichter werden. So kann man durch die "Pfeiltasten" nach oben und nach unten durch die History "Browsen" um Befehle die man bereits eingegeben hat nicht nochmal tippen zu müssen. Diese History lässt sich auch durch Steuerung-R durchsuchen und wird in der Datei .bash_history im Home-Verzeichnis des jeweiligen benutzers gespeichert. Welche Befehle in der History gespeichert werden und welche nicht, ob doppelte einträge vorkommen dürfen etc. lässt sich über die Konfigurations-Datei der bash einstellen.

Mir fällt jetzt erstmal nix mehr zum Thema bash ein was nicht unter "Skripten" fallen würde, deswegen verbleibe ich hier erstmal mit einem:

To Be Continued...

2 thoughts on “Die Bash”

  1. Ich möchte zur Autocompletion noch folgendes hinzufügen, was ich persönlich als sehr nützlich empfinde.

    Gibt man an der Bash den Befehl “. /etc/bash_completion” ein, ermöglicht dies, dass man auch Optionen von Programmen automatisch vervollständigen kann. Da ich nur Debian und dessen Derivate einsetze, weiß ich leider nicht ob das bei jeder Distri möglich ist.

Leave a Reply to Jasa Cancel reply

Your email address will not be published. Required fields are marked *