Jalankan perintah terminal tanpa menyimpannya ke .bash_history di OS X?

19

Situs ini mengatakan bahwa di Linux Anda dapat menambahkan spacesebelum perintah terminal untuk mencegahnya .bash_history.

Ini sepertinya tidak berfungsi untuk Mac OS X. Adakah yang tahu cara untuk mengeksekusi satu perintah pada Terminal tanpa menyimpannya ke histori?

Saya tidak ingin menghapus sejarah.

masukkan deskripsi gambar di sini

cwd
sumber
menambahkan `` (spasi) sebelum perintah terminal tidak akan membuatnya keluar dari sejarah
warren
2
@warren, tidak. Anda hanya perlu mengaktifkan fitur ini di bash.
goweon
@Firebat - benar: tetapi karena itu adalah sesuatu yang harus Anda aktifkan, mungkin atau mungkin tidak bekerja di mana saja :)
warren

Jawaban:

24

Tambahkan baris berikut ke ~ / .bashrc

export HISTCONTROL=ignorespace

Kemudian source ~/.bashrcuntuk menyegarkan pengaturan

Ini harus mengaktifkan fitur itu di bash. Jika tidak berhasil, Anda mungkin harus menambahkannya ke ~ / .bash_profile daripada ~ / .bashrc karena OS X memuatnya sedikit berbeda dari linux saya rasa.

goweon
sumber
Bagaimana saya bisa menggunakan dua opsi dengan itu? Saya ingin menggunakan export HISTCONTROL=erasedups,ignorespacetetapi saya pikir sintaks tidak berfungsi ...
cwd
2
export HISTCONTROL=erasedups:ignorespace
goweon
2
Tapi saya pikir itu sebenarnyaexport HISTCONTROL=ignoredups:ignorespace
goweon
3
Pengaturan "ignoredups" mengabaikan garis yang berulang. Mengetik "ls" dua puluh kali berturut-turut hanya berakhir dengan salah satunya dalam sejarah. Namun, mengetik "ls" dan kemudian "ps" dan kemudian "ls" lagi akan menyimpan "ls" dan "ps" setiap kali - kecuali jika Anda memiliki bash 3 dan mengatur "erasedups". Jika diset, tidak ada duplikat yang dimasukkan dalam riwayat bash sama sekali. - cyberciti.biz/faq/bash-for-loop-array
cwd
1
Ini tidak berhasil untuk saya. Saya telah mencoba kedua export HISTCONTROL=erasedups:ignorespace dan export HISTCONTROL=ignoredups:ignorespacebahkan export HISTCONTROL=ignoredups:ignoreboth. Tapi yang saya dapatkan adalah satu entri untuk setiap sesi daripada seluruh sesi: yaitu, jika perintah sudah ada di .bash_historyawal sesi, dan itu diketik lagi, itu akan ditambahkan ke riwayat (meskipun hanya sekali untuk sesi itu) . Bagaimana cara memastikan bahwa perintah yang sudah ada dalam `.bash_history saat saya meluncurkan Terminal tidak ditambahkan jika sudah dimasukkan lagi?
orome
1

Jika Anda tidak khawatir tentang menjaga sesi tetap aktif, ini mungkin berhasil:

kill -9 $$

Itu akan mematikan sesi saat ini alih-alih log-out, yang [secara teoritis] berarti riwayat Anda tidak akan disimpan.

warren
sumber