Dalam situasi apa seorang pengguna tidak akan membiarkan shell merekam perintahnya ke dalam sejarah?

18

Jika saya menambahkan export HISTCONTROL=ignorespacedalam .bashrc, bash tidak akan merekam setiap perintah yang memiliki spasi sebelum mereka menjadi sejarah. Tapi saya tidak mengerti dalam situasi apa itu akan berguna. Adakah yang bisa memberikan beberapa contoh?

acgtyrant
sumber

Jawaban:

32

Jika perintah Anda berisi kata sandi atau informasi sensitif lainnya

Ulrich Dangel
sumber
4
@acgtyrant maka Anda tidak pernah memasukkan perintah dengan kata sandi. Idenya adalah jika Anda memberikan kata sandi pada commandline, cukup beri spasi sebelum perintah dan tidak akan direkam keHISTFILE
Ulrich Dangel
3
perintah mysql dapat menerima kata sandi pengguna yang Anda sambungkan ke database, ada terlalu banyak untuk dicantumkan di sini. Poin yang dibuat @Ulrich Dangel tepat. Jika Anda mengetik perintah dengan kata sandi, jangan tinggalkan itu di riwayat.
slm
5
Saya juga akan menambahkan bahwa ketika Anda dan administrator Anda sering tidak ingin riwayat aktif karena jika penyerang masuk ke sistem Anda meninggalkannya jejak di mana hal-hal berada di kotak dan apa jenis perintah biasanya dijalankan di kotak.
slm
1
Jika Anda tidak memiliki perintah dengan informasi sensitif, maka Anda bukan target audiens untuk fitur itu. Tidak setiap fitur dalam suatu program digunakan oleh setiap pengguna. (Itulah salah satu alasan mengapa program memiliki "fitur merayap": semua orang menggunakan selusin fitur, tetapi selusin berbeda, dan bertanya-tanya untuk apa semua penggerusan yang tidak berguna itu.)
Kaz
1
Ingatlah bahwa argumen baris perintah sering terlihat ps, atau dengan melihat /proc. Beberapa sistem juga membuat lingkungan terlihat oleh pengguna lain. File mode 0700 pada tmpfs, OTOH, tidak memiliki masalah ini.
derobert
26

Penggunaan lain adalah untuk perintah yang tidak ingin Anda ulangi secara tidak sengaja, seperti rm -rf *. Saya menggunakan banyak sejarah dan kadang-kadang memukul Entersecara tidak sengaja ketika perintah yang saya ambil dari sejarah bukanlah yang saya cari. Memang, solusi sebenarnya adalah selalu membaca perintah dengan hati-hati sebelum menjalankannya. Tapi karena sedikit clumbsy, saya lebih suka juga menjaga perintah yang sangat merusak dari sejarah saya sebagai tindakan pencegahan ekstra.

depquid
sumber
14
Saya akan menambahkan bahwa saya merasa sangat nyaman untuk lebih mengabaikan beberapa perintah berbahaya bahkan jika saya lupa untuk menyertakan spasi: HISTIGNORE=" *:rm -f*:rm -r*:*--force*". Ini mencegah rm -fdan rm -rdari disimpan ke dalam sejarah, serta apa pun yang terkandung --force.
Petr Pudlák
Ini adalah / solusi nyata. Jangan tinggalkan pisau, katakan solusi sebenarnya adalah tidak menyodok diri Anda sendiri. Seperti pepatah lama berbunyi “Anda tidak bisa berhenti di sungai” - artinya jangan membersihkan sungai, alih-alih berhenti membuang sampah ke dalamnya.
ctrl-alt-delor
6

Seorang mantan rekan kerja saya melakukan ini dengan paling banyak cddan lsperintah, untuk merekam hanya perintah "berguna".

Jan Fabry
sumber
3
Aku hampir tidak pernah berlari di tempat kerja tanpa melakukan ini ... (atau atasan, atau laki-laki ...)
lotsoffreetime
Sebenarnya, seseorang dapat menambahkan export HISTCONTROL=ingoredupsdi .bashrcmemberitahu bash tidak ke toko duplikat sehingga sejarah membuat lebih jelas. Anda dapat membaca artikel
acgtyrant
2

Privasi data. Saat penegak hukum mendobrak pintu Anda, Anda mungkin tidak ingin mereka menemukan residu

  • dari mana Anda mendapatkan pron terbaru ^ Wwarez dari
  • film apa yang baru-baru ini Anda robek dan diumpankan ke torrent
  • kata sandi yang dikirimkan melalui argumen ke program enkripsi / dekripsi

Serius, itu mungkin setara dengan pengaturan privasi yang ketat di browser Anda, menghentikannya dari merekam riwayat selancar.

Jens
sumber
0

Jika Anda mengontrol versi .bash_history , ini adalah cara yang berguna untuk menandai perintah tertentu sebagai "spesial". Dikombinasikan dengan pencarian-sejarah- * , ini adalah cara untuk menekan cukup Space+ m+ Up+ Enteruntuk menjalankan make --directory ~/dev/tilde cleandan Space+ e+ Up+ Enteruntuk menjalankan editor ~/.bash_history, yang keduanya saya gunakan untuk pemeliharaan file Bash history.

l0b0
sumber