Come faccio a dire a Zsh di scrivere la cronologia della shell corrente nel mio file di cronologia?

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

  •  20-08-2019
  •  | 
  •  

Domanda

Lavoro in un posto che ha milioni di strumenti che richiedono tonnellate di opzioni, quindi faccio affidamento sulla storia della mia shell in modo significativo. Di tanto in tanto eseguo il backup anche solo per essere sicuro di non perdere comandi utili e lunghi.

Ho appena digitato uno di questi comandi e voglio assicurarmi che sia scaricato nel file della cronologia, ma ho un lavoro di lunga durata in background e non riesco a digitare exec zsh. C'è qualcos'altro che posso fare in questa situazione?

(Certo, potrei copiarlo e incollarlo in un file, ma sarebbe più logico che esistesse un comando flush-history.)

È stato utile?

Soluzione

Per scrivere la cronologia della shell nel file della cronologia, eseguire

fc -W

fc ha alcuni flag utili, guardali tutti in man zshbuiltins.

Puoi anche automatizzare completamente la lettura e la scrittura del file di cronologia dopo ogni comando (condividendo così il tuo file di cronologia automaticamente con ogni zsh in esecuzione) dicendo setopt -o sharehistory. Leggi altre opzioni relative alla cronologia in man zshoptions.

Altri suggerimenti

Ho anche appena trovato:

setopt INC_APPEND_HISTORY

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

E usa

fc -R

da leggere nella cronologia (dopo averla scritta) in una shell zsh esistente.

appen sotto la riga a ~ / .zshrc, salverà 1000 voci che aumentiamo modificando il valore di HISTSIZE e SAVEHIST

HISTSIZE=1000
if (( ! EUID )); then
  HISTFILE=~/.zsh_history_root
else
  HISTFILE=~/.zsh_history
fi
SAVEHIST=1000
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top