Das alias Kommando bash Tutorial Teil 19

Durch das alias Kommando kannst du dir Tipparbeit sparen und häufig benutze Parameter automatisch an Kommandos anzuhängen.

Dr. Dirk Colbry, Michigan State
Gnu-bash-logoCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
1Einführung
2Der bash Prompt
3key bindings
4Der Startvorgang
5Environment Variablen
6builtin commands
7Arbeiten mit Dateien
8nano
9bash Scripting
10Variablen
11Verzweigungen (if)
12Schleifen
13Kommandozeilenparameter
14exit Codes bash Tutorial Teil 14
15von der Idee zum Script
16grep
17Piping und Redirection
18tee
19alias
20Der Shebang

alias

alias ist ein builtin Kommando der bash. Es verwendet, um komplizierte Kommandoaufrufe zu vereinfachen. In der .bashrc haben wir das schonmal kurz gesehen.

Aliase anzeigen

Zunächst wollen wir uns mal alle bisher definierten Aliase anzeigen lassen.

alias
Liste der bisher definierten aliase
Olli Graf - raspithek.de
list-aliasCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Liste der bisher definierten aliase

Diese aliase werden alle in der .bashrc angelegt. Gerade der ll alias gehört für mich zu am häufigsten benutzten.

Die Ausgabe im Screenshot zeigt auch genau das Kommando, das du benötigst, einen alias anzulegen.

alias ll='ls -l'

Nach dem alias gibst du den Namen des alias ein und weist ihm, wie bei einer Variable, einen Wert zu. Dieser Wert ist ein Kommando mit allen Parametern, das ausgeführt werden soll, wenn du ll am Prompt eintippst.

Wie geht die bash jetzt mit einem alias um?

Wenn du ein Kommando eingibst, prüft sie zunächst, ob dieses in der alias-Liste auftaucht und ersetzt den Text ll gegen den definierten alias Text, das Ergebnis wird dann ausgeführt. Danach durchsucht die bash die internen Kommandos und führt dieses aus, wenn sie dort fündig wird. Ist auch das nicht der Fall, sucht sie in jedem einzelnen Verzeichnis, dass in der ${PATH} Variable hinterlegt ist, ob das Kommando dort im Dateisystem liegt.

Wenn du ll ausführst, wirst du feststellen, dass es identisch zur Eingabe ls -l ist.

Die Ausgaben von ls -l und ll sind identisch
Olli Graf - raspithek.de
ls-llCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Die Ausgaben von ls -l und ll sind identisch

Das ist kein Wunder, da in beiden Fällen das selbe Kommando ausgeführt wird.

aliase in Scripten

Jetzt lass mal sehen, was passiert, wenn wir ll in einem Script aufrufen


ll
Das ll Kommando wurde im Script nicht gefunden.
Olli Graf - raspithek.de
noalias-scriptCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Das ll Kommando wurde im Script nicht gefunden.

Standardmäßig ist die Auflösung von Aliasen in Scripten abgeschaltet. Dies muss explizit erlaubt werden:

shopt -s expand_aliases  # Aktiviert Aliase
alias ll='ls -la'
ll

Das Script kann aber nur die alias-Kommandos ausführen, die es selbst definiert. Dies ist ein Sicherheitsmerkmal, denn sonst könnte jemand der Script verwendet über einen alias beliebige Kommandos umdefinieren und auf eigenen Code umlenken.

Mit shopt wird der definierte alias erlaubt und aufgelöst.
Olli Graf - raspithek.de
yesalias-scriptCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Mit shopt wird der definierte alias erlaubt und aufgelöst.

dauerhafte aliase

Wenn du einen alias am Prompt definierst, ist er nach dem Logout wieder weg. Um ihn dauerhaft zu definieren, musst du ihn in die .bashrc des Users eintragen, damit er bei jedem Login erneut definiert wird. Auf manchen Systemen gibt es dafür auch das .bash_aliases Script das beim Login automatisch von der .bashrc ausgeführt wird.

unalias

Ein alias lässt sich mit unalias auch wieder löschen. Dazu rufst du unalias einfach mit dem Namen des zu löschenden alias auf.

Nach dem unalias ist ll nicht mehr verfügbar.
Olli Graf - raspithek.de
unaliasCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Nach dem unalias ist ll nicht mehr verfügbar.

Kommandoketten

Du kannst auch mehrere Kommandos in einem alias verwenden.

alias sysupdate='sudo apt update && sudo apt dist-upgrade -y'

Damit führst du die beiden Befehle für das Aktualisieren der Paketliste und dem Upgrade neuer Pakete mit nur einem Kommando direkt hintereinander auf.

Definition und Ausführung des sysupdate alias
Olli Graf - raspithek.de
sysupdateCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Definition und Ausführung des sysupdate alias

Alias in einem Alias

Was ich auch noch nie verwendet habe, ist einen alias in einem anderen zu verwenden. Der alias la wird in der .bashrc als ‚ls -A‚ definiert. Ich möchte aber wie bei ll das lange Listing haben. Deshalb definiere ich la wie folgt neu:

unalias la
alias la='ll -a'

Das innerhalb von la auch ll aufgelöst wird, ist leicht zu zeigen.

ll wird innerhalb von la aufgelöst und liefert das ausführliche Listing.
Olli Graf - raspithek.de
alias-in-aliasCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
ll wird innerhalb von la aufgelöst und liefert das ausführliche Listing.

Schreibe einen Kommentar

Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Olli Graf - raspithek.de
WordPress Cookie Hinweis von Real Cookie Banner