GNU/Linux >> Belajar Linux >  >> Linux

mengapa menghapus sejarah bash tidak cukup?

Dalam beberapa kasus (beberapa versi bash), melakukan:

$ history -c; history -w

Atau cukup

$ history -cw

Akan menghapus riwayat di memori (panah atas dan bawah tidak akan memiliki perintah untuk dicantumkan) lalu tulis itu ke $HISTFILE file (jika $HISTFILE terpotong oleh instance bash yang sedang berjalan).

Terkadang bash memilih untuk tidak potong $HISTFILE file bahkan dengan histappend opsi tidak disetel dan $HISFILEZIZE setel ke 0.

Dalam kasus seperti itu, opsi nuke selalu berfungsi:

history -c; >$HISTFILE

Itu menghapus daftar riwayat perintah yang direkam dalam memori dan semua perintah yang sebelumnya direkam ke file. Itu akan memastikan bahwa shell yang sedang berjalan tidak memiliki riwayat yang tercatat baik di memori atau disk, namun, instance bash lainnya yang sedang berjalan (di mana riwayat aktif) mungkin memiliki salinan lengkap dari perintah yang dibaca dari $HISTFILE saat bash dimulai (atau saat history -r dieksekusi).

Jika juga mensyaratkan bahwa tidak ada lagi (tidak ada perintah baru) dari sesi saat ini yang akan ditulis ke file riwayat, lalu, unset HISTFILE akan mencegah pencatatan semacam itu.


bash memiliki riwayat sesi di memori yang ditulis ke file jika variabel shell HISTFILE disetel ke nama file saat bash keluar.

Jika Anda menghapus file yang ditunjuk oleh HISTFILE , hapus variabel itu, dan keluar dari bash , maka sesi shell tersebut tidak akan meninggalkan riwayat persisten.

Gagal menghapus HISTFILE variabel tetapi menghapus file hanya akan mengosongkan riwayat persisten, tetapi riwayat sesi saat ini akan disimpan saat shell keluar.


Linux
  1. Mengurai riwayat Bash di Linux

  2. Perintah Tidak Ditemukan di Bash Tetap

  3. Mengapa Bash Tidak Menyimpan Perintah yang Dimulai Dengan Spasi?

  1. Pembersihan Otomatis Sejarah Bash?

  2. Mengapa `keluar &` Tidak Berfungsi?

  3. Array di Bash Tidak Ditemukan

  1. bash sh - perintah tidak ditemukan

  2. Setel ulang posisi pencarian riwayat bash

  3. Mengapa Bash ada di mana-mana (di sebagian besar jika tidak semua distribusi Linux)?