¿Cómo le digo a Zsh que escriba el historial del shell actual en mi archivo de historial?

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

  •  20-08-2019
  •  | 
  •  

Pregunta

Trabajo en un lugar que tiene miles de millones de herramientas que requieren toneladas de opciones, por lo que confío significativamente en la historia de mi shell. Incluso lo respaldo de vez en cuando solo para asegurarme de no perder comandos útiles y largos.

Acabo de escribir uno de estos comandos y quiero asegurarme de que esté en el archivo del historial, pero tengo un trabajo de larga ejecución en segundo plano y no puedo escribir exec zsh. ¿Hay algo más que pueda hacer en esta situación?

(Claro, podría copiarlo y pegarlo en un archivo, pero sería más lógico que exista un comando flush-history.)

¿Fue útil?

Solución

Para escribir el historial de shell en el archivo de historial, haga

fc -W

fc tiene algunos indicadores útiles, véalos todos en man zshbuiltins.

También puede automatizar completamente la lectura y escritura del archivo de historial después de cada comando (compartiendo así su archivo de historial automáticamente con cada zsh en ejecución) diciendo setopt -o sharehistory. Lea más opciones relacionadas con el historial en man zshoptions.

Otros consejos

También acabo de encontrar:

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).

Y usar

fc -R

para leer en el historial (después de escribirlo) en un shell zsh existente.

agregue debajo de la línea a ~ / .zshrc, ahorrará 1000 entradas que aumentemos al cambiar el valor de HISTSIZE y SAVEHIST

HISTSIZE=1000
if (( ! EUID )); then
  HISTFILE=~/.zsh_history_root
else
  HISTFILE=~/.zsh_history
fi
SAVEHIST=1000
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top