Apakah ada cara untuk sementara waktu menangguhkan pelacakan riwayat di bash, sehingga dapat memasuki semacam mode "penyamaran"? Saya memasukkan barang-barang ke terminal saya yang saya tidak ingin mencatat, informasi keuangan yang sensitif.
bash
command-history
Naftuli Kay
sumber
sumber
HISTFILE
hanya diperiksa ketika bash keluar, jadi metode pertama tidak berfungsi sebagaimana mestinya (jika Anda mengembalikan nilai, perintah akan disimpan).set +o history
tidak bekerja sesuai petunjuk.set +o history
danset -o history
untuk beralih bolak-balik ketika saya sedang melakukan hal-hal rahasia;)unset HISTFILE
tidak bekerja.set -/+o history
bekerja seperti pesona! terima kasihMenggunakan bash, atur
HISTCONTROL="ignorespace"
dan awali dengan spasi perintah apa pun yang Anda tidak ingin direkam dalam sejarah. Jika Anda lupa mengambil tindakan apa pun, ada jugahistory -d <number>
untuk menghapus entri tertentu atauhistory -c
untuk menghapus seluruh riwayat perintah.sumber
Pastikan itu
HISTCONTROL
berisiignorespace
. Anda mungkin ingin menambahkanHISTCONTROL=ignorespace
(HISTCONTROL=ignoredups:ignorespace
atau sesuatu) ke blog Anda~/.bashrc
. Kemudian setiap baris perintah yang dimulai dengan spasi dihilangkan dari sejarah.Kemungkinan lain adalah memulai sesi bash baru yang tidak menyimpan riwayatnya.
sumber
Jika Anda perlu menghindari menyimpan beberapa perintah dan Anda masih ingin menggunakan panah untuk mengakses perintah sebelumnya, gunakan:
Ada empat cara (level) untuk mengontrol bagaimana perintah disimpan.
Yang pertama dan paling sederhana adalah menggunakan
ignorespace
(atau ignoreboth):Itu akan memungkinkan untuk menggunakan spasi sebelum perintah yang Anda ingin hindari direkam dalam daftar memori
history
. Dan, akibatnya, karena tidak ada perintah yang direkam dalam memori yang dapat dikirim ke file, juga akan menghindari satu perintah untuk dikirim ke file yang terdaftar di$HISFILE
.Hindari merekam perintah ke file di
$HISTFILE
:Null
HISTFILE=''
dan / atau diatur untukHISTFILE=/dev/null
bekerja dengan efek yang sama. Memahami bahwa perintah masih direkam ke daftar memori, cobahistory
perintah, atau panah atas.Peringatan: jika HISTFILE diatur ulang sebelum shell ada, semua yang telah direkam dalam memori tetap dapat ditulis ke file.
Hindari merekam perintah baru ke daftar riwayat di memori. Dan, karena tidak ada dalam memori, tidak dapat direkam ke file.
Aktifkan kembali dengan
shopt -os history
(atauset -o history
)Hapus semua perintah dari daftar sejarah di memori:
Semua perintah terhapus (dari memori) dan karena itu tidak ada yang dapat disimpan ke file, tentu saja, sampai variabel diatur kembali ke beberapa nilai numerik yang valid.
sumber
man history
tidak akan memotongnya untuk sebagian besar dari kita.HISTIGNORE
, yangsubsumes
fungsinyaHISTCONTROL
.LESS=+'/^ *HISTI' man bash
(bukankah itu "halaman manual"?). @NathanBasaneseAda satu cara sederhana untuk mematikan histori, jadi perintah tidak akan disimpan dalam
.bash_history
file.Anda harus meletakkan spasi putih atau ruang tab di depan perintah apa pun, sehingga perintah itu tidak akan disimpan dalam riwayat. Sebagai contoh:
The
pwd
perintah tidak akan mendapatkan toko dalam sejarah, karena memiliki spasi di depan.sumber
Itu cara saya. Kalau-kalau HISTORY / HISTFILE / HISTCONTROL yang tidak disetel, dll ... tidak berfungsi, mengekspornya ke / dev / null selalu berhasil untuk saya.
sumber
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin16)