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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
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
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)
Offline
No właśnie coś mi to nie działa. Bo niby mam:
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
Zmienne zazwyczaj nie generują skutków wcześniejszych, przed ich zdefiniowaniem.
Spróbuj:
setopt HIST_SAVE_NO_DUPS
Offline
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[/quote]
To są wszystkie moje ustawienia historii i duplikatów nie posiadam.
linux register user: 484281
"[i]It's great to be here. It's great to be anywhere[/i]"
[b]Keith Richards[/b]
Offline
Chyba już wiem o co chodzi.
Generalnie to winny jest najwyraźniej timestamp w pliku historii — za niego odpowiada [b]extended_history[/b] . Do tego dochodzi [b]share_history[/b] , który zapisuje każde wykonane polecenie od razu do pliku bez czekania na zamknięcie terminala, ale on wymusza [b]extended_history[/b]. Z kolei bez [b]share_history[/b] 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
Time (s) | Query |
---|---|
0.00012 | SET CHARSET latin2 |
0.00007 | SET NAMES latin2 |
0.00109 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.222.44.156' WHERE u.id=1 |
0.00078 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.222.44.156', 1732367644) |
0.00044 | SELECT * FROM punbb_online WHERE logged<1732367344 |
0.00051 | SELECT topic_id FROM punbb_posts WHERE id=322256 |
0.00077 | SELECT id FROM punbb_posts WHERE topic_id=30758 ORDER BY posted |
0.00053 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=30758 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00149 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=30758 ORDER BY p.id LIMIT 0,25 |
0.00082 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=30758 |
Total query time: 0.00667 s |