Dulu saya berpikir menghapus riwayat bash saya sudah cukup untuk menghapus riwayat bash saya, tetapi kemarin kucing saya mengacaukan di sisi kanan keyboard saya dan ketika saya kembali ke komputer saya melihat sesuatu yang saya ketik sebulan yang lalu, kemudian saya mulai tekan semua tombol seperti orang gila mencari apa yang bisa memicu itu. Ternyata tombol UPARROW menunjukkan riwayat bash saya bahkan setelah menghapus .bash_history.
Bagaimana saya bisa menghapus riwayat bash saya secara nyata?
~/.bash_history
benar-benar menghapus~/.bash_history
.... tetapi (kecuali jika Anda mengambil langkah-langkah untuk mencegahnya, seperti menghapus riwayat dalam memori dengan menjalankanhistory -c
tepat sebelum Anda logout atau pengaturanHISTFILE=/dev/null
atau hanyaunset
itu) bash hanya akan menyimpan riwayat saat ini lagi ketika keluar . BTW,HISTSIZE
env var memberi tahu bash berapa banyak baris histori yang harus disimpan dalam memori, danHISTFILESIZE
memberitahu bash jumlah maksimum garis histori untuk disimpan. kedua ini dapat diatur dalam, misalnya, Anda~/.bashrc
. PS: kucing Anda pantas mendapat hadiah ke-2 karena mengajarkan Anda pelajaran yang berharga :)Jawaban:
Dalam beberapa kasus (beberapa versi bash), melakukan:
Atau sederhananya
Akan menghapus riwayat dalam memori (atas dan bawah panah akan memiliki perintah ke daftar) dan kemudian menulis bahwa pada
$HISTFILE
berkas (jika$HISTFILE
akan dipotong oleh contoh pesta berjalan).Terkadang bash memilih untuk tidak memotong
$HISTFILE
file bahkan denganhistappend
opsi tidak disetel dan$HISFILEZIZE
diatur ke 0.Dalam kasus seperti itu, opsi nuklir selalu berfungsi:
Yang menghapus daftar riwayat perintah yang direkam dalam memori dan semua perintah yang sebelumnya direkam ke file. Itu akan memastikan bahwa shell yang berjalan tidak memiliki histori yang direkam baik di memori atau disk, namun, instance bash yang sedang berjalan (ketika histori aktif) dapat memiliki salinan lengkap perintah yang dibaca dari
$HISTFILE
kapan bash dimulai (atau ketika ahistory -r
dijalankan) .Jika juga diperlukan bahwa tidak ada yang lain (tidak ada perintah baru) dari sesi ini akan ditulis ke file histori, maka,
unset HISTFILE
akan mencegah logging tersebut.sumber
history -c && history -r
akan mengganti riwayat Anda saat ini dengan riwayat yang dimodifikasi secara manual. Dalam beberapa kasus, itu mungkin lebih baik daripada membuang semua sejarah.bash
memiliki riwayat sesi dalam memori yang dituliskan ke file jika variabel shellHISTFILE
diatur ke nama file saatbash
keluar.Jika Anda menghapus file yang ditunjuk oleh
HISTFILE
, setel variabel itu, dan keluarbash
, maka sesi shell itu tidak akan meninggalkan riwayat persisten.Gagal
HISTFILE
menghapus variabel, tetapi menghapus file hanya akan mengosongkan riwayat persisten, tetapi riwayat sesi saat ini akan disimpan ketika shell keluar.sumber
history -c; history -w
akan menghapus memori dan riwayat file. Membatalkan pengaturan HISTFILE hanya diperlukan jika tidak ada perintah lebih lanjut harus dicatat ke histori (tidak persis apa yang diminta IMhO)."Bagaimana saya bisa menghapus riwayat pesta saya nyata?"
Keluar dari bash, mulai shell yang berbeda, hapus file histori bash.
atau
logout, masuk ke akun lain yang memiliki izin menulis pada file histori, hapus file histori.
sumber
Sambil meninggalkan shell, lakukan semuanya sekaligus, seperti
sumber