Alias
alias definiert Kurznamen für Befehlsaufrufe. Als Shell-Builtin bei vielen Shells integriert
Beschreibung
Was sind Aliase?
- Zur Abkürzung immer wiederkehrender Kommandofolgen lassen sich für diese so genannte 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 tippfeher können abgefangen ode 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 mittels 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
The first word of each simple command, if unquoted, is checked to see if it has an alias. If so, that word is replaced by the text of the alias. The alias name and the replacement text may contain any valid shell input, including shell metacharacters, with the exception that the alias name may not contain "=".
The first word of the replacement text is tested for aliases, but a word that is identical to an alias being expanded is not expanded a second time. This means that one may alias ls to ls -F, for instance, and Bash will not try to recursively expand the replacement text.
If the last character of the alias value is a space or tab character, then the next command word following the alias is also checked for alias expansion. Aliases are not expanded when the shell is not interactive, unless the expand_aliases option is set using the shopt shell built-in.
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.
Aliases are expanded when a function definition is read, not when the function is executed, because a function definition is itself a compound command. As a consequence, aliases defined in a function are not available until after that function is executed. To be safe, always put alias definitions on a separate line, and do not use alias in compound commands. Aliases are not inherited by child processes. Bourne shell (sh) does not recognize aliases.
Syntax
$ alias shortName="your custom command here"
Parameter
Optionen
Konfiguration
Dateien
Anwendungen
$ 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' alias md=mkdir alias rd=rmdir alias rename=mv alias cdlin='cd /usr/src/linux'
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 ... md directory rd directory rename nt refuse cdlin; pwd /usr/src/linux
Aliase löschen
- Zum Löschen eines Alias-Eintrags verwendet man den Befehl unalias Name.
- Aliase werden von dem internen Kommando alias erzeugt.
- Um sie dauerhaft zu speichern, müssen sie in eine der Shell-Startdateien eingetragen werden.
- Auf der Kommandozeile definierte Aliase sind nur in der aktuellen Shell bekannt und nicht persistent.
alias dh='df -h' dh Filesystem Size Used Avail Use% Mounted on /dev/hda7 1.3G 272M 1018M 22% / /dev/hda1 121M 9.4M 105M 9% /boot /dev/hda2 13G 8.7G 3.7G 70% /home /dev/hda3 13G 5.3G 7.1G 43% /opt none 243M 0 243M 0% /dev/shm /dev/hda6 3.9G 3.2G 572M 85% /usr /dev/hda5 5.2G 4.3G 725M 86% /var
unalias dh dh bash: dh: command not found
Permanente Aliase
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]
Funktionen sind schneller
- Die Bash sucht nach Funktionen, bevor sie Aliase auflöst
- Aliase sind einfacher zu verstehen, Funktionen sind schneller
Sicherheit
Dokumentation
Man-Pages
Info-Pages
Siehe auch
Links
Projekt-Homepage
Weblinks
Einzelnachweise
Testfragen
Testfrage 1
Testfrage 2
Testfrage 3
Testfrage 4
Testfrage 5