Saya mengeluarkan banyak perintah kemarin di CentOS 7. Tetapi ketika saya ingin mengambil perintah ini hari ini, saya menemukan tidak ada catatan. Ketika saya membuka file .bash_history
, saya masih tidak dapat menemukan perintah yang saya keluarkan kemarin tetapi saya menemukan banyak perintah lama beberapa hari yang lalu. Mengapa perintah terbaru tidak disimpan? Bagaimana saya bisa meningkatkan kemampuan riwayat?
bash
command-history
Mendongkrak
sumber
sumber
Jawaban:
Penyebab paling mungkin untuk item riwayat tidak muncul adalah bukan dengan menetapkan
HISTFILE
ke nol atauHISTSIZE
nol, itu adalah dengan masuk ke mesin yang sama dua kali dan keluar dengan instance bash kedua (di mana Anda melakukan sedikit atau tidak sama sekali) setelah yang mana kamu banyak melakukan. Secara default Bash tidak menggabungkan sejarah dan Bash-exit kedua menimpa.bash_history
yang dengan sangat baik diperbarui oleh Bash-exit pertama.Untuk mencegah hal ini terjadi, Anda dapat menambahkan ke file riwayat alih-alih menimpa, Anda dapat menggunakan
histappend
opsi shell:Lebih detail dalam jawaban ini termasuk cara menggunakan
HISTSIZE
,HISTFILESIZE
danHISTCONTROL
untuk mengontrol ukuran, duplikat dll.sumber
Untuk mengubah ukuran riwayat gunakan dua variabel BASH
HISTSIZE
,HISTFILESIZE
(biasanya diatur dalam.bashrc
).Deskripsi dari halaman manual BASH:
Sebagai contoh, saya memiliki pengaturan berikut di
.bashrc
file saya :sumber
Saya mengalami ini tetapi solusinya tidak tercantum di sini. Penyebabnya hanyalah masalah copy + paste yang sederhana. Saya menyalin perintah dari dokumen lain dan saya memiliki ruang putih ekstra di clipboard. Untuk beberapa alasan ini menyebabkan Ubuntu tidak menyimpan perintah ke file histori.
Gambar di atas adalah perintah yang saya miliki di clipboard saya dari google docs. Perintah ini dijalankan tetapi dihilangkan dari riwayat saya. Saya baru saja kembali dan memilih perintah tanpa spasi dan kemudian muncul dalam sejarah bash.
sumber
Verifikasi bahwa
HISTCONTROL
variabel lingkungan Anda tidak disetel keignorespace
atauignoreboth
.Anda dapat memodifikasinya dengan menetapkan nilai pada file
~/.bash_profile
Anda atau Anda~/.profile
:Dari
bash
halaman manual:sumber