Sim. Você pode copiar o arquivo de histórico antigo para uma nova instalação. Você também pode mesclá-lo com o antigo / novo.
- Se você não tiver o
HISTTIMEFORMAT
configurado, o arquivo de histórico conterá apenas comandos. -
Se estiver definido, haverá um timestamp precedido por um hash para cada comando:
#1122334455 command1 #1122334459 command2
No entanto, observe se você emitir, por exemplo:
$ echo 'foo
> bar
> baz' >> some_file
Ele será salvo como:
#1122334459
echo 'foo
bar
baz' >> some_file
Mas history
vai mostrar:
4 CMD_TIME echo 'foo
5 CUR_TIME bar
6 CUR_TIME baz' >> some_file
Comandos como:
$ foo | \
bar | \
baz
são preservados como um se você definir shopt -s cmdhist
.
Eu uso vários, mas muitas vezes algo como:
HISTSIZE=500000
HISTFILESIZE=500000
# Ignore dupes and space commands
HISTCONTROL=ignoreboth
# Save and show timestamps
HISTTIMEFORMAT='%F %T '
# append to the history file, don't overwrite it
shopt -s histappend
# Save and reload the history after each command finishes
# This one I have a function to turn on/off. Effect is that commands are
# accessible in all terminals after execution.
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
- Mais em
shopt
. (Use$ shopt
para mostrar as configurações atuais). - Mais em
history
.
Também faço backup de arquivos de histórico regularmente e tenho alguns scripts e aliases para pesquisar o histórico - até mesmo muitos anos atrás no tempo. Às vezes lembro que fiz algo parecido com o que estou fazendo há 1.5 anos e posso procurar rapidamente na história.
Quanto aos timestamps, uso duas variantes. history
mostra com carimbos de data / hora e outro show sem definir temporariamente HISTTIMEFORMAT
to "".
Se a data e hora estiverem faltando, a hora atual (aproximadamente) será usada. Se os timestamps estiverem presentes, o histórico será classificado por vezes.
Assim:
.bash_history
(registros de data e hora simplificados)
#timestamp 000012
some command
#timestamp 000002
some other command
$ history
1 13 aug 2013 10:44 some other command
2 13 aug 2013 12:13 some command
No entanto, é razoável acreditar que um arquivo de histórico ordenado é mais eficaz (o bash não precisa fazer nenhum embaralhamento).
Como para lookup Ctrl-R é frequentemente útil. Para outras coisas, veja por ex. Comandos para manipular a história , Event Designators , Alguns Comandos Diversos etc.