Gostaria de manter registros de data e hora nos comandos registrados no meu Bash $ HISTFILE, é possível?
Não consegui configurá-lo usando man bash
como fonte de informação.
Minhas outras opções são as seguintes:
function thebanana() {
local -r -a bash_commands=(
"ls"
# ... more coconut commands
)
for bash_command in "${bash_commands[@]}"; do
printf "${bash_command}"
printf ":"
done
}
export HISTFILE=banana
export HISTIGNORE="$(thebanana)"
export HISTSIZE=999999
export HISTFILESIZE=999999999
export HISTCONTROL=ignoredups:erasedups
Eu deveria ter mencionado que estou no OS X Mountain Lion (suspiro). uname -a
me dá:
Darwin CoconutMac.local 12.2.0 Darwin Kernel Version 12.2.0: Sat Aug 25 00:48:52 PDT 2012; root:xnu-2050.18.24~1/RELEASE_X86_64 x86_64
e echo $BASH_VERSION
me dá:
3.2.48(1)-release
Tentei adicionar isso:
export HISTTIMEFORMAT='%b %d %I:%M:%S %p '
e prefixa apenas esse tipo de registro de data e hora para comandos:
#1349057791
Eu tento repetir a variável ( echo $HISTTIMEFORMAT
), ela tem o valor certo.
Interessante!
Eu até removi o .profile completamente para depurar isso. Ainda apenas timestamps engraçados:
#1349058320
Não sei como solucionar ainda mais esse problema ... :(
Solução : eu estava usando um script que lê diretamente o $ HISTFILE, não o histórico incorporado, portanto o carimbo de data / hora baseado em época (segundos desde o Tempo Universal Coordenado (UTC) de 1 de janeiro de 1970) não estava sendo traduzido usando a cadeia de formatação de data . Plain-old history
funciona bem, eu vou usar isso em seu lugar.
fonte
HISTTIMEFORMAT
?Respostas:
Sim, coloque isso em
~/.bashrc
:Em seguida, execute os seguintes comandos:
Isso parecerá assim :
Explicações da saída:
id
fonte
source ~/.bashrc
?history
comando interno, não olhe diretamente para o arquivo de histórico.history
comando, em vez disso, uso um editor de texto para encontrar os comandos que estou procurando, e seria bom ter uma referência de data legível por humanos.