From 1a6c75cea9f6f83c9ecc5ebe6e456a961ac9e88d Mon Sep 17 00:00:00 2001 From: Albert S Date: Sun, 8 Aug 2021 13:22:08 +0200 Subject: [PATCH] Improve README.md --- README.md | 53 +++++++++++++++++++++++++++++++++-------------------- main.go | 1 + 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index da7063e..ae5ff6d 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,33 @@ hs9001 (history search 9001) is an easy, quite simple bash history enhancement. It simply writes all your bash commands into an sqlite database. You can then search this database. +It improves over bash's built-in history mechanism as it'll aggregate the shell history of all open shells, +timestamp them and also record additional information such as the directory a command was executed in. + +## Usage / Examples +### Search + +``` +hs [search terms] +``` +You can further filter with options like `-cwd`, `-after` and so on... +For a full list, see `-help`. + +``` +hs -cwd . +``` +Lists all commands ever entered in this directory + +``` +hs -after yesterday -cwd . git +``` +Lists all git commands in the current directory which have been entered today. + +Also, it (by default) replaces bash's built-in CTRL-R mechanism, so hs9001's database will be used instead +of bash's limited history files. ## Install -### From source -``` -go build -#move hs9001 to a PATH location -``` - ### Debian / Ubuntu Latest release can be installed using apt ``` @@ -28,31 +46,26 @@ apk update apk add hs9001 ``` +### From source +``` +go build +#move hs9001 to a PATH location +``` -### Setup / Config +## Setup / Config Add this to .bashrc ``` eval "$(hs9001 bash-enable)" ``` + +This will also create a `hs`alias so you have to type less in everyday usage. + By default, every system user gets his own database. You can override this by setting the environment variable for all users that should write to your unified database. - ``` export HS9001_DB_PATH="/home/db/history.sqlite" ``` -## Usage -### Search - -``` -hs9001 search [search terms] -``` - -It is recommended to create an alias for search to make life easier, e. g.: - -``` -alias searchh='hs9001 search' -``` diff --git a/main.go b/main.go index 70cb2a4..4f465ce 100644 --- a/main.go +++ b/main.go @@ -309,6 +309,7 @@ func main() { PROMPT_COMMAND='hs9001 add -ret $? "$(history 1)"' bind -x '"\C-r": " READLINE_LINE=$(hs9001 bash-ctrlr 3>&1 1>&2 2>&3) READLINE_POINT=0"' fi + alias hs='hs9001 search' `) case "bash-disable": fmt.Printf("unset PROMPT_COMMAND\n")