historian

Command-line utility for managing shell history in a SQLite database.


Keywords
history, shell
License
Other
Install
brew install historian

Documentation

historian

Command-line utility for managing shell history in a SQLite database.

~/.bash_history is deduped and imported into a database.

Requirements

  • SQLite
  • a home directory

Installation

Download and 1) add the directory to your $PATH

export PATH="$PATH:/Users/jerry/historian"

or 2) add hist as an alias.

alias hist="/Users/jerry/historian/hist"

Getting Started

Import your ~/.bash_history

$ hist import

Super Installation

Add hist import to your .profile (assuming hist is in your path):

$ echo hist import >> ~/.profile

This will import your .bash_history every time you launch a new shell.

Usage

Show config:

$ hist config
version:      0.0.2
bash_history: /Users/jerry/.bash_history
db:           /Users/jerry/.historian.db
sqlite3:      /opt/local/bin/sqlite3

Search:

$ hist search monsters
690
    echo a zombie with no conscience >> ~/monsters
689
    echo ghoul >> ~/monsters
688
    echo goblin >> ~/monsters
687
    echo lochness >> ~/monsters

Search (shorthand):

$ hist /monsters
690
    echo a zombie with no conscience >> ~/monsters
689
    echo ghoul >> ~/monsters
688
    echo goblin >> ~/monsters
687
    echo lochness >> ~/monsters

View log:

$ hist log
1020
    rm -f README.md
1019
    emacs README.md
1018
    rm -rf .git

Pitfalls

Live like your db file could be corrupted at any time.

Be wary of running specially crafted hist commands or against ~/.bash_history files.

Cool Things in the Future

  • export to append to ~/.bash_history
  • scrub items from history
  • set or autodetect configs
  • other shells than bash
  • timestamp support