Linux alias-Befehl: Eigene Kurzbefehle erstellen und verwalten
Lerne, wie du mit alias eigene Linux-Kurzbefehle erstellst, prüfst, entfernst und dauerhaft in Bash oder Zsh speicherst.
Mit dem Shell-Builtin alias gibst du langen oder häufig verwendeten Befehlen einen kurzen Namen. Das spart Tipparbeit und kann den täglichen Umgang mit dem Linux-Terminal deutlich vereinfachen. Dieser Artikel zeigt die wichtigsten Befehle für Bash und Zsh.
Grundkenntnisse im Terminal sowie die Befehle ls und pwd sind hilfreich. Eine Einführung bietet der Artikel Einführung in Linux.
Was ist ein Alias?
Ein Alias ist ein alternativer, meist kürzerer Name für einen Shell-Befehl. Die Shell ist der Kommandointerpreter, beispielsweise Bash oder Zsh, der deine Eingaben verarbeitet. Ein Alias wird dabei von der Shell aufgelöst, bevor der eigentliche Befehl ausgeführt wird.
Ein Alias ist deshalb kein eigenständiges Programm und normalerweise auch keine Datei im Dateisystem. Er existiert innerhalb einer Shell-Sitzung und verweist auf einen Befehlswert. Besonders nützlich ist das bei:
- langen Befehlen mit regelmäßig benötigten Optionen,
- wiederkehrenden Befehlen und Arbeitsabläufen,
- persönlichen Vorlieben bei der Bedienung des Terminals,
- vertrauten Namen für Nutzer, die von Windows zu Linux wechseln.
Grundsyntax von alias
Die grundlegende Syntax lautet:
alias NAME='BEFEHL MIT OPTIONEN'
Die Bestandteile haben folgende Bedeutung:
NAMEist der Alias-Name, den du später eingibst.- Das Gleichheitszeichen verbindet den Namen direkt mit dem Befehlswert. Zwischen Name, Gleichheitszeichen und Wert darf kein Leerzeichen stehen.
- Der Befehlswert ist der Aufruf, den die Shell anstelle des Alias-Namens verwendet.
- Anführungszeichen bewahren Leerzeichen, Optionen und weitere Bestandteile des Befehls als zusammengehörigen Wert.
Ein Alias-Name sollte aus einem einfachen, leicht merkbaren Namen ohne Leerzeichen bestehen. Namen wie ll, dir oder proj sind geeignet. Ein Name mit Leerzeichen ist keine gültige normale Alias-Syntax.
Einen einfachen Alias erstellen
Mit diesem Beispiel wird dir zu einer kurzen Alternative für eine detaillierte Verzeichnisauflistung:
alias dir='ls -l'
Danach führt die Eingabe von dir in der aktuellen Shell dasselbe aus wie ls -l. Die Option -l aktiviert das Langformat von ls, das unter anderem Dateirechte, Eigentümer, Größe und Änderungszeit anzeigt.
Das ist besonders praktisch für Windows-Umsteiger, die den Namen dir erwarten. Der Alias macht daraus jedoch keinen Windows-Befehl, sondern bildet lediglich den Namen auf den Linux-Befehl ls -l ab.
Ohne Speicherung ist dieser Alias temporär: Er gilt nur bis zum Ende der aktuellen Shell-Sitzung. Beim Schließen des Terminals geht er verloren.
Das Standardverhalten von ls anpassen
Du kannst auch einen bereits vorhandenen Befehlsnamen als Alias verwenden:
alias ls='ls -l'
Von nun an wird eine Eingabe von ls in dieser Shell automatisch zu ls -l erweitert. Damit erscheint die Dateiliste standardmäßig im Langformat.
Ein solcher Alias kann das Verhalten eines etablierten Befehls überschreiben. Das ist bequem, kann aber bei Anleitungen, Fehlersuche oder gemeinsam genutzten Rechnern zu Verwirrung führen. Andere Nutzer erwarten möglicherweise das unveränderte Verhalten von ls. Prüfe daher vor einer Fehlersuche, ob ein Alias aktiv ist.
Den ursprünglichen Befehl kannst du einmalig mit einem vorangestellten Backslash ausführen:
\ls
Der Backslash verhindert in diesem Fall die Alias-Auflösung für diesen Aufruf.
Mehrere Aktionen mit einem Alias
Mehrere Befehle lassen sich mit einem Semikolon hintereinander ausführen. Das ist eine einfache Form der Befehlsverkettung:
alias dir='ls -l; pwd'
Bei der Eingabe von dir wird zuerst die lange Dateiliste ausgegeben. Anschließend zeigt pwd das aktuelle Arbeitsverzeichnis an.
Aliases sind jedoch nur einfache Textersetzungen. Sie sind nicht gut geeignet für:
- die zuverlässige Verarbeitung beliebiger Argumente,
- Variablen und deren kontrollierte Auswertung,
- Bedingungen wie
ifoder komplexe Fehlerbehandlung, - umfangreiche Abläufe mit Schleifen und mehreren Zuständen.
Für solche Aufgaben verwendest du besser eine Shell-Funktion oder ein Shell-Skript. Eine Shell-Funktion kann Argumente gezielt verarbeiten und mehrere Befehle mit nachvollziehbarer Logik verbinden.
Vorhandene Aliases anzeigen
Mit alias ohne weitere Argumente listest du alle aktuell aktiven Aliases auf:
alias
Die Ausgabe enthält typischerweise Zeilen wie:
alias dir='ls -l'
alias ls='ls -l'
Die Definition eines einzelnen Alias prüfst du mit seinem Namen:
alias dir
Distributionen und persönliche Shell-Konfigurationen können bereits Aliases enthalten. Wenn sich ein Befehl anders verhält als erwartet, ist die Prüfung mit alias NAME ein sinnvoller erster Schritt.
Wichtige Befehle zur Alias-Verwaltung
Aliases entfernen und umgehen
Das Shell-Builtin unalias entfernt einen Alias:
unalias dir
Danach ist dir in der aktuellen Shell nicht mehr als Alias definiert. Mit der optionalen Form entfernst du alle Aliases dieser Shell:
unalias -a
Das ist eine weitreichende Aktion. Vordefinierte und persönliche Aliases werden gleichermaßen entfernt und können nach einem neuen Shell-Start wieder erscheinen, wenn sie in einer Konfigurationsdatei gespeichert sind.
Das temporäre Entfernen mit unalias ist nicht dasselbe wie das dauerhafte Löschen. Eine Definition in ~/.bashrc oder ~/.zshrc bleibt dort bestehen und wird beim nächsten Laden wieder aktiviert. Für eine dauerhafte Änderung musst du die entsprechende Zeile aus der Konfigurationsdatei entfernen oder anpassen.
Aliases dauerhaft speichern
Ein persistenter Alias wird in einer Shell-Konfigurationsdatei gespeichert. Welche Datei geeignet ist, hängt von der verwendeten Shell ab:
Für Bash öffnest oder bearbeitest du ~/.bashrc und ergänzt beispielsweise:
alias dir='ls -l'
Lade die Datei anschließend ohne neues Terminal:
source ~/.bashrc
Bei Zsh trägst du dieselbe Alias-Zeile in ~/.zshrc ein und lädst sie so:
source ~/.zshrc
Alternativ kannst du eine neue Shell oder ein neues Terminal starten. Persönliche Dateien mit dem Präfix . liegen normalerweise in deinem Home-Verzeichnis. Systemweite Shell-Konfigurationen sind administrativ geschützt und unterscheiden sich je nach Distribution. Für persönliche Aliases ist die Datei im eigenen Home-Verzeichnis normalerweise die passendere Wahl.
Temporäre und dauerhafte Aliases im Vergleich
Sicherheits- und Bedienhinweise
- Verdecke keine sicherheitskritischen oder zerstörerischen Befehle hinter unauffälligen Alias-Namen.
- Prüfe Aliases für
rm,cpundmvbesonders sorgfältig, wenn sie Standardoptionen ergänzen. - Ein Alias kann Risiken reduzieren oder erhöhen, ersetzt aber keine Prüfung des konkreten Befehls.
- Verwende in Shell-Skripten normalerweise die vollständigen Befehle. Nichtinteraktive Shells laden persönliche Alias-Konfigurationen oft nicht, und Alias-Erweiterung ist für Skripte nicht zuverlässig vorgesehen.
- Wenn ein Ablauf Argumente, Bedingungen oder Fehlerbehandlung benötigt, nutze eine Shell-Funktion oder ein Skript.
Typische Probleme und Lösungen
Der Alias ist nach einem neuen Terminal verschwunden
Wahrscheinlich wurde er nur interaktiv angelegt. Speichere die Definition in der passenden Startdatei, also meist ~/.bashrc für Bash oder ~/.zshrc für Zsh, und lade die Datei neu.
Die Änderung der Konfigurationsdatei wirkt noch nicht
Das aktuelle Terminal hat die Datei möglicherweise noch nicht erneut eingelesen. Verwende für Bash source ~/.bashrc oder für Zsh source ~/.zshrc, beziehungsweise starte eine neue Shell.
ls verhält sich unerwartet
Prüfe zunächst:
alias ls
Führe den unveränderten Befehl einmalig mit \ls aus. Wenn der Alias nicht mehr benötigt wird, entferne ihn vorübergehend mit:
unalias ls
Ein Alias mit mehreren Aktionen verarbeitet Argumente nicht sinnvoll
Das liegt an der einfachen Textersetzung von Aliases. Ersetze den Alias durch eine Shell-Funktion oder ein Skript, wenn Argumente, Variablen oder bedingte Abläufe benötigt werden.
Der Alias ist in einem Shell-Skript nicht verfügbar
Nichtinteraktive Shells laden persönliche Aliases häufig nicht. Schreibe im Skript den vollständigen Befehl aus oder lagere den Ablauf in eine ausdrücklich aufgerufene Funktion beziehungsweise ein Skript aus.
Die Alias-Definition erzeugt einen Syntaxfehler
Häufige Ursachen sind fehlende Anführungszeichen, ein Leerzeichen um das Gleichheitszeichen oder ein ungültiger Name. Verwende die Form:
alias NAME='Befehl mit Optionen'
Wähle einen einfachen Alias-Namen ohne Leerzeichen und achte auf korrekt geschlossene Anführungszeichen.
Praktische Kurzreferenz
# Temporären Alias anlegen
alias dir='ls -l'
# ls standardmäßig mit Langformat verwenden
alias ls='ls -l'
# Zwei Befehle nacheinander ausführen
alias dir='ls -l; pwd'
# Alle Aliases anzeigen
alias
# Einzelnen Alias prüfen
alias dir
# Einen Alias entfernen
unalias dir
# Alle Aliases der aktuellen Shell entfernen
unalias -a
# Alias einmalig umgehen
\ls
Aliases sind ein kleines, aber nützliches Werkzeug für persönliche Terminal-Abläufe. Beginne mit einfachen, transparenten Abkürzungen, prüfe bestehende Definitionen und speichere nur solche Aliases dauerhaft, deren Verhalten du jederzeit nachvollziehen kannst.