Comment dire à Zsh d'écrire l'historique du shell actuel dans mon fichier historique?

StackOverflow https://stackoverflow.com/questions/842338

  •  20-08-2019
  •  | 
  •  

Question

Je travaille dans un endroit qui regorge d'outils qui nécessitent une multitude d'options. Je me fie donc beaucoup à l'histoire de ma coque. Je le sauvegarde même de temps en temps juste pour m'assurer de ne pas perdre de longues commandes utiles.

Je viens de taper une de ces commandes et je veux m'assurer que le fichier d'historique y est associé, mais j'ai un travail de longue durée en arrière-plan et je ne peux pas taper exec zsh. Y a-t-il autre chose que je puisse faire dans cette situation?

(Bien sûr, je pourrais le copier et le coller dans un fichier, mais il serait plus logique qu'il existe une flush-history commande.)

Était-ce utile?

La solution

Pour écrire l'historique du shell dans le fichier historique, faites

fc -W

fc a des drapeaux utiles, voyez-les tous dans man zshbuiltins.

Vous pouvez également automatiser entièrement la lecture et l'écriture du fichier d'historique après chaque commande (pour partager automatiquement votre fichier d'historique avec chaque zsh en cours d'exécution) en indiquant setopt -o sharehistory. Lisez plus d'options liées à l'historique dans man zshoptions.

Autres conseils

Je viens aussi de trouver:

setopt INC_APPEND_HISTORY

De man zshoptions:

INC_APPEND_HISTORY
   This  options  works like APPEND_HISTORY except that new history
   lines are added to the $HISTFILE incrementally (as soon as  they
   are  entered),  rather  than waiting until the shell exits.  The
   file will still be periodically re-written to trim it  when  the
   number  of  lines grows 20% beyond the value specified by $SAVE-
   HIST (see also the HIST_SAVE_BY_COPY option).

Et utiliser

fc -R

pour lire l'historique (après l'écriture) dans un shell zsh existant.

appen dessous de la ligne ~ / .zshrc, cela économisera 1000 entrées augmentées en modifiant les valeurs de HISTSIZE et SAVEHIST

HISTSIZE=1000
if (( ! EUID )); then
  HISTFILE=~/.zsh_history_root
else
  HISTFILE=~/.zsh_history
fi
SAVEHIST=1000
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top