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.
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.
Jawaban:
Ini seharusnya yang Anda cari:
unset HISTFILE
man bash
Jika HISTFILE tidak disetel, atau jika file histori tidak dapat ditulis, histori tidak disimpan.
Atau, jika Anda ingin mematikannya dan menghidupkannya lagi, mungkin lebih mudah untuk digunakan set
:
set +o history
set -o history
set +o history
dan set -o history
untuk beralih bolak-balik ketika saya sedang melakukan hal-hal rahasia;)
unset HISTFILE
tidak bekerja. set -/+o history
bekerja seperti pesona! terima kasih
Menggunakan 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 juga history -d <number>
untuk menghapus entri tertentu atau history -c
untuk menghapus seluruh riwayat perintah.
Pastikan itu HISTCONTROL
berisi ignorespace
. Anda mungkin ingin menambahkan HISTCONTROL=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.
$ bash
$ unset HISTFILE
$ sooper-sekret-command
$ exit
$ #back in the parent shell
Jika Anda perlu menghindari menyimpan beberapa perintah dan Anda masih ingin menggunakan panah untuk mengakses perintah sebelumnya, gunakan:
$ bash # open a new session.
$ unset HISTFILE # avoid recording commands to file.
$ commands not recorded
.
.
$ exit
$
Ada empat cara (level) untuk mengontrol bagaimana perintah disimpan.
Yang pertama dan paling sederhana adalah menggunakan ignorespace
(atau ignoreboth):
$ HISTCONTROL="ignorespace${HISTCONTROL:+:$HISTCONTROL}"
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
:
$ unset HISTFILE
Jika tidak disetel, riwayat perintah tidak disimpan saat shell keluar.
Null HISTFILE=''
dan / atau diatur untuk HISTFILE=/dev/null
bekerja dengan efek yang sama. Memahami bahwa perintah masih direkam ke daftar memori, coba history
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.
$ shopt -ou history # or set +o history
Aktifkan kembali dengan shopt -os history
(atau set -o history
)
Hapus semua perintah dari daftar sejarah di memori:
$ HISTSIZE=0
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.
man history
tidak akan memotongnya untuk sebagian besar dari kita.
HISTIGNORE
, yang subsumes
fungsinya HISTCONTROL
.
LESS=+'/^ *HISTI' man bash
(bukankah itu "halaman manual"?). @NathanBasanese
Ada 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:
$ ls
print the list of file
$ history
ls
history
$ pwd
print the current working directory
$ history
ls
history
The pwd
perintah tidak akan mendapatkan toko dalam sejarah, karena memiliki spasi di depan.
export HISTFILE=/dev/null
Itu cara saya. Kalau-kalau HISTORY / HISTFILE / HISTCONTROL yang tidak disetel, dll ... tidak berfungsi, mengekspornya ke / dev / null selalu berhasil untuk saya.
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin16)
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.