GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué Sudo ignora los alias?

Estoy ejecutando Ubuntu 10.04 y uso upstart para la gestión de demonios. Mi aplicación empresarial se ejecuta como un demonio y debe ejecutarse como root debido a varios privilegios. Por ejemplo:

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

Me gustaría presentar un alias para abreviar estos comandos como algo como:

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

y ejecútelo como startapp y eso funciona, pero preferiría no tener sudo en el alias.

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

no cuando se ejecuta usando sudo startapp , devolviendo sudo: startapp: command not found .

Sin embargo, cuando agregué el alias:

alias sudo='sudo '

sudo startapp ahora funciona, pero todavía tengo curiosidad por qué sudo ignora los alias.

Respuesta aceptada:

Veo la siguiente información desde aquí.

Cuando use sudo, use la expansión de alias (de lo contrario, sudo ignora sus alias)

alias sudo='sudo '

La razón por la que no funciona se explica aquí.

Bash solo verifica la primera palabra de un comando para un alias, cualquier palabra
después de eso no se verifica. Eso significa que en un comando como sudo ll, solo
la primera palabra (sudo) es verificada por bash para un alias, ll es ignorada.
Podemos decirle a bash que verifique la siguiente palabra después del alias (es decir sudo)
agregando un espacio al final del valor del alias.


Linux
  1. ¿Cómo 'alias Sudo !!'?

  2. ¿Por qué el usuario raíz necesita permiso de Sudo?

  3. ¿Por qué [a-z] coincide con letras minúsculas en Bash?

  4. ¿Por qué el tiempo de Unix comienza en 1970-01-01?

  5. ¿Por qué Plymouth comienza tan tarde?

15 alias de línea de comandos para ahorrar tiempo

Cómo crear alias de Bash

Cómo crear alias de dominio

Cómo ejecutar un alias con Sudo en Linux

Comando de alias de Linux

¿Por qué el comando Sudo tarda mucho en ejecutarse?