48 votes

Comment partager l'historique entre les terminaux dans zsh ?

Comment faire en sorte que chaque commande saisie soit visible dans l'historique de chaque terminal ouvert ?

Lorsque plusieurs terminaux sont ouverts, l'historique n'est pas partagé, c'est-à-dire que ce que vous avez saisi dans l'historique d'un terminal n'apparaît pas dans l'historique d'un autre terminal. Pensez à une alternative à la fonction PROMPT_COMMAND="history -a" (qui enregistre l'historique avant l'affichage de l'invite).

54voto

MJB Points 1594

Les options suivantes sont applicables :

  • Pour enregistrer chaque commande avant qu'elle ne soit exécutée (ce qui est différent de la solution history -a de bash) :

     setopt inc_append_history
  • Pour lire le fichier d'historique à chaque fois que l'on fait appel à l'historique, ainsi que la fonctionnalité de inc_append_history :

     setopt share_history

Ceux-ci peuvent être définis dans votre .zshrc fichier.


Soit l'ensemble inc_append_history o share_history mais pas les deux. (voir les commentaires ci-dessous)

  • Quand share_history est activé, il lit et écrit dans le fichier historique.
  • Quand inc_append_history est activé, il n'écrit que dans le fichier historique.

Relatif à bash :

8voto

Jason Hartley Points 143

Si vous utilisez l'excellent logiciel OhMyZSH de Robby Russell, il s'occupera de tout cela et de bien d'autres choses encore.

Voir https://github.com/robbyrussell/oh-my-zsh/blob/master/lib/history.zsh

Il s'agit notamment de setopt inc_append_history .

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