Saya ingin menjaga stempel waktu pada perintah yang masuk ke Bash $ HISTFILE saya, mungkinkah?
Saya tidak berhasil mengaturnya menggunakan man bash
sebagai sumber informasi.
Pilihan saya yang lain adalah sebagai berikut:
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
Saya seharusnya menyebutkan saya di OS X Mountain Lion (menghela nafas). uname -a
memberi saya:
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
dan echo $BASH_VERSION
memberi saya:
3.2.48(1)-release
Sudah mencoba menambahkan ini:
export HISTTIMEFORMAT='%b %d %I:%M:%S %p '
dan itu hanya awalan cap waktu semacam ini untuk perintah:
#1349057791
Saya mencoba mengulang kembali variabel ( echo $HISTTIMEFORMAT
), ia memiliki nilai yang tepat.
Menarik!
Saya bahkan menghapus. Profil sepenuhnya untuk men-debug ini. Masih hanya stempel waktu lucu:
#1349058320
Saya tidak tahu bagaimana cara memecahkan masalah ini lebih lanjut ... :(
Solusi : Saya menggunakan skrip yang membaca $ HISTFILE secara langsung, bukan riwayat bawaan sehingga cap waktu berbasis zaman (detik sejak Waktu Universal Terkoordinasi (UTC) 1 Januari 1970) tidak diterjemahkan menggunakan string pemformatan tanggal . Biasa-biasa history
saja, saya akan menggunakannya.
sumber
HISTTIMEFORMAT
?Jawaban:
Ya, letakkan ini di
~/.bashrc
:Kemudian, jalankan perintah berikut:
Ini akan terlihat seperti ini:
Penjelasan dari output:
id
sumber
source ~/.bashrc
?history
perintah builtin, jangan melihat file sejarah secara langsung.history
perintah, sebaliknya saya menggunakan editor teks untuk menemukan perintah yang saya cari, dan alangkah baiknya memiliki referensi tanggal yang dapat dibaca manusia.