GNU/Linux >> Znalost Linux >  >> Linux

Jak spustit alias pomocí Sudo v Linuxu

Hádám, že už víte, jak vytvořit alias v Linuxu. Alias ​​vám pomůže snadno spouštět dlouhé vlastní příkazy. Alias ​​můžete učinit trvalým tak, že jej přidáte do svého bashrc nebo konfiguračního souboru libovolného shellu, který v Linuxu používáte.

Problém nastává, když se pokusíte spustit alias pomocí sudo. Zobrazí se tato chyba:

sudo: my_alias: command not found

Zde je příklad. Vytvořil jsem alias up pro apt update příkaz. Příkaz apt update je třeba spustit pomocí sudo. Ale když se pokusím spustit sudo up , zobrazí chybu:

Budete si myslet, že protože běžíte jako uživatel root, alias by měl být definován v bashrc uživatele root, tj. /.bashrc. Pokračujte a zkuste to, ale vsadím se, že to nebude fungovat.

Dovolte mi ukázat vám úhledný malý trik, jak spustit příkaz alias pomocí sudo.

Spuštění příkazu alias s přístupem sudo

Trik je vytvořit alias pro samotné sudo takto:

sudo='sudo '

Ve výše uvedeném kódu je důležitá mezera (nebo tabulátor, chcete-li) za sudo. Nyní, pokud spustíte příkaz alias pomocí sudo, mělo by to fungovat dobře.

Ale proč? Proč to teď funguje, když vše, co jste udělali, bylo nahradit příkaz sudo sudo a mezerou? Odpověď spočívá ve způsobu, jakým je alias navržen k použití.

Pokud se podíváte na aliasovou část manuálu bash, uvidíte, že první slovo každého jednoduchého příkazu, pokud není v uvozovkách, je zkontrolováno, zda má alias. Pokud je posledním znakem hodnoty aliasu mezera nebo znak tabulátoru, pak se zkontroluje rozšíření aliasu i další příkazové slovo za aliasem.

Jinými slovy, v příkazu se kontroluje pouze první slovo na alias. Ale pokud má hodnota aliasu na konci mezeru nebo tabulátor, zkontroluje se alias i další slovo příkazu.

To je důvod, proč když jednoduše spustíte příkaz sudo my_alias s aliasem sudo na „sudo“, nejprve se sudo zkontroluje na alias. Je nalezen alias s mezerou na konci, a proto váš systém zkontroluje další slovo pro alias. Najde alias i pro tento a váš aliasový příkaz funguje tak, jak chcete.

Doufám, že se vám tento rychlý malý tip užitečný při spouštění aliasu pomocí sudo líbil. Jakékoli dotazy nebo návrhy jsou vždy vítány.


Linux
  1. Jak odinstalovat flux na linuxu?

  2. Jak naklonovat SSD s Linux Mint 18 na větší SSD

  3. Jak spustit linux na PS3?

  1. Jak na `alias Sudo !!`?

  2. Jak upgradovat R v linuxu?

  3. Spusťte příkaz cd jako superuživatel v Linuxu

  1. Jak nainstalovat Vagrant v Linuxu

  2. Linux – Jak spustit bootloader z Linuxu?

  3. Jak zkontrolovat heslo v Linuxu?