Comment puis-je utiliser sudo avec alias dans zsh?

Dites que j'ai ces deux dans mon .zshrc :

 alias sudo='nocorrect sudo' alias boot27='grub-reboot 4 && reboot' 

boot27 donne boot27: command not found . Si je change l'alias en 'nocorrect sudo ' ou simplement en 'sudo ' , cela fonctionne, mais d'autres choses comme mkdir donnent une valeur nocorrect: command not found .

One Solution collect form web for “Comment puis-je utiliser sudo avec alias dans zsh?”

Juste pour clarifier, vous exécutez sudo boot27 et obtenez boot27: command not found car puisque sudo est un alias, bash arrête de numériser des alias et ne reconnaît pas le boot27 comme un seul. Comme discuté ici , une façon de traiter cela est d'ajouter un espace à la fin de la définition d'alias.

L'ajout de l'espace permet à bash de reconnaître le boot27 mais le problème est maintenant que votre compte racine n'est pas configuré pour utiliser zsh, de sorte que sudo démarre un shell bash à la place. nocorrect est une chose zsh , bash n'a aucune idée de ce que c'est, il se plaint.

La façon la plus simple de résoudre ceci serait de définir le shell de racine dans /bin/zsh :

 sudo chsh 

Ensuite, définissez votre alias avec l'espace:

 alias sudo='nocorrect sudo ' 

Votre alias boot27 a néanmoins un autre problème. Je suppose que vous l'exécutez comme sudo boot27 , le shell lira l'alias et l'étendra à:

 sudo grub-reboot 4 && reboot 

Donc, il exécutera grub-reboot tant que root, mais il fonctionnera reboot tant qu'utilisateur normal. Ce que vous voulez, c'est soit de changer votre alias en

 alias boot27='grub-reboot 4 && sudo reboot' 

Et exécutez-le comme sudo boot27 , ou pour modifier votre alias à

 alias boot27='sudo grub-reboot 4 && sudo reboot' 

Et exécutez-le sans sudo , juste boot27 .

  • Où est-ce que mon zsh obtient ses paramètres d'achèvement git?
  • Zsh commence incroyablement lentement
  • ZSH Completion colors et OS X
  • Dans l'éditeur de ligne ZSH, comment insérer une nouvelle ligne?
  • Npm commandes ne fonctionnent pas sur WSL avec zsh
  • Exécution de l'histoire oh-my-zsh
  • Comment supprimer des fichiers sur la ligne de commande avec des expressions régulières?
  • Comment remplacer un argument spécifique d'une commande précédente dans zsh?
  • Fn-Delete de binding dans zsh sur Mac OS X
  • En utilisant la commande personnalisée depuis l'ancien .inputrc dans zsh?
  • Invoquez zsh, demandez-lui d'exécuter une commande, puis entrez le mode interactif au lieu de sortir
  • Soyons le génie de l'ordinateur et du réseau.