Anda dapat menghapus hanya baris yang menyinggung dari bash
's sejarah, bukannya membersihkan seluruh sejarah. Cukup hapus baris dengan -d
bendera, lalu simpan (tulis) riwayat baru dengan -w
bendera:
$ history
351 ssh [email protected]
352 my_password
$ history -d 352
$ history -w
Ada dua bagian untuk ini:
bash
menyimpan riwayat dalam file~/.bash_history
yang, secara default, ditulis di akhir sesihistory
yang disimpan dalam memori
Agar aman, Anda harus menghapusnya dari sesi:
history -c
dan potong file riwayat seperlunya:
> ~/.bash_history
Jika sesi Anda di mana Anda mengetik kata sandi masih terbuka, maka cara lain untuk menutupi jejak Anda adalah mengatur HISTFILE
variabel ke perangkat nol sehingga riwayat tidak akan ditulis ke ~/.bash_history
saat sesi keluar:
export HISTFILE=/dev/null
Karena bash (setidaknya semua versi historis dan terkini yang saya ketahui) tidak secara otomatis menyimpan riwayat sampai Anda keluar, strategi yang berlaku umum ketika Anda mengetik perintah yang ingin Anda pastikan tidak pernah disimpan adalah dengan segera mengetik:
kill -9 $$
Ini membunuh shell dengan SIGKILL
, yang tidak dapat ditangkap, sehingga shell tidak memiliki cara untuk menyimpan apa pun saat keluar.
Sebagian besar pendekatan lain melibatkan scrubbing setelah fakta (yaitu setelah data masuk ke disk), yang memiliki lebih banyak peluang untuk kesalahan (kehilangan salinan), terutama jika sistem mungkin menggunakan btrfs atau serupa.