simpan bash history, secara teratur

9

Saya telah menyiapkan bash untuk menyimpan riwayat, ke file. Ia melakukan ini setiap kali bash keluar [dengan benar]. Karena kadang-kadang bash tidak keluar dengan benar maka sejarah akan hilang.

Jadi pertanyaannya adalah dapatkah saya menyiapkan bash untuk menyimpan riwayat lebih teratur?


Saya menjalankan Debian Gnu (versi 6, Squeeze) dengan kernel Linux.

versi bash: GNU bash, versi 4.1.5 (1) -release (i486-pc-linux-gnu)

ctrl-alt-delor
sumber

Jawaban:

8

simpan ini ke bash_profile atau bashrc Anda

shopt -s histappend

PROMPT_COMMAND="history -a;$PROMPT_COMMAND"

d4v3y0rk
sumber
Apakah ini masih merupakan jawaban yang valid? Di sistem saya, ada entri di shopt -s histappendbawah /etc/bash/bashrc. Namun, setiap keluar yang tidak bersih dari menjalankan shell, kehilangan sejarah baris perintahnya.
Nikos Alexandris
-1

Mungkin $ HISTFILE Anda dimiliki oleh root. Dengan asumsi Anda menggunakan bash sebagai shell login Anda. Berikut cara memeriksa:

$ [ -z $HISTFILE ] && echo need to set HISTFILE || ls -l $HISTFILE
-rw------- 1 root root 36639 May 21 19:48 /home/joeb/.bash_history

Default untuk HISTFILE harus ~ / .bash_history, jika Anda melihat kesalahan "perlu mengatur HISTFILE" atau jika $ HISTFILE bukan ~ / .bash_history, maka Anda harus memeriksa ~ / .profile atau ~ / .bash_profile atau ~ /. bashrc untuk memastikan itu tidak diatur atau diatur ulang secara tidak benar

Biasanya, itu hanya dimiliki oleh root, jadi setel ulang saja:

$ chown joeb.joeb $HISTFILE
$ ll $HISTFILE
-rw------- 1 joeb joeb 36639 May 21 19:48 /home/joeb/.bash_history

Logout lalu login.

$ history

Harus menunjukkan set perintah terakhir yang dimasukkan sebelum file dimiliki oleh root, diikuti oleh perintah yang dimasukkan setelah kepemilikan file diubah.

focus4success
sumber
3
Karena OP mengatakan bahwa riwayat disimpan ketika bash keluar secara normal, masalahnya tidak ada hubungannya dengan izin. Mungkin jawaban Anda masih bisa bermanfaat bagi seseorang yang memiliki masalah dengan bash history.
Dmitry Grigoryev