Bash ekleme geçmişi nasıl durdurulur


9

Bash'in terminal tarihini istediğim gibi ayarlamakta çok sorun yaşıyorum. Hiçbir yinelenen giriş istiyorum ve bir komut girerseniz kaydedilmesini ve yukarıdaki yinelenen kaldırılmasını istiyorum.

Sorun, historykomutun bana istediğim gibi çalıştığını gösteriyor, ancak çıkış yaptıktan sonra tekrarlar tekrar geliyor. Ben sadece tarihi var olana eklediğine inanıyorum. Dosyamda şu satırlar var .bashrc:

HISTCONTROL=ignoreboth:erasedups
shopt -u histappend

Ben bile uncommenting denedim shopt, ama hala çıkış tarihini ekler. Oturumu kapatmadan önce tarihin nasıl olduğunu nasıl anlayabilirim?


2
Burada iyi bir açıklama var: unix.stackexchange.com/questions/18212/…
jasonwryan

Yanıtlar:


7

erasedupsEğer yinelenenlere konuda istediğini yapmalı - çiftleri silme tarihine yeni bir girdi ekleme anında tetiklenir sadece nota ve sadece en son terk eden bir komuta tüm eski oluşumlarını, sileceğini.


" Çıkış yapmadan önce tarihin tam olarak nasıl olabileceğini? "

Gördüğüm gibi, bu arada bir yararlı olabilir. (Aksi halde, geçmişi neden hiç kullanasınız?)

history -c; history -r

Bu, o anda bellekte tutulan tüm geçmiş girişlerini temizler ve ardından geçmiş dosyasından tüm geçmişi yeniden okur. Böylece, geçerli kabuk oturumuna giriş yaptığınızdan beri verdiğiniz tüm komutlar unutulur. Çok fazla test yaptığımda (çok benzer komutlar, ancak gerçekten kopyalar değil) ve daha sonra tarihimin bu şekilde sarsılmasını istemediğim durumlarda oldukça yararlı buluyorum - bu yüzden benim için bir takma adım var .bashrc:

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

( hrr"tarihin yeniden okunması" olarak hatırlanmalıdır).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.