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?


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


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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.