Dire che ho questi due nel mio .zshrc
:
alias sudo='nocorrect sudo' alias boot27='grub-reboot 4 && reboot'
boot27
fornisce boot27: command not found
. Se cambiamo l'alias su 'nocorrect sudo '
o solo 'sudo '
, funziona, ma altre cose come mkdir
danno nocorrect: command not found
.
Per chiarire, eseguire sudo boot27
e get boot27: command not found
perché poiché sudo
è un alias, bash smette di eseguire la scansione degli alias e non riconosce boot27
come uno. Come discusso qui , un modo per affrontare questo problema è aggiungere uno spazio alla fine della definizione alias.
Aggiunta dello spazio consente a bash di riconoscere boot27
ma il problema ora è che il tuo account di root non è impostato per utilizzare zsh, quindi sudo
inizia una shell bash. nocorrect
è una cosa zsh
, bash
non ha idea di cosa sia così si lamenta.
Il modo più semplice per risolvere questo problema sarebbe quello di impostare la shell di root in /bin/zsh
:
sudo chsh
Quindi impostare l'alias con lo spazio:
alias sudo='nocorrect sudo '
L'alias boot27
ha un altro problema. Suppongo che lo fai come sudo boot27
, la shell leggerà l'alias e lo espanderà a:
sudo grub-reboot 4 && reboot
Così, eseguirà grub-reboot
come root, ma verrà eseguito il reboot
come un utente normale. Quello che volete è cambiare il tuo alias
alias boot27='grub-reboot 4 && sudo reboot'
e eseguirlo come sudo boot27
oppure per modificare l'alias
alias boot27='sudo grub-reboot 4 && sudo reboot'
e la boot27
funzionare senza sudo
, appena boot27
.