Alias: Unterschied zwischen den Versionen

Aus Foxwiki
K Dirkwagner verschob die Seite Linux:Shell:Bash:Builtin:alias nach Bash:Builtin:alias, ohne dabei eine Weiterleitung anzulegen: Textersetzung - „Linux:Shell:“ durch „“
K Textersetzung - „Bash/Builtins“ durch „Bash/Builtin“
Markierung: Manuelle Zurücksetzung
 
(67 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''alias''' definiert Kurznamen (Aliase) für Befehlsaufrufe.
{{DISPLAYTITLE:alias}}
'''alias''' definiert Kurznamen für Befehlsaufrufe


= Beschreibung =
== Beschreibung ==
Alias ist als Shell-Builtin bei vielen Shells integriert, unter anderem bei der Bash.
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.  


=Übersicht=
; 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


$ alias
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.


=Optionen=
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.
Sie können eine Liste der definierten Aliase in Ihrem Profil anzeigen, indem Sie einfach den Befehl alias ausführen.
* 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.  


'''$ alias'''
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.
alias ll='ls -alF'
* Aliase werden nicht expandiert, wenn die Shell nicht interaktiv ist, es sei denn, die Option expand_aliases wurde mit der eingebauten Shell shopt gesetzt.


Wie Sie sehen können, ausführen.
Die Bash liest die gesamte Zeile, bevor ein Befehl aus der Zeile ausgeführt wird.  
$ ll
* Aliase werden expandiert, wenn der Befehl gelesen, nicht, wenn er ausgeführt wird.


Ist gleichbedeutend mit Laufen:
Deshalb greifen Aliase, die in der gleichen Zeile definiert werden, erst in der nächsten Befehlszeile.
$ ls -alF
* 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.


Sie können einen Alias mit einem einzelnen Zeichen erstellen, der einem Befehl Ihrer Wahl entspricht.
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.


= Anwendungen =
; Funktionen sind schneller
== Temporäre Aliase ==
* Die Bash sucht nach Funktionen, bevor sie Aliase auflöst
Die Syntax lautet wie folgt:
* Aliase sind einfacher zu verstehen, Funktionen sind schneller
$ alias shortName="your custom command here"


Hier ist ein aktuelles Beispiel:
== Anwendung ==
  $ 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. Das Problem mit diesem Alias ist, dass er nur für Ihre aktuelle Terminalsitzung verfügbar ist.
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''''


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 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
...


== Permanente Aliase ==
=== Aliase speichern ===
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. 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:
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
  $ 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:
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
  #My custom aliases
  alias home=”ssh -i ~/.ssh/mykep.pem tecmint@192.168.0.100”
  alias home=”ssh -i ~/.ssh/mykep.pem tecmint@192.168.0.100”
  alias ll="ls -alF"
  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:
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
  $ source ~/.bashrc


Das Entfernen eines über die Befehlszeile hinzugefügten Alias kann mit dem Befehl unalias aufgehoben werden.
Das Entfernen eines über die Befehlszeile hinzugefügten Alias kann mit dem Befehl unalias aufgehoben werden.
  $ unalias alias_name
  $ unalias alias_name
  $ unalias -a [remove all alias]
  $ unalias -a [remove all alias]<br />


= Links =
== Syntax ==
== Siehe auch ==
$ alias shortName="your custom command here"
 
== Extern ==
# https://wiki.ubuntuusers.de/alias/
 
[[Category:Bash:Builtin]]
 
= Aliase =
 
==== 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.
 
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.
 
==== Aliase auflisten (alias) ====
 
Alias ohne Option listet alle Aliase der aktuelle Shell auf:
 
alias
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias PAGER='less -r'
alias Txterm='export TERM=xterm'
alias XARGS='xargs -r'
alias cdrecord='cdrecord -dev 0,0,0 -speed=8'
alias e='vi'
alias egrep='grep -E'
alias ewformat='fdformat -n /dev/fd0u1743; ewfsck'
alias fgrep='grep -F'
alias ftp='ncftp -d15'
alias h='history 10'
alias j='jobs -l'
alias ksane='setterm -reset'
alias ls='ls -F --color=auto'
alias m='less'
alias md='mkdir'
alias od='od -Ax -ta -txC'
alias p='pstree -p'
alias ping='ping -vc1'
alias sb='ssh blubber'
alias sl='ls'
alias ss='ssh octarine'
alias tar='gtar'
alias tmp='cd /tmp'
alias unaliasall='unalias -a'
alias vi='eval `resize`;vi'
alias vt100='export TERM=vt100'
alias which='type'
alias xt='xterm -bg black -fg white &'
 
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
 
==== Alias erzeugen (alias) ====
 
Ein Alias wird mit dem Kommando alias erzeugt:
 
'''alias dir='ls -l'
alias md=mkdir
alias rd=rmdir
alias rename=mv
alias cdlin='cd /usr/src/linux' '''
 
==== Aliase anwenden<span > </span> ====
 
Ein Alias wird genauso benutzt wie das entsprechende 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 (unalias) ====
 
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 akzuellen Shell bekannt und nicht persitent.


alias dh='df -h'
===Parameter===
===Optionen===


dh
==Konfiguration ==
Filesystem            Size  Used Avail Use% Mounted on
===Dateien===
/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
==Sicherheit ==
==Dokumentation ==
===Man-Pages===
===Info-Pages===
=== Siehe auch ===
# [[unalias|Aliase löschen]]


dh
==Links ==
bash: dh: command not found
===Projekt===
===Weblinks===
===Einzelnachweise===
<references />


===== Funktionen sind schneller =====
==Testfragen ==
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>


Als Erstes sucht die Bash nach Funktionen, daher ist die Auflösung von Aliasen langsamer. Obwohl Aliase einfacher zu verstehen sind, werden Funktionen für die meisten Aufgaben vorgezogen.
{{DEFAULTSORT:alias}}




[[Category:Linux:Befehl]]
[[Kategorie:Linux/Befehl]]
[[Category:Bash:Builtin]]
[[Kategorie:Bash/Builtin]]
[[Category:Bash:Interaktiv]]

Aktuelle Version vom 21. September 2024, 23:44 Uhr

alias definiert Kurznamen für Befehlsaufrufe

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

$ 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]

Syntax

$ alias shortName="your custom command here"

Parameter

Optionen

Konfiguration

Dateien

Sicherheit

Dokumentation

Man-Pages

Info-Pages

Siehe auch

  1. Aliase löschen

Links

Projekt

Weblinks

Einzelnachweise


Testfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5