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 .

  • Comportement à l'autocomplète Zsh étrange
  • Le menu «Ouvrir avec» du Finder d'accès à partir de la ligne de commande (pour l'achèvement de l'onglet)
  • Pourquoi `zsh` insère-t-il` ~ `lorsque j'appuie sur la touche de suppression?
  • Comment définissez-vous correctement alias sudo = 'nocorrect sudo'?
  • Comment supprimer des fichiers sur la ligne de commande avec des expressions régulières?
  • Tmux et ZSH invite personnalisée: bug avec le nom de la fenêtre
  • OS X El Capitan 10.11 Terminal 2.6 n'ouvrira pas de nouveaux onglets avec le même répertoire de travail
  • Comment faire pour que Zsh ne stocke pas la commande échouée
  • Transférer un fichier à une commande qui n'impose pas la tuyauterie
  • Zsh - l'affectation variable ne fonctionne pas
  • 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.