Linux / Befehl alias: Befehlsverknüpfungen erstellen
alias ist ein eingebauter Befehl in Bash, der einem langen Befehl oder häufig verwendeten Optionskombinationen einen kurzen Namen zuweist. Sie können die Aliase prüfen, die in der aktuellen Shell definiert sind, oder neue erstellen, was nützlich ist, um wiederholte Eingaben zu reduzieren und die interaktive Arbeit konsistent zu gestalten.
Aliase sind keine Programme, die Befehle ausführen, sondern ein Mechanismus zum Ersetzen von Zeichenketten, wenn die Shell die Befehlszeile liest. Wenn Sie Argumente verarbeiten müssen oder mehrschrittige Logik erfordern, sind Shell-Funktionen geeigneter als Aliase.
Ergänzende Befehle und Anwendungsfälle finden Sie in Liste der häufig verwendeten Befehle in Linux.
Was ist der Alias-Befehl?
In Bash, wenn das erste Wort eines einfachen Befehls mit einem Aliasnamen übereinstimmt, wird dieses Wort durch die registrierte Zeichenfolge ersetzt und dann der Befehl interpretiert. Zum Beispiel, wenn ll als ls -alF definiert ist, wird ll /var/log wie ls -alF /var/log ausgeführt.
alias selbst ist ein Bash-Builtin-Befehl. Dieser Artikel basiert auf Bash, und andere Shells wie Zsh können unterschiedliche Erweiterungsregeln und Konfigurationsdateien haben.
Grundlegende Syntax
alias [-p] [name[=value]...]
Wenn man ihn ohne Argumente ausführt, werden alle in der aktuellen Shell definierten Aliase angezeigt. Wenn man nur einen Namen angibt, kann man diesen Alias prüfen, und durch die Angabe von name=value kann man einen neuen Alias erstellen oder einen bestehenden Wert ändern.
alias alias ll alias ll='ls -alF'
Überprüfung der aktuellen Aliase
Alle Aliase anzeigen
alias
Die Ausgabe erfolgt im Allgemeinen im Format alias name='value', das erneut eingegeben werden kann. alias -p kann ebenfalls für denselben Zweck verwendet werden.
Ein bestimmtes Alias überprüfen
alias ls alias grep
Wenn der angegebene Name nicht als Alias definiert ist, wird eine Fehlermeldung angezeigt und ein Fehlerstatus zurückgegeben. Um zu überprüfen, ob ein Befehlsname ein Alias, eine Funktion oder eine ausführbare Datei ist, verwenden Sie type name.
Ein Alias erstellen
Da der Wert Leerzeichen oder Shell-Metazeichen enthalten kann, ist es im Allgemeinen sicher, ihn in einfache Anführungszeichen zu setzen.
alias ll='ls -alF' alias grep='grep --color=auto' alias ..='cd ..' alias logs='journalctl -xe'
Setzen Sie keine Leerzeichen um =. Wenn Sie es wie alias ll = 'ls -alF' schreiben, wird es nicht als Aliasdefinition interpretiert.
Das Alias für die weitere Verwendung speichern
Auf der Kommandozeile definierte Aliase sind nur in der aktuellen Shell-Prozess gültig. Um sie in einem neuen Terminal zu verwenden, müssen Sie sie in der Bash-Startdatei definieren.
alias ll='ls -alF' alias update='sudo apt update && sudo apt upgrade'
In einer interaktiven Bash wird der Alias in der Regel in ~/.bashrc im Home-Verzeichnis des Benutzers eingetragen. Je nach Distribution wird ~/.bash_aliases auch aus ~/.bashrc eingelesen. Prüfen Sie daher zuerst die vorhandene Konfigurationsstruktur.
Nach der Änderung der Datei können Sie entweder eine neue Shell öffnen oder sie mit dem folgenden Befehl auf die aktuelle Shell anwenden.
source ~/.bashrc
Praktische Alias-Beispiele
| Beispiel | Zweck |
|---|---|
alias la='ls -A' |
Zeigt versteckte Dateien mit Ausnahme von . und .. an. |
alias c='clear' |
Löscht den Terminal-Bildschirm mit einem kurzen Befehl. |
alias gs='git status' |
Überprüft schnell den Status eines Git-Arbeitsverzeichnisses. |
alias dfh='df -h' |
Zeigt die Dateisystemnutzung in menschenlesbaren Einheiten an. |
alias mkdir='mkdir -p' |
Erstellt alle notwendigen übergeordneten Verzeichnisse. Seien Sie vorsichtig in einer Teamumgebung, da dies das Verhalten des bestehenden Befehls ändert. |
Wie man den ursprünglichen Befehl ausführt
Um einen Alias vorübergehend zu umgehen, bei einem Namen, auf den der Alias angewendet wird, können Sie dem Befehl einen Backslash voranstellen.
\ls
Das Built-in command ist nützlich, um die Suche nach Shell-Funktionen zu umgehen, aber die Alias-Erweiterung erfolgt davor, sodass im Allgemeinen das zweite Wort, wie ls in command ls, nicht der Alias-Erweiterung unterliegt, es sei denn, command selbst ist ein Alias. Um sicherzustellen, dass Sie das ausführbare Programm angeben, können Sie den absoluten Pfad wie /usr/bin/ls verwenden.
Verwenden Sie eine Shell-Funktion, wenn Argumente benötigt werden
Aliases haben nicht die Fähigkeit, das erste empfangene Argument in eine mittlere Position einzufügen. Wenn Sie Positionsargumente wie unten gezeigt behandeln müssen, ist es klarer, eine Funktion zu definieren.
mkcd() {
mkdir -p -- "$1" && cd -- "$1"
}
Argumente, die nach einem Alias eingegeben werden, werden unverändert an das Ende des erweiterten Befehls angehängt. Wenn der Zweck lediglich darin besteht, Standardoptionen hinzuzufügen, sind Aliase geeignet, aber wenn Bedingungen, Schleifen oder Argumentüberprüfungen erforderlich sind, verwenden Sie eine Funktion.
Wenn ein Alias nicht erweitert wird
Nicht-interaktive Shells und Skripte
Bash erweitert standardmäßig keine Aliase in nicht-interaktiven Shells. Sie können dies mit shopt -s expand_aliases ändern, aber in Skripten ist es besser, Funktionen oder explizite Befehle anstelle von Aliasen zu verwenden, da dies portabler und vorhersehbarer ist.
Definieren und Ausführen in derselben Zeile
Aliase werden erweitert, wenn Bash den Befehl liest, nicht zur Ausführungszeit. Daher kann ein Alias, der in derselben Zeile oder innerhalb eines einzelnen zusammengesetzten Befehls definiert ist, möglicherweise nicht auf den unmittelbar folgenden Befehl angewendet werden.
alias hi='printf "hello\n"'; hi
Um Verwirrung zu vermeiden, platzieren Sie Alias-Definitionen auf einer separaten Zeile und verwenden Sie Funktionen oder Befehle in der Skriptlogik.
Kriterien für sichere Verwendung
- Vermeiden Sie Aliase, die gefährliche Operationen wie das Löschen oder Überschreiben verbergen.
- Wenn Sie Namen verwenden, die mit eingebauten Befehlen identisch sind, beachten Sie, dass sich das Verhalten unterscheiden kann.
- Stellen Sie sicher, dass Serverbetriebsverfahren oder gemeinsam genutzte Skripte nicht auf persönliche Aliase angewiesen sind.
- Verwenden Sie Funktionen, wenn komplexe Anführungszeichenbehandlung, Pipelines und Argumentverarbeitung erforderlich sind.
- Überprüfen Sie die tatsächliche Definition eines Alias mit
alias nameodertype name.
Vergleich von Alias, Funktion, Skript
| Methode | Geeignete Verwendungen | Vorsichtsmaßnahmen |
|---|---|---|
alias |
Fügen Sie in einer interaktiven Shell kurze Namen oder Standardoptionen hinzu | Es ist schwierig, Positionsargumente und komplexe Logik direkt zu handhaben. |
| Shell-Funktionen | Argumente, bedingte Anweisungen und sich wiederholende Aufgaben, die mehrere Befehle erfordern | Der aktuelle Shell-Typ und Funktionsdefinitionen sind erforderlich. |
| Ausführungsskript | Aufgaben, die in verschiedenen Shells, für verschiedene Benutzer und Systeme wiederverwendet werden können | Dateiplatzierung, Ausführungsberechtigungen und PATH-Verwaltung sind erforderlich. |
Häufig gestellte Fragen
Ich habe einen Alias erstellt, aber er verschwindet im neuen Terminal.
Von der Befehlszeile erstellte Aliase existieren nur in der aktuellen Shell. Speichern Sie sie in ~/.bashrc oder in der von Ihrer Distribution verwendeten alias-Konfigurationsdatei und starten Sie eine neue Shell.
Kann ich Argumente im alias-Namen einfügen?
Die nach einem alias eingegebenen Argumente werden an das Ende der Expansion angehängt, aber Sie können ihre Position nicht wie bei $1 angeben. Wenn Sie die Argumentposition angeben oder eine Validierung durchführen müssen, verwenden Sie eine Shell-Funktion.
Wie lösche ich einen Alias?
Verwenden Sie in der aktuellen Shell unalias name. Wenn das alias in einer Startdatei gespeichert ist, müssen Sie auch diese Definition löschen oder auskommentieren, um zu verhindern, dass sie in einer neuen Shell erneut erstellt wird.
Weitere Angaben zu Syntax, Implementierung und Verfügbarkeit finden Sie unter GNU Bash Handbuch: Aliase und GNU Bash Handbuch: Bash-Built-in-Befehle.




