Ich vermute, Sie wissen bereits, wie man unter Linux einen Alias erstellt. Ein Alias hilft Ihnen, langwierige benutzerdefinierte Befehle einfach auszuführen. Sie können den Alias permanent machen, indem Sie ihn zu Ihrem bashrc oder der Konfigurationsdatei der Shell hinzufügen, die Sie unter Linux ausführen.
Das Problem tritt auf, wenn Sie versuchen, den Alias mit sudo auszuführen. Sie sehen einen Fehler wie diesen:
sudo: my_alias: command not found
Hier ist ein Beispiel. Ich habe einen Alias up
erstellt für apt update
Befehl. Der Befehl apt update muss mit sudo ausgeführt werden. Aber wenn ich versuche, sudo up
auszuführen , es gibt einen Fehler:
Sie werden denken, dass, da Sie als Root-Benutzer laufen, der Alias in der bashrc des Root-Benutzers definiert werden sollte, d.h. /.bashrc. Probieren Sie es aus, aber ich wette, es wird nicht funktionieren.
Lassen Sie mich Ihnen einen netten kleinen Trick zeigen, um einen Alias-Befehl mit sudo auszuführen.
Alias-Befehl mit sudo-Zugriff ausführen
Der Trick besteht darin, einen Alias für sudo selbst wie folgt zu erstellen:
sudo='sudo '
Das Leerzeichen (oder Tabulator, wenn Sie das bevorzugen) nach sudo ist im obigen Code wichtig. Wenn Sie jetzt Ihren Alias-Befehl mit sudo ausführen, sollte es problemlos funktionieren.
Aber warum? Warum funktioniert es jetzt, wenn Sie lediglich den sudo-Befehl durch sudo und ein Leerzeichen ersetzt haben? Die Antwort liegt in der Art und Weise, wie Alias verwendet werden soll.
Wenn Sie sich den Alias-Teil des Bash-Handbuchs ansehen, werden Sie sehen, dass das erste Wort jedes einfachen Befehls, wenn es nicht in Anführungszeichen steht, überprüft wird, um zu sehen, ob es einen Alias hat. Wenn das letzte Zeichen des Alias-Werts ein Leerzeichen oder ein Tabulatorzeichen ist, wird das nächste Befehlswort nach dem Alias ebenfalls auf Alias-Erweiterung geprüft.
Mit anderen Worten, in einem Befehl wird nur das erste Wort auf Alias überprüft. Wenn der Alias-Wert jedoch am Ende ein Leerzeichen oder einen Tabulator enthält, wird das nächste Wort des Befehls ebenfalls auf einen Alias überprüft.
Aus diesem Grund wird, wenn Sie einfach den Befehl sudo my_alias ausführen, wobei sudo den Aliasnamen „sudo“ hat, zuerst sudo auf Alias überprüft. Ein Alias wird mit einem Leerzeichen am Ende gefunden und Ihr System überprüft daher das nächste Wort auf einen Alias. Es findet auch den Alias für diesen und Ihr Alias-Befehl funktioniert so, wie Sie es möchten.
Ich hoffe, Ihnen hat dieser schnelle kleine Tipp gefallen, der beim Ausführen von Aliasnamen mit sudo hilfreich war. Fragen oder Anregungen sind immer willkommen.