bash intro


Jetzt haben wir ja schon einige Programme kennengelernt. Das mit dem du bis jetzt am öftesten gearbeitet hast haben wir aber noch nicht besprochen. Die "bash". Die bash ist eine Shell. Das Programm, dass die Befehle, die du eingibst liest und dann ausführt.

Neben der bash gibt es noch viele andere "shell"-Programme. Doch bash ist der Standard auf Linux und auch auf anderen Unixen sehr beliebt.

bash steht für "bourne again shell" und ist eine Weiterentwicklung der alten "bourne shell (bsh)" (benannt nach dem Herrn "Bourne")

Die bash bearbeitet also die Eingaben auf der Befehlszeile und gibt dir einen Prompt (Eingabeaufforderung) aus. Weiters hat sie auch einfache Editierfunktionen. Wir kennen die meisten Tastenkürzel schon von jed/emacs:

^ steht hier für die control Taste:
ESC steht für die ESC Taste (meta)

^a ..... Anfang der Zeile
^e ..... Ende der Zeile
^k ..... Alles löschen bis zum Ende der Zeile
^p ..... previous. Eine Zeile zurückblättern
^n ..... nächste Zeile
ESC b .. back. Voriges Wort.
ESC f .. forward. Nächstes Wort.
^r ..... reverse-incremental-search
nach dem ^r kannst du Zeichen eingeben und er sucht dir in den vorherigen Befehlen (die sogenannte "history") den Befehl raus, wo die Zeichen drinnen sind. Wenn du fertig bist, tippst einfach return um den Befehl auszuführen.

TAB .... Tabulator zum Vervollständigen von Dateinamen.

Die TAB-Taste ist besonders nützlich. Sie vervollständigt angefangene Pfade oder Dateinamen. Wenn du an einer Stelle bist an der du ein Kommando eingeben darfst, so vervollständigt sie anhand der List aller ausführbaren Befehle.

Für oft benutzte Befehle kann man sich in der bash sog. aliase setzten.

alias

"alias" alleine zeigt dir die gesetzten aliase an:

alias bla='ls -l'

definiert dir den Befehl bla, der ls -l macht.

Die so definierten aliase gelten aber nur für die momentane Shell. Will man sie permanent haben, so muss man sie in eines der Files schreiben, die die bash beim Starten liest. Das besprechen wir später.

Wenn du mehrere Befehle oft ausführen willst, dann kannst du sie in einem sogenanten Shellscript zusammenfassen. Shellscripts sind sehr leistungsfähig, aber hier wollen wir nur mal ganz einfache Sachen damit machen:

du legst dir z.b. mit

joe hallo.sh (oder einem anderen Editor deiner Wahl)

ein File an und schreibst folgenden Inhalt hinein:

#!/bin/bash
fortune
sleep 2
echo hallo welt
sleep 2
echo das wars für heute

dann speicherst das File ab und machst folgenden Befehl:

chmod ugo+rx hallo.sh

(Dieser Befehl sagt, dass hallo.sh für alle (user group others) lesbar (r) und ausführbar (x) sein soll, aber darüber lernen wir später mehr). Ausführbar heißt, dass es eine Art eigener Befehl ist. Du kannst diesen Befehl nun anstarten mit:

./hallo.sh

Die erste Zeile des Script: #!/bin/bash sagt, dass es ein bash-Script ist. Dort könnte auch etwas anderes stehen, dann könnte man eine andere Sprache zum Scriptschreiben verwenden..

Und die restlichen Befehle im Script kennst du ja schon..

Später machen wir dann mal sinnvollere Scripts.. aber das Prinzip haben wir ja mal...


EXERCISES:

* Mach dich mit den Editierfunktionen der Shell vertraut (besonders reverse incremntal search und TAB Vervollständigung)

* Sieh dir an, welche Aliase auf deiner Shell definiert sind.

* Versuch ein ähnliches kurzes Script wie oben gezeigt zu schreiben. (das chmod ugo+rx nicht vergessen)

REFERENCES:

man bash
help
(help in der bash gibt dir hilfe zur bash)