Saya punya beberapa pertanyaan tentang terminal atau sejarah baris perintah yang disimpan di ~/.bash_history
.
Saya dapat melihat file di terminal dengan
history
perintah tetapi jika saya mencoba membukanya dengangedit bash_history
file itu benar-benar kosong. Mengapa?Saya telah menemukan cara menghapus sejumlah baris dalam file dari terminal dengan baris kode ini:
for i in {1..N}; do history -d N; done
di mana N adalah jumlah baris (atau perintah) yang ingin Anda hapus, tetapi sekarang file histori menunjukkan perintah terakhir ini dan itu tidak terlalu pintar jika Anda mencoba untuk menutupi barang-barang Anda. Jadi pertanyaannya adalah: Bagaimana saya bisa memberikan baris kode terakhir dan memastikan ini tidak direkam?
Jawaban:
Anda hanya lupa titik sebelumnya, perintah untuk membuka file riwayat terminal (bash) Anda
File ini hanya diperbarui ketika Anda menutup terminal.
Untuk menghapus 10 baris terakhir dari file ini dan tidak merekam perintah ini sendiri, buka terminal baru dan jalankan rantai perintah berikut:
atau
atau
sed
atauhead
masing - masing menghapus garis yang dipilih dari~/.bash_history
,history -c
membersihkan sejarah terminal danexit
menutupnya.sumber
for
+sed
: dihead -n -N
mana huruf besarN
adalah jumlah baris yang akan dihapus. stackoverflow.com/a/13380679/711006head -n -N testfile > testfile
hanya membersihkan file! Saya menambahkan solusi, namun tentu saja tidak lebih pendek.head
tidak bisa bekerja di tempat sepertised
. Saya terutama mencari satused
perintah menggantikanfor
loop Anda . Ada beberapa opsi pada halaman yang saya tautkan tetapi mereka tidak terlihat dimengerti sebagai kode Anda.File bash_history adalah file tersembunyi, dimulai dengan titik. Yang perlu Anda lakukan
Ini akan membuka file di gedit.
sumber
Jika Anda ingin menghapus hanya bagian-bagian tertentu dari log perintah Anda, maka metode di atas baik-baik saja. Jika Anda ingin menghentikan perintah logging untuk sesi bash tertentu, maka keluarkan perintah itu
Agar lebih drastis, jika Anda tidak ingin perintah Anda dicatat , maka Anda bisa melakukannya
Perhatikan bahwa metode pertama hanya akan berlaku untuk satu sesi tunggal, sedangkan metode kedua akan menghentikan pendataan perintah untuk semua sesi mendatang.
sumber
Saya menyadari ini sudah memiliki jawaban yang diterima, tetapi ini adalah bagaimana saya telah melakukannya sejak tahun 80-an. Ini cara yang bagus untuk menyembunyikan jejak Anda dan ini merupakan pendekatan multi fase. Sebagian besar yang tidak diperhatikan kecuali seseorang benar-benar memperhatikan. Inilah cara melakukannya.
Buka terminal / shell / sesi dan lakukan:
keluar dari shell, buka terminal / shell / sesi dan lakukan: Berikut adalah beberapa cara kreatif untuk menghapus riwayat secara permanen
1:
2 (buat riwayat palsu)
maka untuk ukuran yang baik:
keluar dari shell
buka shell baru dan ketik
apa yang membuatnya kurang terlihat adalah jika seseorang melakukan ls -ratl, ~ / .bash_history akhirnya akan menghilang dalam deretan daftar direktori. Itu tidak akan muncul sebagai tautan yang akan menarik perhatian yang tidak perlu. Kebanyakan orang tidak melakukan -a pada root mereka, yang berguna ketika emulasi diinginkan.
Kelemahan dari pendekatan ini adalah Anda kehilangan kemampuan untuk kembali dan mengambil riwayat Anda. file ~ / .bash_history yang sebenarnya juga bisa berakhir di bagian atas daftar direktori, karena mungkin berakhir dengan tanggal modifikasi yang sangat lama dari waktu ke waktu, yang dengan sendirinya dapat mengarah pada penemuan bahwa ada sesuatu yang salah.
sumber
9999999 dd
untuk menghapus semua baris dalam file itu:%d
,:1,$d
ataudG
bekerja lebih baik1) Jalankan
sh
; ini memunculkan subkulit abu, yang tidak mencatat sejarah sama sekali. Edit dari sana2) Tambahkan baris
HISTCONTROL=ignoreboth
ke.bashrc
, dan lakukanexec bash
untuk secara permanen mengganti shell saat ini dengan yang diinisialisasi ulang, kemudian lakukan semua perintah yang tidak ingin Anda login dengan ruang terdepan.sumber
karena saya belum bisa berkomentar, akan menambahkan komentar saya sebagai jawaban:
man history
akan menjawab semuanya.jawaban untuk # 1 adalah bahwa sejarah ada di memori.
history -a
untuk menyimpan ke file segera.history -w
juga akan menyimpan tetapi mungkin mengacaukan sesi lainnya.jawab # 2
history -a
:, gedit, hapus baris yang Anda inginkan,history -r
sumber
Riwayat tidak disimpan sampai Anda keluar dari shell. Coba keluar dari shell dan kemudian lihat .bash_history lagi. Sejarah perintah harus ada di sana.
sumber