Pertanyaan Bagaimana cara menghapus riwayat bash sepenuhnya?


Saya ingin menghapus semua perintah sebelumnya dari riwayat server saya. Saya menggunakan history -c dan tampaknya semua hal telah dihapus tetapi ketika saya ssh ke server, semua perintah masih ada.

Bagaimana saya dapat menghapusnya secara permanen?


221
2017-09-23 05:44


asal




Jawaban:


Berkas ~/.bash_history memegang sejarah.

Untuk menghapus sejarah bash sepenuhnya di server, buka terminal dan ketik

cat /dev/null > ~/.bash_history

Cara alternatif lainnya adalah dengan menautkan ~/.bash_history untuk /dev/null

Namun,

Satu efek samping yang mengganggu adalah entri sejarah memiliki salin dalam memori dan itu akan terjadi flush kembali ke file saat Anda logout.

Untuk menyiasatinya, gunakan perintah berikut (bekerja untuk saya):

cat /dev/null > ~/.bash_history && history -c && exit

289
2017-09-23 05:51



Anda juga dapat menempatkan perintah di atas di .bashrc & .bash_logout. apa artinya ketika Anda masuk Anda akan memiliki riwayat yang jelas & saat Anda keluar riwayat Anda akan dihapus - Qasim
Mengapa Anda perlu / dev / null di sana? Tidak akan > ~/.bash_hstory cukup? - configurator
ya itu sudah cukup! - fromnaboo
Saya mencoba melakukannya di kotak raspberry saat terhubung melalui SSH. Saya menambahkan perintah di atas (cat / dev / null> ~ / .bash_history && history -c && exit) ke keduanya .bashrc & .bash_logout seperti yang disarankan oleh @Qasim. Sekarang segera setelah saya terhubung melalui SSH, host jarak jauh menutup koneksi (setelah mencetak motd). Bantuan: / - Advanced
Pergi untuk menunjukkan apa yang terjadi ketika Anda membabi buta melakukan sesuatu tanpa membaca dengan benar dan tanpa memahami pemrosesan dan aliran data. Ini juga menunjukkan perangkap komunikasi yang buruk. Apa yang dilakukan devav2 adalah menjalankannya sekali, dan apa yang seharusnya ditulis Qasim adalah menghapus perintah keluar sebelum menambahkannya di skrip login. - Sri


Apa yang harus dilakukan:

Di setiap shell bash terbuka (Anda mungkin memiliki beberapa terminal terbuka):

history -c
history -w

Mengapa: Seperti yang disebutkan di atas, history -c mengosongkan file ~/.bash_history. Penting untuk dicatat bahwa shell bash tidak segera mem-flush history ke file bash_history. Jadi, penting untuk (1) menyiram sejarah ke file, dan (2) membersihkan riwayat, di semua terminal. Itulah yang dilakukan perintah di atas.

Referensi: http://www.giannistsakiris.com/index.php/2007/09/13/how-to-clear-bash-history-and-what-to-watch-out-for/


115
2018-04-11 20:55



Sebenarnya, sebaliknya bekerja untukku. - kristianp
Dalam banyak kasus, Anda bisa menggabungkan kedua perintah ini bersama-sama: history -cw - Elliot
Untuk beberapa alasan ini tidak bekerja pada Ubuntu 14.04, mungkin yang lain. Seharusnya tapi tidak. Jika Anda mengeluarkan perintah "history -cw" Anda dapat mengkonfirmasi dengan panah atas bahwa sejarah tidak ada lagi, tetapi jika Anda memulai jendela terminal lain (di desktop Unity) dengan shift + klik pada ikon terminal (saya memilikinya disematkan di peluncur) sejarah perintah sudah kembali, tidak masalah berapa kali Anda melakukan "history -cw". "cat / dev / null> ~ / .bash_history" adalah satu-satunya cara yang berhasil bagi saya. - Hatoru Hansou
Meskipun saya bukan Ubantu, berfungsi baik untuk shell bash saya di OSX. - Scott Biggs
Ini adalah sejarah -c dan kemudian sejarah -w, Anda pertama-tama membersihkan sejarah lalu menulis perubahan. Ini dengan mudah dikonfirmasi dengan menutup terminal dan membukanya lagi, dengan -w pertama perintah ada lagi, dengan -w sejarah terakhir secara efektif dihapus. - Hatoru Hansou


jalankan perintah berikut untuk menghapus histori selamanya

history -c && history -w

semoga berhasil!


44
2017-08-12 12:39





Ada satu lagi yang lebih sederhana: berlari history -c pada prompt terminal dan hilang semua entri di bash_history mengajukan.


19
2018-03-10 18:10



Tidak, bukan itu. Logout, masuk, panah-up memberi saya segalanya. Anda membutuhkan "sejarah -w" juga. - stolsvik
Jika Anda membaca pertanyaan OP, Anda akan tahu bahwa menggunakan history -c adalah metode yang tepat yang mengarah ke pertanyaan ini. - J.Money


Cara lain untuk melakukan ini adalah menghapus ~/.bash_history file dengan menggunakan rm ~/.bash_history perintah. Ketika Anda masuk lain kali, .bash_history file akan dibuat secara otomatis.


10
2017-09-23 06:18



Setidaknya pada beberapa OS ~ / .bash_history ditulis ke disk saat Anda logout - Tidak yakin tentang * buntus. - d-_-b


Hapus riwayat shell saat ini:

history -c

Ketika Anda log out, sejarah shell Anda saat ini ditambahkan ke ~ / .bash_history, yang merupakan cache sejarah shell sebelumnya, ke angka maksimum (lihat HISTFILESIZE di "man bash").

Jika Anda ingin menghapus seluruh sejarah, maka pada dasarnya Anda harus mengosongkan ~ / .bash_history yang telah disarankan oleh banyak masukan di atas. Seperti:

history -c && history -w

Ini membersihkan sejarah shell saat ini dan kemudian memaksa sejarah shell saat ini (kosong) untuk menimpa ~ / .bash_history .... atau menjadi lebih akurat, ia memaksa untuk menimpa HISTFILE (yang default ke ~ / .bash_history).

Semoga ini membantu.


5
2017-07-10 17:05



Jawaban Anda akurat, tetapi pertanyaannya adalah dua tahun, telah menerima jawaban, dan menyertakan jawaban yang sama yang telah Anda berikan. - Charles Green


rm ~/.bash_history; history -c; logout

Sekarang masuk kembali dan saksikan bahwa panah Anda tidak memberi Anda apa pun.


5
2017-10-01 19:16



@KasiyA Ini tentang server dan sesi ssh, jadi tidak perlu mengedit ... - Radu Rădeanu


Coba yang ini

edit Anda .profile dan tambahkan baris di bawah ini di akhir file

rm -f .bash_history

dengan cara ini, setiap kali Anda masuk, itu akan menghapus file .bash_history Anda secara otomatis untuk Anda. Menambahkan opsi penghapusan -r rekursif tampaknya berbahaya dan tidak diperlukan.


0
2017-08-30 18:06