GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So führen Sie einen Alias ​​mit Sudo in Linux aus

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.


Linux
  1. So installieren Sie Vagrant unter Linux

  2. Wie man `alias Sudo !!`?

  3. Linux – Wie führe ich einen Bootloader von Linux aus?

  4. Führen Sie den cd-Befehl als Superuser unter Linux aus

  5. Wie läuft Linux auf PS3?

So führen Sie Windows 95 unter Linux aus

So führen Sie bestimmte Befehle ohne Sudo-Passwort in Linux aus

So erstellen Sie einen SSH-Alias ​​unter Linux

So erstellen Sie einen Alias ​​unter Linux

So sichern Sie Linux-Server mit SE Linux

So führen Sie mit Lynis ein Sicherheitsaudit auf AlmaLinux durch