All Projects → dkolmakov → hm

dkolmakov / hm

Licence: Apache-2.0 License
Command line history manager for bash and zsh

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
shell
77523 projects
CMake
9771 projects

Projects that are alternatives of or similar to hm

Hstr
bash and zsh shell history suggest box - easily view, navigate, search and manage your command history.
Stars: ✭ 2,909 (+11536%)
Mutual labels:  zsh, command-history
dotfiles
My Linux settings and configs
Stars: ✭ 33 (+32%)
Mutual labels:  zsh
zsh-clean
Minimal customizable ZSH theme
Stars: ✭ 29 (+16%)
Mutual labels:  zsh
zarch
The Ultimate Script For Arch Linux
Stars: ✭ 49 (+96%)
Mutual labels:  zsh
dotfiles
⚡️ Sharpen dat knife.
Stars: ✭ 29 (+16%)
Mutual labels:  zsh
hoard
cli command organizer written in rust
Stars: ✭ 71 (+184%)
Mutual labels:  zsh
logbook
📖 a programmer's logbook.
Stars: ✭ 40 (+60%)
Mutual labels:  zsh
dotfiles
🏡 .files, including zsh, tmux, vim, and git. Also macOS setup. Good stuff.
Stars: ✭ 30 (+20%)
Mutual labels:  zsh
dot
No description or website provided.
Stars: ✭ 40 (+60%)
Mutual labels:  zsh
Warp
Warp is a blazingly-fast modern Rust based GPU-accelerated terminal built to make you and your team more productive.
Stars: ✭ 1,319 (+5176%)
Mutual labels:  zsh
ezsh
ezsh is a user-friendly, and interactive shell designed to simplify a beginner's view of the terminal and command line.
Stars: ✭ 12 (-52%)
Mutual labels:  zsh
ansible-ohmyzsh
simple ansible role to install oh-my-zsh
Stars: ✭ 38 (+52%)
Mutual labels:  zsh
aterminal
🎉 An oh-my-zsh plugin for show platform versions
Stars: ✭ 31 (+24%)
Mutual labels:  zsh
dotfiles
🚀 tmux, ohmyzsh, powerlevel10k, neovim 🔧
Stars: ✭ 24 (-4%)
Mutual labels:  zsh
zsh-docker
Docker containers for all versions of Zsh.
Stars: ✭ 66 (+164%)
Mutual labels:  zsh
go-dev
Golang Dev Env Dockerfile
Stars: ✭ 17 (-32%)
Mutual labels:  zsh
hstdb
Better history management for zsh. Based on ideas from https://github.com/larkery/zsh-histdb.
Stars: ✭ 25 (+0%)
Mutual labels:  zsh
I WANT TO HELP
https://www.reddit.com/r/zsh/comments/qinb6j/httpsgithubcomzdharma_has_suddenly_disappeared_i/hil4oww/
Stars: ✭ 29 (+16%)
Mutual labels:  zsh
DEC
Development Environment Config. Work faster than ever with my dotfiles
Stars: ✭ 39 (+56%)
Mutual labels:  zsh
zsh-bench
Benchmark for interactive Zsh
Stars: ✭ 158 (+532%)
Mutual labels:  zsh

Build Status

hm

Command line history manager for bash.

About

History manager provides an alternative command line history storage with the ability to select a subset of commands and load it into the current Bash session so the Ctrlr search is performed on the selected subset. It has an SQLite database under the hood and, besides the executed command line, stores time, working directory, returned code and a unique terminal session identifier. All additional information may be used as a selection criterion.

Motivation

There are two main usage scenarios:

Recover history

It is a quite common issue when you need to repeat some actions with a previously developed project but don't remember exact commands you have used for it. History manager provides a way to recover command history related to the specific directory, particular session or both.

Synchronize history

The recovery of a history can be assumed as synchronization between previously existed session and the current one. But it may be also useful to synchronize histories of several simultaneously opened terminal sessions so any executed command can be easily shared. History manager solves this by using the same command selection mechanism as for the history recovery case.

Installation

Install release:

Install latest version in development:

Configuration

Configuration of the history manager is performed by adding it's wrapper scripts to the .bashrc:

hm-db configure ~/.bashrc

To enable hm in the current session source the .bashrc:

. ~/.bashrc

More details are here.

Usage

Per-directory history recovery

Recovering command history related to the specific directory is performed with:

hm -d /path/of/interest

or for the current working directory:

hm -d

Terminal session command history recovery

To set a terminal session name and to recover the command history related to this name run the following:

hm -s "Session Name"

To synchronize history with the database using the previously given name:

hm -s

More usage examples are here.

Acknowledgements

History manager utilizes the following thirdparty projects:

  • SQLite - SQL database
  • apathy - header-only path manipulation library
  • clipp - header-only arguments parsing library
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].