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)

Jawaban:


8

simpan ini ke bash_profile atau bashrc Anda

shopt -s histappend

PROMPT_COMMAND="history -a;$PROMPT_COMMAND"


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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.