Cara menghentikan riwayat penambahan Bash


9

Saya mengalami banyak masalah dalam mengatur riwayat terminal Bash seperti yang saya inginkan. Saya ingin tidak ada entri duplikat dan jika saya memasukkan perintah saya ingin itu disimpan dan duplikat di atas dihapus.

Masalahnya adalah historyperintah menunjukkan kepada saya itu berfungsi seperti yang saya inginkan, tetapi begitu saya log keluar, duplikat kembali lagi. Saya percaya itu hanya menambahkan sejarah ke yang sudah ada. Saya memiliki baris ini di .bashrcfile saya :

HISTCONTROL=ignoreboth:erasedups
shopt -u histappend

Saya bahkan sudah mencoba uncommenting shopt, tetapi masih menambahkan riwayat pada logout. Bagaimana saya bisa membuat sejarah menjadi persis seperti sebelum saya keluar?


2
Ada penjelasan yang bagus di sini: unix.stackexchange.com/questions/18212/…
jasonwryan

Jawaban:


7

The erasedupsharus melakukan apa yang Anda inginkan dalam kaitannya dengan duplikat - hanya catatan yang menghapus duplikat dipicu pada saat menambahkan entri baru untuk sejarah dan bahwa itu menghapus semua kejadian lama perintah, meninggalkan hanya terbaru.


Menjawab pertanyaan " Bagaimana saya bisa membuat sejarah menjadi persis seperti sebelum saya keluar? "

Cara saya melihatnya, ini bisa berguna hanya sesekali. (Kalau tidak, mengapa Anda menggunakan histori sama sekali?) Anda dapat melakukannya dengan menerbitkan

history -c; history -r

Ini menghapus semua entri sejarah yang disimpan saat ini dalam memori dan kemudian membaca kembali seluruh riwayat dari file sejarah. Jadi semua perintah yang Anda keluarkan sejak masuk ke sesi shell saat ini dilupakan. Saya merasa cukup berguna dalam situasi ketika saya melakukan banyak pengujian (banyak perintah serupa, tetapi tidak benar-benar duplikat) dan kemudian tidak ingin sejarah saya digerogoti oleh itu - jadi saya memiliki alias untuk itu di .bashrc:

alias hrr='history -c; history -r'

( hrruntuk diingat sebagai "membaca kembali sejarah").

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.