Saya sedang mengerjakan proyek klien yang di-host di lautan digital di server ubuntu, saya sedang mengerjakannya dengan beberapa pengembang lain dan saya agak baru dan membuat banyak perintah dan itu benar-benar berantakan. Bagaimana cara menghapus riwayat perintah hingga titik tertentu?
Misalnya, saya ingin menghapus semua perintah yang saya ketik hari ini, dan meninggalkan semua perintah sebelumnya, apakah ini mungkin?
Lebih mudah bagi pengembang lain untuk menemukan perintah sebelumnya tanpa melalui semua perintah saya. Apakah mungkin untuk menghapus bash_history hingga titik tertentu, misalnya hanya riwayat hari ini? Jika demikian, bagaimana?
Mohon sarannya!
Terima kasih!
Jawaban yang Diterima:
Baris dalam riwayat Bash disimpan sebagai baris teks biasa tanpa informasi meta apa pun seperti stempel waktu doa. Jadi tidak mungkin untuk menghapus semua riwayat perintah secara otomatis dari satu hari, karena Anda tidak dapat mengetahui lagi perintah mana yang dijalankan kapan.
Jika Anda hanya ingin menghapus seluruh riwayat perintah dari sesi Bash Anda saat ini (yaitu semua yang masih ada di memori dan belum ditulis ke disk), Anda dapat menghapus buffer riwayat dalam memori atau menggantinya dengan riwayat lama isi file dari disk.
-
Menghapus buffer histori akan menghasilkan histori dalam memori yang kosong untuk sesi Anda saat ini, artinya tidak ada perintah yang akan muncul jika Anda menekan ↑ , dll. Setelah Anda keluar dari sesi Bash, semua perintah baru yang dimasukkan setelah pembersihan akan ditambahkan ke file riwayat dan di sesi berikutnya, Anda akan melihat riwayat lengkap lagi, dengan hanya rentang antara awal sesi terakhir Anda dan perintah yang jelas hilang.
history -c
-
Mengganti buffer histori dalam memori saat ini dengan konten file histori dari disk akan memiliki hasil akhir yang sama seperti membersihkan buffer histori, kecuali bahwa dalam sesi Anda saat ini, Anda akan memiliki akses ke histori perintah lama alih-alih daftar kosong.
history -r
Jika itu tidak membantu Anda karena Anda ingin merapikan entri dari sesi sebelumnya atau hanya sebagian sesi, metode bedah adalah yang Anda butuhkan:
Sinkronkan buffer histori dalam memori Anda saat ini ke file histori di disk, lalu buka file itu di editor teks dan hapus semua entri yang melanggar secara manual.
Terkait:Folder Mana Yang Harus Disertakan Dalam cadangan?Untuk menambahkan histori dari sesi Anda saat ini ke file histori secara manual (karena hanya terjadi secara otomatis saat Anda keluar dari sesi), jalankan ini terlebih dahulu:
history -a
Setelah itu, buka file riwayat Bash ~/.bash_history
di editor teks favorit Anda (karena Anda berada di server, saya sarankan misalnya nano
) dan edit daftar perintah sesuai keinginan Anda. File mencantumkan semua perintah yang direkam dalam urutan kronologis, perintah terbaru terakhir. Cukup hapus baris yang menyinggung dan simpan pekerjaan Anda.
Setelah itu, Anda harus memuat ulang riwayat yang dimodifikasi ke dalam buffer riwayat dalam memori menggunakan perintah di bawah ini, untuk mencegah entri lama dari memori ditambahkan ke file riwayat yang telah dirapikan saat Anda keluar dari sesi:
history -r