|
|
Zeile 39: |
Zeile 39: |
|
| |
|
| = TMP = | | = TMP = |
| == Beschreibung ==
| |
| Zur Abkürzung immer wiederkehrender Kommandofolgen lassen sich für diese Aliasse definieren.
| |
| * Ein Alias erlaubt es, ein ''Wort'' durch ein ''einfaches Kommando'' vor der Ausführung der Kommandozeile ersetzen zu lassen.
| |
| * Aliase sind nützlich, um festzulegen, welche Version eines Befehls ausgeführt werden soll oder um Optionen für die Ausführung von Befehlen festzulegen.
| |
| * Auch Tippfehler können abgefangen oder korrigiert werden.
| |
| * alias weist einem Befehl oder einer Befehlsfolge einen neuen Namen zu.
| |
| * Beispiele für Windows-Umsteiger
| |
| * Die Shell unterhält eine Liste von Aliasen, die mit den internen Befehlen alias und [[unalias]] gesetzt und gelöscht werden können.
| |
|
| |
| ; Ein Alias existiert bis zum Ende der Shell
| |
| * in der er definiert wurde oder
| |
| * bis zum expliziten Löschen mit unalias
| |
| unalias dir
| |
| unalias cdlin
| |
| cdlin
| |
| bash: cdlin: command not found
| |
|
| |
| # ein Alias ist nur in der Shell seiner Definition bekannt:
| |
| '''bash'''
| |
| md tmp
| |
| bash: md: command not found
| |
|
| |
| Das erste Wort jedes einfachen Befehls, sofern es nicht in Anführungszeichen steht, wird daraufhin überprüft, ob es einen Alias hat.
| |
| * Wenn ja, wird dieses Wort durch den Text des Alias ersetzt.
| |
| * Der Alias-Name und der Ersetzungstext können alle gültigen Shell-Eingaben enthalten, einschließlich Shell-Metazeichen, mit der Ausnahme, dass der Alias-Name kein "=" enthalten darf.
| |
|
| |
| Das erste Wort des Ersetzungstextes wird auf Aliasnamen geprüft, aber ein Wort, das mit einem Aliasnamen identisch ist, der gerade expandiert wird, wird nicht ein zweites Mal expandiert.
| |
| * Das bedeutet, dass man z. B. den Alias ls in ls -F umwandeln kann und die Bash nicht versuchen wird, den Ersatztext rekursiv zu expandieren.
| |
|
| |
| Wenn das letzte Zeichen des Alias-Wertes ein Leer- oder Tabulatorzeichen ist, wird das nächste Befehlswort, das auf den Alias folgt, ebenfalls auf Alias-Expansion geprüft.
| |
| * Aliase werden nicht expandiert, wenn die Shell nicht interaktiv ist, es sei denn, die Option expand_aliases wurde mit der eingebauten Shell shopt gesetzt.
| |
|
| |
| Die Bash liest die gesamte Zeile, bevor ein Befehl aus der Zeile ausgeführt wird.
| |
| * Aliase werden expandiert, wenn der Befehl gelesen, nicht, wenn er ausgeführt wird.
| |
|
| |
| Deshalb greifen Aliase, die in der gleichen Zeile definiert werden, erst in der nächsten Befehlszeile.
| |
| * Ein auf die Alias-Definition folgender Befehl wird von der Alias-Definition nicht beeinflusst.
| |
| * Dieses Verhalten spielt auch eine Rolle bei der Ausführung von Funktionen.
| |
|
| |
| Aliase werden erweitert, wenn eine Funktionsdefinition gelesen wird, nicht wenn die Funktion ausgeführt wird, da eine Funktionsdefinition selbst ein zusammengesetzter Befehl ist.
| |
| * Dies hat zur Folge, dass in einer Funktion definierte Aliase erst nach der Ausführung der Funktion verfügbar sind.
| |
| * Um sicher zu gehen, sollten Sie Alias-Definitionen immer in eine eigene Zeile schreiben und Alias nicht in zusammengesetzten Befehlen verwenden.
| |
| * Aliase werden nicht an Kindprozesse vererbt.
| |
| * Die Bourne-Shell (sh) erkennt keine Aliasnamen.
| |
|
| |
| ; Funktionen sind schneller
| |
| * Die Bash sucht nach Funktionen, bevor sie Aliase auflöst
| |
| * Aliase sind einfacher zu verstehen, Funktionen sind schneller
| |
|
| |
| == Anwendung == | | == Anwendung == |
| $ alias wr=”cd /var/www/html” | | $ alias wr=”cd /var/www/html” |
alias - Kurznamen für Befehlsaufrufe
Beschreibung
Installation
Aufruf
alias shortName="your custom command here"
Optionen
Parameter
Umgebungsvariablen
Exit-Status
Anwendung
Problembehebung
Konfiguration
Dateien
Anhang
Siehe auch
Dokumentation
Links
Projekt
Weblinks
TMP
Anwendung
$ alias wr=”cd /var/www/html”
Sie können dann die Verknüpfung "wr" verwenden, um zum Webroot-Verzeichnis zu gelangen.
- Das Problem mit diesem Alias ist, dass er nur für Ihre aktuelle Terminalsitzung verfügbar ist.
Wenn Sie eine neue Terminalsitzung öffnen, ist der Alias nicht mehr verfügbar.
- Wenn Sie Ihre Aliase sitzungsübergreifend speichern möchten, benötigen Sie einen permanenten Alias.
Aliase auflisten
$ alias
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias PAGER='less -r'
alias Txterm='export TERM=xterm'
alias XARGS='xargs -r'
...
Alias erzeugen
alias dir='ls -l'
Aliase verwenden
Aliase können genutzt werden, wie jedes andere Kommando.
$ dir /
insgesamt 65
drwxr-xr-x 2 root root 2048 Dec 14 13:23 bin
drwxr-xr-x 3 root root 1024 Dec 21 10:59 boot
drwxr-xr-x 2 root root 1024 Dec 14 13:05 cdrom
drwxr-xr-x 6 root root 30720 Dec 29 08:50 dev
...
Aliase speichern
Um Aliase zwischen Sitzungen beizubehalten, können Sie sie in der Shell-Konfigurationsprofildatei Ihres Benutzers speichern.
Die Syntax, die Sie verwenden sollten, entspricht praktisch der Erstellung eines temporären Alias.
- Der einzige Unterschied besteht darin, dass Sie es diesmal in einer Datei speichern.
- So können Sie beispielsweise in bash die .bashrc-Datei mit Ihrem bevorzugten Editor wie folgt öffnen:
$ vim ~/.bashrc
Suchen Sie einen Ort in der Datei, an dem Sie die Aliase behalten möchten.
- Sie können sie beispielsweise am Ende der Datei hinzufügen.
- Für Organisationszwecke können Sie vor Ihren Aliasnamen einen Kommentar hinterlassen:
#My custom aliases
alias home=”ssh -i ~/.ssh/mykep.pem tecmint@192.168.0.100”
alias ll="ls -alF"
Speicher die Datei.
- Die Datei wird in Ihrer nächsten Sitzung automatisch geladen.
- Wenn Sie den neu definierten Alias in der aktuellen Sitzung verwenden möchten, geben Sie den folgenden Befehl ein:
$ source ~/.bashrc
Das Entfernen eines über die Befehlszeile hinzugefügten Alias kann mit dem Befehl unalias aufgehoben werden.
$ unalias alias_name
$ unalias -a [remove all alias]