Alias: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(21 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
''' | '''alias''' - Kurznamen für Befehlsaufrufe | ||
== Beschreibung == | == Beschreibung == | ||
* Die Arbeit in der Befehlszeile ist schnell und bequem | |||
* Der Nachteil ist, dass Sie sich alle Befehle merken müssen und einige von ihnen lang sind und Ihre Produktivität beeinträchtigen können | |||
* Glücklicherweise können wir Verknüpfungen zu Befehlen erstellen, die die Arbeit erheblich beschleunigen können | |||
; Wiederkehrender Kommandofolgen | |||
* Ein Alias erlaubt es, ein ''Wort'' durch ein ''einfaches Kommando'' vor der Ausführung der Kommandozeile ersetzen zu lassen. | * 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. | * 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. | * Auch Tippfehler können abgefangen oder korrigiert werden. | ||
* alias weist einem Befehl oder einer Befehlsfolge einen neuen Namen zu. | * alias weist einem Befehl oder einer Befehlsfolge einen neuen Namen zu. | ||
* Beispiele für Windows-Umsteiger | * 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. | * 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 | ; Ein Alias existiert bis zum Ende der Shell | ||
Zeile 54: | Zeile 21: | ||
cdlin | cdlin | ||
bash: cdlin: command not found | bash: cdlin: command not found | ||
# ein Alias ist nur in der Shell seiner Definition bekannt: | # ein Alias ist nur in der Shell seiner Definition bekannt: | ||
'''bash''' | '''bash''' | ||
Zeile 60: | Zeile 27: | ||
bash: md: command not found | 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. | 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. | * 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. | * 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 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. | * 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. | 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. | * 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. | 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. | * 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. | 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. | * 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. | * 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. | 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. | * 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. | * 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. | * Aliase werden nicht an Kindprozesse vererbt. | ||
* Die Bourne-Shell (sh) erkennt keine Aliasnamen. | * Die Bourne-Shell (sh) erkennt keine Aliasnamen. | ||
Zeile 87: | Zeile 54: | ||
* Aliase sind einfacher zu verstehen, Funktionen sind schneller | * Aliase sind einfacher zu verstehen, Funktionen sind schneller | ||
== Aufruf == | |||
<syntaxhighlight lang="bash" highlight="1" line> | |||
alias shortName="your custom command here" | |||
</syntaxhighlight> | |||
=== Optionen === | |||
=== Parameter === | |||
=== Umgebungsvariablen === | |||
=== Exit-Status === | |||
== Anwendung == | == Anwendung == | ||
[[File:aliases.jpg|mini|400px]] | |||
$ alias wr=”cd /var/www/html” | $ alias wr=”cd /var/www/html” | ||
Sie können dann die Verknüpfung "wr" verwenden, um zum Webroot-Verzeichnis zu gelangen. | 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. | * 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 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. | * Wenn Sie Ihre Aliase sitzungsübergreifend speichern möchten, benötigen Sie einen permanenten Alias. | ||
Zeile 103: | Zeile 80: | ||
alias PAGER='less -r' | alias PAGER='less -r' | ||
alias Txterm='export TERM=xterm' | alias Txterm='export TERM=xterm' | ||
alias XARGS='xargs -r' | alias XARGS='xargs -r' | ||
... | ... | ||
Zeile 113: | Zeile 90: | ||
$ dir / | $ dir / | ||
insgesamt 65 | insgesamt 65 | ||
drwxr-xr-x | drwxr-xr-x 2 root root 2048 Dec 14 13:23 bin | ||
drwxr-xr-x | drwxr-xr-x 3 root root 1024 Dec 21 10:59 boot | ||
drwxr-xr-x | drwxr-xr-x 2 root root 1024 Dec 14 13:05 cdrom | ||
drwxr-xr-x | drwxr-xr-x 6 root root 30720 Dec 29 08:50 dev | ||
... | ... | ||
Zeile 122: | Zeile 99: | ||
Um Aliase zwischen Sitzungen beizubehalten, können Sie sie in der Shell-Konfigurationsprofildatei Ihres Benutzers 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. | 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. | * 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: | * So können Sie beispielsweise in bash die .bashrc-Datei mit Ihrem bevorzugten Editor wie folgt öffnen: | ||
$ vim ~/.bashrc | $ vim ~/.bashrc | ||
Suchen Sie einen Ort in der Datei, an dem Sie die Aliase behalten möchten. | 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. | * Sie können sie beispielsweise am Ende der Datei hinzufügen. | ||
* Für Organisationszwecke können Sie vor Ihren Aliasnamen einen Kommentar hinterlassen: | * Für Organisationszwecke können Sie vor Ihren Aliasnamen einen Kommentar hinterlassen: | ||
#My custom aliases | #My custom aliases | ||
Zeile 134: | Zeile 111: | ||
alias ll="ls -alF" | alias ll="ls -alF" | ||
Speicher die Datei. | Speicher die Datei. | ||
* Die Datei wird in Ihrer nächsten Sitzung automatisch geladen. | * 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: | * Wenn Sie den neu definierten Alias in der aktuellen Sitzung verwenden möchten, geben Sie den folgenden Befehl ein: | ||
Zeile 144: | Zeile 121: | ||
$ unalias -a [remove all alias]<br /> | $ unalias -a [remove all alias]<br /> | ||
== | == Konfiguration == | ||
=== Dateien === | |||
<noinclude> | |||
== Anhang == | |||
=== Siehe auch === | |||
* [[unalias]] | |||
* [[.bash_aliases]] | |||
=== | ==== Dokumentation ==== | ||
=== | ==== Links ==== | ||
===== Weblinks ===== | |||
{{DEFAULTSORT:alias}} | |||
{{DISPLAYTITLE:alias}} | |||
[[Kategorie:Linux/Befehl]] | |||
[[Kategorie:Bash/Builtin]] | |||
</noinclude> | |||
Aktuelle Version vom 22. November 2024, 13:16 Uhr
alias - Kurznamen für Befehlsaufrufe
Beschreibung
- Die Arbeit in der Befehlszeile ist schnell und bequem
- Der Nachteil ist, dass Sie sich alle Befehle merken müssen und einige von ihnen lang sind und Ihre Produktivität beeinträchtigen können
- Glücklicherweise können wir Verknüpfungen zu Befehlen erstellen, die die Arbeit erheblich beschleunigen können
- Wiederkehrender Kommandofolgen
- 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
Aufruf
alias shortName="your custom command here"
Optionen
Parameter
Umgebungsvariablen
Exit-Status
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]
Konfiguration
Dateien
Anhang
Siehe auch
Dokumentation
Links
Weblinks