Store your zsh history into a sqlite3 database(github.com)
github.com
Store your zsh history into a sqlite3 database
https://github.com/larkery/zsh-histdb
16 comments
OffTopic:
I have always considered my (bash) history as a profound source of knowledge. I hope one day, some machine learning wizard will create a function extractor from history. Something like: "oh it seems you often chain those commands: .... Let me make a function for you. Here it is: ... How would you like to call it?"
Have you tried the ”fish” shell? It's the closest I've seen to what you're describing, but not exactly the same.
This looks very cool! I especially love the attention to syncing and merging, as well as the section specifically for zsh-autosuggestions. However, I really wish there were performance metrics (e.g. "zsh-autosuggestions used to take me Xms but now they only take Yms, and I have Z entries in my history")
I don't have any timing data and I don't actually use the autosuggest thing (I wrote that for someone else who asked about it), but I can say that I have months of daily use in mine and there's no noticeable query delay or insertion delay so far.
Sqlite3 is to thank for that, it's a pretty amazing bit of engineering.
Sqlite3 is to thank for that, it's a pretty amazing bit of engineering.
why do i want to know how many times i type ls!!!!!
j/k This seems pretty cool
j/k This seems pretty cool
it stores those under _BORING_COMMANDS and doesn't log them.
Source: Read the source
Source: Read the source
anyone know of something like this for bash?
I use this:
> export PROMPT_COMMAND='if [ "$(id -u)" -ne 0 ]; then echo "$(date "+%Y-%m-%d.%H:%M:%S") $(pwd) $(history 1)" >> ~/.logs/bash-history-$(date "+%Y-%m-%d").log; fi'
It just logs everything into files per date, have come in handy at times.
> export PROMPT_COMMAND='if [ "$(id -u)" -ne 0 ]; then echo "$(date "+%Y-%m-%d.%H:%M:%S") $(pwd) $(history 1)" >> ~/.logs/bash-history-$(date "+%Y-%m-%d").log; fi'
It just logs everything into files per date, have come in handy at times.
I've been using this for a while. I like the fact that it stores dates/times of command executed. I plan to combine this with org-mode to quickly get a report of all shell commands executed while I was working on a specific task. Helps if I want to convert it into a guide/blog post.
Not that it affects you, but for others that think have date/time in their history zsh supports this with their EXTENDED_HISTORY (setopt extendedhistory) option. Formats history as...
: <beginning time>:<elapsed seconds>;<command>
: <beginning time>:<elapsed seconds>;<command>
You can do that w/o external tools, at least in bash. Just set HISTTIMEFORMAT. see man bash.
Reddit discussion:
https://www.reddit.com/r/zsh/comments/67gsm8/a_thing_i_made_...
https://www.reddit.com/r/zsh/comments/67gsm8/a_thing_i_made_...