Come sappiamo la history di linux mostra gli ultimi comandi eseguiti sulla shell. Torna molto utile sapere quando abbiamo lanciato alcuni comandi. Soprattutto su un server multi utente.
Per modificare il modo in cui viene creata la history dobbiamo analizzare il file .bashrc situato nella home dello user.
Le righe standard che interessano la history sono queste:
# don't put duplicate lines in the history. See bash(1) for more options # ... or force ignoredups and ignorespace HISTCONTROL=ignoredups:ignorespace # append to the history file, don't overwrite it shopt -s histappend # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) HISTSIZE=1000 HISTFILESIZE=2000
Questo invece è il mio file .bashrc con qualche riga modificata:
# don't put duplicate lines or lines starting with space in the history. # See bash(1) for more options HISTCONTROL=ignoredups # append to the history file, don't overwrite it shopt -s histappend # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) HISTSIZE= HISTFILESIZE= HISTTIMEFORMAT="[%F %T] " HISTFILE=~/.bash_eternal_history HISTIGNORE='history' PROMPT_COMMAND='history -a'
In HISTCONTROL ho tolto ignorespace così quando scriviamo un comando con uno spazio davanti viene comunque scritto nella history.
Togliendo i parametri in HISTSIZE e HISTFILESIZE eliminiamo il limite di scrittura del file.
Infine ho aggiunto
HISTTIMEFORMAT=”[%F %T]”
con il quale indichiamo che i comandi devono essere preceduti dall’orario di esecuzione.
HISTFILE=~/.bash_eternal_history
con il quale indichiamo che la history deve essere salvata in questo file.
HISTIGNORE=’history’
con il quale indichiamo che il comando history non deve essere salvato.
Di default la shell memorizza la history solo dopo il logout. Capita spesso che la shell crasha quando siamo connessi ad un server remoto, perdendo quindi la history dei comandi eseguiti fin’ora. Con il parametro PROMPT_COMMAND=’history -a’ risolviamo questo problemino.
Per attivare subito questi parametri eseguiamo il comando:
. .bashrc
A volte capita di voler cancellare qualche comando registrato nella history, e lo facciamo usando
history -d 1234
dove 1234 e’ il numero della riga della history che si vuole cancellare.