Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2018-12-05 14:33:40

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Duplikaty w historii poleceń ZSH

Czy orientuje się może ktoś jak sprawić, by te same polecenia nie trafiały do pliku historii shell'a ZSH? Technicznie rzecz biorąc, obecnie mam taką konfigurację, że jeśli to samo polecenie zostanie wpisane parę razy pod rząd, to tylko jedno z nich jest rejestrowane. Jeśli zacznę wpisywać dwa rózne polecenia na zmianę, to każde z nich zostanie zapisane w historii i w ten sposób plik będzie miał całą masę zduplikowanych poleceń. Nie ma jakiejś opcji by te same polecenia (znak w znak) były zapisywane w historii tylko raz?

Offline

 

#2  2018-12-05 16:09:11

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Duplikaty w historii poleceń ZSH

Rzuć okiem tutaj:
https://github.com/mattjj/my-oh-my-zsh/blob/master/history.zsh

Pozdro

Ostatnio edytowany przez Jacekalex (2018-12-05 16:30:04)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2018-12-05 16:49:39

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Duplikaty w historii poleceń ZSH

No właśnie coś mi to nie działa. Bo niby mam:

Kod:

setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate.

Ale nie usuwa tych wcześniejszych.

Ostatnio edytowany przez morfik (2018-12-05 16:49:54)

Offline

 

#4  2018-12-05 16:52:59

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Duplikaty w historii poleceń ZSH

Zmienne zazwyczaj nie generują skutków wcześniejszych, przed ich zdefiniowaniem.
Spróbuj:

Kod:

setopt HIST_SAVE_NO_DUPS

W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2018-12-05 17:24:33

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Duplikaty w historii poleceń ZSH

To chyba nie działa tak jak wszyscy myślą że powinno. Niech się odezwie ktoś kto nie ma duplikatów w historii, wszystko jedno czy bash czy zsh. xD

Offline

 

#6  2018-12-06 22:15:20

  thalcave - prawie jak admin

thalcave
prawie jak admin
Skąd: odległa galaktyka
Zarejestrowany: 2007-05-17

Re: Duplikaty w historii poleceń ZSH

setopt append_history           # append history
setopt hist_ignore_all_dups        # ignore duplicates in history
setopt hist_ignore_space        # do not save commands with leading space
setopt hist_no_functions        # do not save functions in history
setopt hist_no_store            # do not save history command in history

To są wszystkie moje ustawienia historii i duplikatów nie posiadam.


linux register user: 484281
"It's great to be here. It's great to be anywhere"
Keith Richards

Offline

 

#7  2018-12-07 01:13:05

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Duplikaty w historii poleceń ZSH

Chyba już wiem o co chodzi.

Generalnie to winny jest najwyraźniej timestamp w pliku historii — za niego odpowiada extended_history . Do tego dochodzi share_history , który zapisuje każde wykonane polecenie od razu do pliku bez czekania na zamknięcie terminala, ale on wymusza extended_history. Z kolei bez share_history wydawane polecenia w jednym okienku nie są widoczne w historii w drugim okienku, co trochę ssie. xD Jeśli się nie używa share_history to trzeba jechać na append_history

Jak plik historii nie ma timestampu, to duplikaty są usuwane jak tylko się wprowadzi jakieś polecenie, które było w historii i wyjdzie się z terminala. Niemniej jednak, jak ma się dwa różne terminale odpalone i w obu sesjach wyda się takie samo polecenie, to wtedy trafią do historii duplikaty ale wciąż mogą zostać one usunięte, gdy przy pojedynczej sesji się wyda zduplikowane polecenie.

Póki co plik historii skurczył się z 1M do 500K. Więc jakoś będę musiał przywyknąć do tej nowej konfiguracji. xD

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)