51 votes

Comment empêcher qu'une commande dans le zshell soit sauvegardée dans l'historique ?

En Bash, je sais que mettre un espace avant une commande l'empêche d'être conservée dans l'historique, quel est l'équivalent pour le zshell ?

75voto

vaske Points 2468

Utilisez l'option HIST_IGNORE_SPACE.

setopt HIST_IGNORE_SPACE

homme zshoptions

HIST_IGNORE_SPACE

Supprime les lignes de commande de la liste historique lorsque le premier caractère de la ligne est un espace ou lorsque l'un des alias étendus contient un espace en début de ligne. Notez que la commande reste dans l'historique interne jusqu'à ce que la commande suivante soit saisie avant de disparaître, ce qui vous permet de réutiliser ou de modifier brièvement la ligne. Si vous souhaitez la faire disparaître immédiatement sans entrer d'autre commande, tapez un espace et appuyez sur retour.

7voto

Girish Points 123

Si vous souhaitez exercer un contrôle plus granulaire sur ce qui est ajouté à l'historique ZSH, vous pouvez définir le paramètre zshaddhistory fonction dans .zshrc . La définition suivante utilise une expression rationnelle pour définir un motif à ignorer :

function zshaddhistory() {
  emulate -L zsh
  if ! [[ "$1" =~ "(^ |^ykchalresp|--password)" ]] ; then
      print -sr -- "${1%%$'\n'}"
      fc -p
  else
      return 1
  fi
}

Notez que le comportement de man zshopts en HIST_IGNORE_SPACE est toujours présent :

Notez que la commande reste dans l'historique interne jusqu'à ce que la commande suivante soit saisie avant de disparaître, ce qui vous permet de réutiliser ou de modifier brièvement la ligne.

Pour le tester, il faudrait donc que vous frappiez un [Enter] . Cette opération supprime la commande à la fois de la sortie de history ainsi que l'historique des flèches.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X