Saya ingin .bash_history
file saya menjadi tidak terbatas. mis. Jadi saya selalu bisa kembali dan melihat bagaimana saya membangun / mengkonfigurasi sesuatu, atau apa itu perintah bagus, atau bagaimana beberapa perintah memecahkan sesuatu minggu yang lalu. Bagaimana cara mengubah pengaturan ini?
350
Jawaban:
Setel
HISTSIZE
danHISTFILESIZE
dalam .bashrc ke string kosong:Di bash 4.3 dan yang lebih baru, Anda juga dapat menggunakan
HISTSIZE=-1 HISTFILESIZE=-1
:sumber
HISTSIZE= HISTFILESIZE=
hasil dalam sepenuhnya menonaktifkan riwayat bash, setidaknya untuk saya.HISTSIZE=-1 HISTFILESIZE=-1
menonaktifkan riwayat saya, saatHISTSIZE= HISTFILESIZE=
melakukan trik. CentOS 7 di sini.HISTSIZE= HISTFILESIZE=
Anda harusexport HISTSIZE=
export HISTFILESIZE=
Setelah banyak, iterasi jelek dan kasus tepi aneh selama bertahun-tahun, saya sekarang memiliki bagian singkat dari .bashrc saya didedikasikan untuk ini.
Pertama, Anda harus mengomentari atau menghapus bagian .bashrc Anda (default untuk Ubuntu) Jika tidak, maka lingkungan tertentu (seperti
screen
sesi lari ) masih akan memotong riwayat Anda:Kedua, tambahkan ini ke bagian bawah .bashrc Anda:
Catatan: setiap perintah ditulis segera setelah dijalankan, jadi jika Anda secara tidak sengaja menempelkan kata sandi, Anda tidak bisa hanya "membunuh -9 %%" untuk menghindari penulisan riwayat, Anda harus menghapusnya secara manual.
Perhatikan juga bahwa setiap sesi bash akan memuat file histori lengkap dalam memori, tetapi bahkan jika file histori Anda tumbuh hingga 10MB (yang akan memakan waktu yang sangat lama ) Anda tidak akan melihat banyak efek pada waktu startup bash Anda.
sumber
HISTFILESIZE=
dan kosongkanHISTSIZE=
daripada -1, dan pastikan Anda tidak memiliki deklarasi lain dari param tersebut di .bashrc atau .bash_profile atau .profile..bashrc
, saya punya setup setelah pada file lain dimuat oleh .bashrc ..., sekarang bekerja! Terima kasih!cat ~/.bash_history >>~/.bash_eternal_history
HISTFILESIZE
(dan mungkinHISTSIZE
) akan segera berlaku tidak dapat terlalu ditekankan .Seperti yang dikatakan Jörg Beyer di atas,
HISTSIZE
danHISTFILESIZE
merupakan kuncinya.Selain itu, Anda harus pasti memeriksa variabel lingkungan
HISTCONTROL
, yang memungkinkan Anda melakukan hal-hal keren seperti tidak menyimpan perintah sejarah duplikat (HISTCONTROL=erasedups
). Tidak ada gunanya memiliki riwayat tanpa batas jika Anda harus menelusuri ratusan bariscd ..
atau serupa.Tautan: di sini , dan bekerja dengan sejarah bash . FAQ Variabel bash juga layak untuk dijelajahi .
sumber
Ctrl-r
somecharsCtrl-o
Ctrl-o
Ctrl-o
Ctrl-o
. Itu sebabnya saya menyimpan duplikat dalam sejarah.Ctrl-o
?Ctrl-o
menjalankan perintah saat diminta dan segera menunjukkan perintah setelah sebelumnya dalam sejarah. Satu manfaat adalah bahwa setelah menggunakanCtrl-r
untuk menemukan perintah lama (mungkin menggunakan panah atas dan bawah untuk pindah ke perintah tetangga dalam sejarah), cukup untuk terusCtrl
ditekan dan tekano
beberapa kali untuk menjalankan lagi serangkaian perintah sebelumnya, bahkan dalam loop tak terbatas jika kamu mau. Lihat juga GNU Readline - WikipediaAda (setidaknya) dua vars yang relevan di sini:
Saya pikir kita dapat menyetujui bahwa istilah tidak terbatas seringkali sama dengan sangat besar (atau apakah Anda memiliki penyimpanan file tanpa batas?). Jadi atur saja nilainya sangat besar.
sumber