Saya bekerja di Mac OSX, jadi saya kira saya menggunakan bash ...?
Terkadang saya memasukkan sesuatu yang tidak ingin saya ingat dalam sejarah. Bagaimana cara menghapusnya?
bash
shell
command-line
command-history
B Tujuh
sumber
sumber
Jawaban:
Tindakan pencegahan
Jika Anda ingin menjalankan perintah tanpa menyimpannya dalam sejarah, tambahkan itu dengan ruang ekstra
Untuk ini bekerja Anda perlu baik
ignorespace
atauignoreboth
diHISTCONTROL
. Misalnya, jalankanUntuk membuat pengaturan ini terus-menerus, letakkan di Anda
.bashrc
.Pembersihan post-mortem
Jika Anda sudah menjalankan perintah, dan ingin menghapusnya dari histori, gunakan dulu
untuk menampilkan daftar perintah dalam riwayat Anda. Temukan angka di sebelah nomor yang ingin Anda hapus (mis. 1234) dan jalankan
Selain itu, jika baris yang ingin Anda hapus telah ditulis ke $ HISTFILE Anda (yang biasanya terjadi ketika Anda mengakhiri sesi secara default), Anda perlu menulis kembali ke $ HISTFILE, atau baris tersebut akan muncul kembali ketika Anda membuka yang baru sidang:
sumber
history -a
, dalam hal ini sudah ditulis ke file sejarah, daripada keluar di bawah konfigurasi normal. Khususnya: mywiki.wooledge.org/BashFAQ/088history -w
. Kalau tidak, saat Anda keluar, baris yang dihapus masih ada!history -w
setelahhistory -d {num}
itu persis apa yang saya butuhkan - bahwa berita gembira kritis harus ditambahkan ke jawabannya, jika tidak pengguna mungkin berpikir temp delete dari shell saat ini sebenarnya permanen.history -w
diperlukan untuk entri yang sudah ditulis ke.bash_history
file. Cara mereproduksi (mis. Pada CentOS 7 dengan konfigurasi stok): 1. login 2. masukkan perintahecho foo
3. logout 4. login lagi 5. hapus entri untukecho foo
6. logout 7. login lagi: entri masih ada. Bergantung pada bagaimana Anda mengonfigurasi riwayat bash Anda, mungkin Anda dapat mereproduksi masalah ini dengan cara lain - yaitu jika Anda memprovokasi penulisan riwayat sebelum keluar.Untuk menghapus semua riwayat Anda, gunakan
Untuk menghapus satu baris, gunakan
sumber
Saya memiliki ini di saya
~/.bashrc
, yang membuat perintah$ forget
menghapus perintah sebelumnya dari sejarahsumber
history -d $( history | tail -n 1 | cut -f 1 -d " " )
lebih sederhana?history | tail -n1
adalahhistory
perintah itu sendiri, jadi menghapus nomor itu mendapat entri yang salah. Namun,history -d $( history | awk 'END{print $1-1}' )
gabungkan garis pilih, pilih bidang, dan pengurangan.Anda selalu dapat mengedit dan menghapus entri
~/.bash_history
, berguna saat Anda ingin menghapus satu entri atau lebih dari satu entrisumber
Jika Anda ingin melupakan seluruh sesi bash, Anda dapat
kill
melakukan proses bash saat ini. Karena variabel tersebut$$
menahanpid
shell saat ini, Anda dapat melakukan:sumber
Anda perlu menulis perubahan setelah membersihkan riwayat. Dan jika Anda tidak ingin memiliki perintah penghapusan riwayat dalam riwayat Anda maka Anda perlu menjalankan perintah seperti itu:
history -c && history -w && logout
Semoga berhasil.
sumber
sumber