Die internen Kommandos (builtins) der bash sind in jeder Installation ohne weiteres Dazutun verfügbar. Es sind die wichtigsten und meistbenutzten Kommandos der Shell, die jeder Nutzer kennen sollte.
1 | Einführung |
---|---|
2 | Der bash Prompt |
3 | key bindings |
4 | Der Startvorgang |
5 | Environment Variablen |
6 | builtin commands |
7 | Arbeiten mit Dateien |
8 | nano |
9 | bash Scripting |
10 | Variablen |
11 | Verzweigungen (if) |
12 | Schleifen |
13 | Kommandozeilenparameter |
14 | exit Codes bash Tutorial Teil 14 |
15 | von der Idee zum Script |
16 | grep |
17 | Piping und Redirection |
18 | tee |
interne Kommandos
Der allergrößte Vorteil der builtins liegt in erster Linie darin, dass du sie in jeder bash Installation findest. Für sie muss kein PATH konfiguriert werden. Dadurch ist es unproblematisch, sie in deiner .bashrc zu verwenden. Ein weiterer Vorteil ist, dass sie nicht vom Datenträger nachgeladen werden müssen. Das war allerdings früher, als Festplatten oder gar Disketten noch sehr viel langsamer waren als moderne Datenträger, viel wichtiger.
Um eine Liste aller builtins in der Shell zu erstellen, kannst du dieses interne Kommando benutzen
compgen -b
Bei fast allen Kommandos kannst du mit dem Parameter --help
Informationen zur Benutzung ausgeben lassen und auch die möglichen Parameter werden dir angezeigt.
pwd
pwd steht für „print work directory“ und tut genau das, was der Name sagt, es gibt dir den Namen mit Pfad des aktuellen Verzeichnisses aus. Nach dem Login auf dem Raspberry Pi ist dies in der Regel dein home Verzeichnis.
cd
cd („change directory“) wechselt das aktuelle Verzeichnis.
mkdir
mkdir
ist eine Kurzschreibweise für „make dir“, also: Lege neues Verzeichnis an.
echo
echo gibt den übergebenen String auf der Console aus. Im String können Variablen eingebettet sein. Beispielsweise macht echo "${PWD}"
das gleiche wie pwd
.
Vor allem in Skripts ist echo
wichtig, um Daten auszugeben und Werte aus Funktionen zurückzugeben.
ls
ls
steht kurz für list und listet alle Dateien im aktuellen Verzeichnis auf. ls besitzt eine Vielzahl von Parametern, die ich selbst nicht alle auswendig kann. ls ist eigentlich kein eingebautes Kommando, ich halte es aber für so wichtig, dass ich es hier mit aufnehme.
ls
ls listet alle Dateien im aktuellen Verzeichnis auf. Nun ja, nicht alle, denn die sogenannten versteckten Dateien, also alle, die mit einem Punkt beginnen, werden ausgelassen. Diese kannst du mit dem Parameter -a
anzeigen lassen, a wie all.
In den meisten Fällen interessiert mich bei den Dateien entweder das Dateidatum oder deren Größe. Mit dem Parameter -l
kannst du dir die detaillierten Informationen auflisten lassen, also ein long listing
Der Screenshot zeigt, dass du die Parameter ls -a -l
zu ls -a
l zusammenziehen kannst.
alias
Mit alias kannst du einen neuen Befehl definieren, der ein bekanntes Kommando unter einem anderen Namen aufruft. Damit kannst du lange Kommandonamen abkürzen oder auch ständig benutzte Parameter automatisch mitgeben lassen. Wenn du, wie ich immer alle Dateien im langen Listing von ls angezeigt bekommen möchtest, kannst du dir dies auf ein alias legen:
alias ll='ls -al'
In der Standard .bashrc sind üblicherweise schon mehrere Aliase für ls definiert, allerdings auskommentiert.
# some more ls aliases
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
Ein alias besteht immer nur innerhalb einer Session. Nach dem Logout ist er wieder weg. Mit unalias
kannst du einen alias wieder aufheben.
cat
cat steht für catalogue und gibt den Inhalt einer Datei auf der Console aus. Bei Binärdateien kommt da ein ziemlicher Datenmüll zusammen, der uU. Das Terminal zerschießen kann. cat
läuft immer bis zum Dateiende durch, daher benutze ich es häufig mit einem Pager wie less
. Aber dazu erzähle ich dir später mehr. Interessant ist hier der Parameter -n
, der die Zeilennummern anzeigt.
Auch cat ist so wichtig, dass ich hier mit aufnehme.
source
source führt ein Kommando oder Skript in der aktuellen Login -shell aus. Es lässt sich auch mit .
abkürzen.
Ich schreibe mir ein kleines Testskript:
export VAR1="Wert"
alias dir='ls -la'
Hier wird nur eine globale Variable definiert (global, da sie nach Ende des Skripts erhalten bleibt) und ein alias
dir für ls
angelegt. Was vor allem DOS Umsteiger früher häufig gemacht haben.
Tipp: Wenn du Änderungen an deiner .bashrc
machst, kannst du diese mit source .bashrc
in der laufenden Session wirksam werden lassen ohne dich aus- und wieder einzuloggen.
Nächstes Mal arbeiten wir dann mit Dateien.