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 history
perintah 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 .bashrc
file 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?
bash
command-history
craig
sumber
sumber
Jawaban:
The
erasedups
harus 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
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
:(
hrr
untuk diingat sebagai "membaca kembali sejarah").sumber