Apakah ada cara untuk mengecualikan perintah seperti rm -rf
, svn revert
agar tidak disimpan dalam bash history? Sebenarnya saya, secara tidak sengaja, telah mengeluarkannya beberapa kali walaupun saya tidak memiliki niat untuk melakukannya, hanya karena saya melakukan sesuatu dengan cepat dan itu terjadi. Karenanya hasil dari kehilangan banyak pekerjaan yang saya lakukan sejauh ini.
bash
command-history
Ravi Gupta
sumber
sumber
Jawaban:
Anda mungkin ingin
$HISTIGNORE
: "Daftar pola yang dipisahkan dengan titik dua yang digunakan untuk memutuskan baris perintah mana yang harus disimpan pada daftar sejarah." Baris ini di ~ / .bashrc Anda harus melakukan pekerjaan:Selain itu, Anda dapat menambahkan spasi di awal perintah untuk mengeluarkannya dari riwayat. Ini berfungsi asalkan
$HISTCONTROL
mengandungignorespace
atauignoreboth
, yang merupakan default pada setiap distro yang saya gunakan.sumber
y
, setelah semuacp
(aliascp -i
) selesai. Jadi saya aliasy
sebagaialias y='$(history | awk '"'"'END{if(NF==2 && $2=="y"){print "history -d " $1}}'"'"')'
... TapiHISTIGNORE
adalah metode yang lebih baik seperti yang terlihat. :) Terima kasih.export HISTCONTROL="ignorespace"
Anda~/.bashrc
untuk mengabaikan perintah yang dimulai dengan spasi.Meskipun sedikit berbeda dari pertanyaan OP, ketika saya sengaja tidak ingin perintah disimpan dalam bash history, saya mengawali mereka dengan spasi. Bekerja di Ubuntu dan variannya, tidak yakin apakah itu bekerja di semua sistem.
sumber
$HISTCONTROL
(lihat jawaban saya).Saya biasanya membunuh bash-instance saya ketika saya telah melakukan hal-hal yang tidak saya inginkan dalam sejarah.
$$ mewakili proses saat ini - bash ketika Anda menjalankannya dari shell. Anda dapat menggunakan $ BASHPID, tetapi itu lebih banyak mengetik :-)
sumber
HISTFILE=/dev/null
adalah pilihan yang lebih baik.HISTFILE=
bekerja di bash dan ksh.unset HISTFILE