GNU/Linux >> Znalost Linux >  >> Linux

Proč Sudo ignoruje aliasy?

Používám Ubuntu 10.04 a používám upstart pro správu démonů. Moje podniková aplikace je spuštěna jako démon a musí být spuštěna jako root kvůli různým oprávněním. Např.:

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

Rád bych zavedl alias zkrátit tyto příkazy jako:

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

a spusťte jej jako startapp a to funguje, ale raději bych neměl sudo v aliasu.

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

ne při spuštění pomocí sudo startapp , vrací sudo: startapp: command not found .

Nicméně, když jsem přidal alias:

alias sudo='sudo '

sudo startapp nyní funguje, ale stále mě zajímá, proč sudo ignoruje aliasy.

Přijatá odpověď:

Níže uvedené informace vidím odtud.

Při použití sudo použijte rozšíření aliasů (jinak sudo vaše aliasy ignoruje)

alias sudo='sudo '

Důvod, proč to nefunguje, je vysvětlen zde.

Bash kontroluje pouze první slovo příkazu pro alias, jakákoli slova
po něm se nekontrolují. To znamená, že v příkazu jako sudo ll je pouze
první slovo (sudo) zkontrolováno bashem na alias, ll je ignorováno.
Můžeme říct bash, aby zkontroloval další slovo za aliasem (tj. sudo)
přidáním mezery na konec hodnoty aliasu.


Linux
  1. 10 praktických aliasů Bash pro Linux

  2. Aliasy příkazového řádku v prostředí Linux

  3. Proč potřebuje uživatel root oprávnění sudo?

  1. Proč se [a-z] shoduje s malými písmeny v bash?

  2. Proč by člověk měl používat sudo?

  3. Proč spuštění příkazu sudo trvá dlouho?

  1. Jak na `alias Sudo !!`?

  2. Proč Unixový čas začíná na 1970-01-01?

  3. Proč „ukončit &“ nefunguje?