Bashhub can be accessed from the command line in a couple ways:
bashhubfor everything else
It also provides a key binding of
ctrl + b for quickly dropping into interactive search.
You can search through your commands in a lot of different ways. Check
bh --help for more specifics. By default
bh will output the most recently used unique commands to standard out. Adding the
-i argument to any
bh search will make it interactive. There are also several arguments to pass to filter, query, and get more specific about your searches!
One of the most useful features is interactive search which is accessed via
bh -i or
ctrl + b. This is similar to reverse search i.e.
ctrl + r. Interactive search drops you into a small menu where you can select a command to run on the command line.
Here's an example of interactive search followed by bashhub status.
From interactive search you can also access detailed information on each command by hitting
space on any listed command.
The last 100 commands you executed anywhere. (100 is default limit without
The last 20 files I've grep'd.
$ bh -n 20 "grep"
Find that wget command with interactive search to execute it again :P
$ bh -i "wget github"
Directory based searching
The last commands you executed in this directory.
$ bh -d
The last 10 things you vim'd in this directory
$ bh -d -n 10 "vim"
Enter interactive search for all the rsync commands executed in this directory
$ bh -i -d (bashhub-i-search): rsync
System based searching
The last 10 curl commands you produced on this system
$ bh -sys -n 10 "curl"
How search results are ordered
By default results are sorted by most recently used, and are unique. This means frequent commands like
git status or
ls will only appear once in the position they were most recently invoked.
This can be altered by using the
-dups command to include duplicates
Your git commands including duplicates.
$ bh -dups "git"
You can get a summary of your user's stats/status by using the
Most of this information is also displayed on the user profile page.
=== Bashhub Status https://bashhub.com/u/rccola Total Commands: 94965 Total Sessions: 16400 Total Systems: 18 === Session PID 15311 Started 9 days ago Commands In Session: 3 Commands Today: 47
You can delete commands from Bashhub through interactive search by pressing
Backspace while a command is highlighted. A small dialog box will open to confirm the commands deletion. If a command is deleted, it is permanently removed from Bashhub.
You can filter commands from being recorded to Bashhub via a regex set to the environment variable
BH_FILTER. These commands will be ignored and omittted from Bashhub.
# Filter out any commands for postgres or ssh export BH_FILTER="(psql|ssh)" ssh rcaloras@some-ip-address # will not be saved
You can check the configuration of this command via the
bashhub filter subcommand.
# Check if a command is filtered by my regex export BH_FILTER="(-p)" bashhub filter "mysql -u root -p plain-text-password" BH_FILTER=(-p) mysql -u root -p plain-text-password Is Filtered. Matched ['-p']
Disabling recording commands
You can turn on/off recording to Bashhub via
bashhub on and
bashhub off. By default this only affects the current bash session.
$ bashhub off $ echo "Recording is now disabled for this session. This command won't be saved." .... $ bashhub on $ echo "Recording commands is now re-enabled"
You can disable for all sessions by setting
bashhub off --global this sets
save_commands = False in your bashhub config.
#ignore added to any command will omit it from being saved. Simply add it to the end of any command and it won't be recorded in Bashhub.
$ echo "this command won't be saved" #ignore