GNU/Linux >> Linux Esercitazione >  >> Linux

Perché Sudo ignora gli alias?

Sto eseguendo Ubuntu 10.04 e utilizzo upstart per la gestione dei demoni. La mia applicazione aziendale viene eseguita come demone e deve essere eseguita come root a causa di vari privilegi. Es.:

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

Vorrei introdurre un alias per abbreviare questi comandi in qualcosa del tipo:

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

ed eseguilo come startapp e funziona ma preferirei non avere sudo nell'alias.

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

non funziona quando viene eseguito utilizzando sudo startapp , restituendo sudo: startapp: command not found .

Tuttavia, quando ho aggiunto l'alias:

alias sudo='sudo '

sudo startapp ora funziona ma sono ancora curioso di sapere perché sudo ignori gli alias.

Risposta accettata:

Vedo le seguenti informazioni da qui.

Quando usi sudo, usa l'espansione alias (altrimenti sudo ignora i tuoi alias)

alias sudo='sudo '

Il motivo per cui non funziona è spiegato qui.

Bash controlla solo la prima parola di un comando per un alias, tutte le parole
successive non vengono controllate. Ciò significa che in un comando come sudo ll, solo
la prima parola (sudo) viene controllata da bash per un alias, ll viene ignorato.
Possiamo dire a bash di controllare la parola successiva dopo l'alias (cioè sudo)
aggiungendo uno spazio alla fine del valore dell'alias.


Linux
  1. Alias ​​della riga di comando nella shell di Linux

  2. Come `alias Sudo !!`?

  3. Perché l'utente root ha bisogno dell'autorizzazione Sudo?

  4. Perché Unix Time inizia al 1970-01-01?

  5. Perché Plymouth inizia così tardi?

15 alias della riga di comando per farti risparmiare tempo

Come creare alias Bash

Come creare alias di dominio

Come eseguire un alias con Sudo in Linux

Comando alias Linux

Perché non ho l'evidenziazione della sintassi quando sudo vi <filename>?