Hapus riwayat terminal di Linux [ditutup]

170

Saat Anda menggunakan tombol naik di terminal Linux, Anda dapat menggunakan perintah sebelumnya lagi. Fitur hebat. Namun, saya mulai login mysql ke mysql dengan rincian sensitif dalam perintah.

Bagaimana saya bisa menghapus riwayat itu?

Frank Vilea
sumber
Maaf, saya benar-benar lupa menyebutkan bahwa saya menggunakan bash.
Frank Vilea
16
Karena pertanyaan ini ditutup, saya tidak dapat menambahkan ini sebagai jawaban. Anda dapat memberitahu bash untuk tidak menyimpan riwayat apa pun untuk sesi tertentu dengan perintah ini:export HISTFILE=/dev/null
Chris Eberle
1
Saya juga dapat menambahkan ini: jangan masukkan info sensitif ke baris perintah - tunggu konfirmasi: D
hummingBird

Jawaban:

343

Anda dapat menghapus riwayat bash Anda seperti ini:

history -cw

Eddie
sumber
4
Benar-benar menyukai jawaban ini - ini berlaku segera, daripada menghapus .bash_historyyang membutuhkan shell untuk dihidupkan ulang agar berlaku.
mikemaccana
1
Tidak bekerja di mesin Ubuntu 14.04 saya. Sejarah baru saja muncul dengan terminal baru. Semua yang berhasil adalah >~/bash_history. Harus me-restart terminal untuk ini.
Aniket Thakur
Juga berfungsi di Mac OS X El Capitan (diuji pada versi 10.11.2), tetapi Anda harus menambahkan baris berikut ke ~/.bash_profile: Anda export SHELL_SESSION_HISTORY=0, lalu lakukan a source ~/.bash_profiledan untuk selesai keluar dan mulai ulang aplikasi Terminal Anda. Jika Anda ingin memahami apa yang dilakukan perintah ekspor ini, maka Anda harus memeriksa tautan berikut ini: superuser.com/questions/950403/…
King-Wizard
1
tidak hanya -c cukup? Manual mengatakan -c menghapus daftar riwayat dengan menghapus semua entri. -w menggabungkan riwayat saat ini ke file riwayat dan menambahkannya ke daftar riwayat. -C bekerja dengan baik.
Kahn
24

Jika Anda menggunakan bash, maka riwayat terminal disimpan dalam file bernama .bash_history. Hapus itu, dan riwayat akan hilang.

Namun, untuk MySQL pendekatan yang lebih baik adalah tidak memasukkan kata sandi di baris perintah. Jika Anda hanya menentukan opsi -p, tanpa nilai, maka Anda akan diminta kata sandi dan itu tidak akan dicatat.

Opsi lain, jika Anda tidak ingin memasukkan kata sandi setiap waktu, adalah menyimpannya di file my.cnf. Buat file bernama ~ / .my.cnf dengan sesuatu seperti:

[client]
user = <username>
password = <password>

Pastikan untuk mengubah izin file sehingga hanya Anda yang dapat membaca file.

Tentu saja, dengan cara ini kata sandi Anda masih disimpan dalam file plaintext di direktori home Anda, sama seperti sebelumnya disimpan di .bash_history.

sagi
sumber
4
+1 untuk menentukan -p. Ini benar-benar pendekatan yang tepat untuk masalah ini
andyb
2
Sebenarnya, di sistem Linux saya, bash mengingat sejarah dan membuat ulang file saat logout. Anda harus masuk, menghapus file, masuk lagi, keluar shell pertama, menghapus file, dan kemudian keluar shell kedua.
cao
Terima kasih telah menunjukkannya. Saya pikir saya menjadi pintar dengan menggunakan opsi -p + kata sandi langsung pada perintah karena itu jauh lebih cepat untuk hanya menekan panah atas karena saya memiliki kata sandi yang sangat panjang. Saatnya untuk mempertimbangkan kembali ..
Frank Vilea
5
Jangan lupa unset HISTFILEagar riwayat saat ini tidak disimpan.
Ignacio Vazquez-Abrams
Saya mengedit jawaban saya dan menambahkan solusi yang mencegah memasukkan kata sandi setiap waktu.
sagi