GNU/Linux >> Linux Esercitazione >  >> Linux

Storia storpiata?

In modalità GUI, quando un utente ha più di un terminale aperto, come fanno i terminali a riscrivere il file di cronologia di quell'utente? il motivo per cui lo chiedo è perché è del tutto possibile che in ciascuno dei terminali l'utente finisca per eseguire comandi diversi. Quindi il file storico finisce per salvare i comandi da tutti i terminali o solo dal primo ad essere aperto? O c'è qualche altro tipo di schema che viene utilizzato per affrontare questa situazione?

Risposta accettata:

Dipende interamente da come la shell sceglie di gestirlo

bash per impostazione predefinita sovrascriverà il file di cronologia con la cronologia locale di ciascuna shell all'uscita, quindi l'ultima shell che esce vince. L'histappend l'opzione lo farà invece aggiungere alla cronologia principale (shopt -s histappend ).

zsh fa lo stesso per impostazione predefinita e ha alcune opzioni per gestirlo:

  • appendhistory — La cronologia di ciascuna shell viene aggiunta al file della cronologia principale all'uscita della shell
  • incappendhistory — Il file della cronologia principale viene aggiornato ogni volta che viene eseguita una riga in qualsiasi shell, invece di attendere che la shell esca
  • sharehistory — Come incappendhistory , ma estrae anche le modifiche dal file della cronologia principale in tutte le shell in esecuzione, quindi puoi eseguire un comando in una shell e quindi premere Su in un'altra shell e guardalo

Linux
  1. Come eseguire un comando in Shell senza salvarlo nella cronologia? [Suggerimenti per Linux]

  2. La sostituzione della cronologia non riesce quando viene implementata nello script della shell?

  3. Sospendere temporaneamente Bash_history su una data shell?

  4. Comando della cronologia di Linux

  5. Torna alla directory precedente nella shell

Naviga rapidamente nella cronologia delle directory in Fish Shell

Abilita timestamp per il comando cronologia in Fish Shell

Shell dei comandi

Utilizzo della funzione di cronologia su Bash Shell su Ubuntu 16.04 LTS Server

Cos'è un file .sh?

Cronologia BASH troncata a 500 righe a ogni accesso