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

Warum ignoriert Sudo Aliasse?

Ich verwende Ubuntu 10.04 und verwende upstart für die Daemon-Verwaltung. Meine Unternehmensanwendung wird als Daemon ausgeführt und muss aufgrund verschiedener Berechtigungen als Root ausgeführt werden. Beispiel:

sudo start my-application-long-ID
sudo stop my-application-long-ID
etc

Ich möchte einen alias einführen um diese Befehle wie folgt abzukürzen:

alias startapp='sudo start my-application-long-ID'

und führen Sie es als startapp aus und das funktioniert, aber ich würde es vorziehen, kein sudo im Alias ​​zu haben.

alias startapp='start my-application-long-ID'

nicht, wenn es mit sudo startapp ausgeführt wird , wobei sudo: startapp: command not found zurückgegeben wird .

Als ich jedoch den Alias ​​hinzufügte:

alias sudo='sudo '

sudo startapp funktioniert jetzt, aber ich bin immer noch neugierig, warum sudo Aliase ignoriert.

Akzeptierte Antwort:

Ich sehe die folgenden Informationen von hier aus.

Verwenden Sie bei Verwendung von sudo die Aliaserweiterung (ansonsten ignoriert sudo Ihre Aliase)

alias sudo='sudo '

Der Grund, warum es nicht funktioniert, wird hier erklärt.

Bash überprüft nur das erste Wort eines Befehls auf einen Alias, alle Wörter
danach werden nicht überprüft. Das bedeutet, dass bei einem Befehl wie sudo ll nur
das erste Wort (sudo) von bash auf einen Alias ​​geprüft wird, ll wird ignoriert.
Wir können bash anweisen, das nächste Wort nach dem Alias ​​zu prüfen (d. h sudo) durch
Hinzufügen eines Leerzeichens am Ende des Alias-Werts.


Linux
  1. Wie man `alias Sudo !!`?

  2. Warum beginnt die Unix-Zeit am 1.1.1970?

  3. Warum beginnt Plymouth so spät?

  4. sudoedit:Warum es über sudo vi verwenden?

  5. Warum dauert die Ausführung des sudo-Befehls lange?

10 praktische Bash-Aliase für Linux

15 Befehlszeilen-Aliase, um Ihnen Zeit zu sparen

So erstellen Sie Bash-Aliase

So erstellen Sie Domain-Aliase

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

Linux-Alias-Befehl