mirror of https://github.com/curusarn/resh
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.4 KiB
80 lines
2.4 KiB
# Rich Enhanced Shell History
|
|
|
|
## What
|
|
|
|
This project is the first phase of my master thesis.
|
|
|
|
It records shell history with rich set of metadata and saves it locally.
|
|
|
|
It doesn't change the way your shell and your shell history behaves.
|
|
|
|
You won't notice any delay in your shell (~40ms).
|
|
|
|
If you are not happy with it you can uninstall it with a single command (`rm -rf ~/.resh`).
|
|
|
|
## Why
|
|
|
|
The ultimate point of my thesis is to provide a drop-in replacement for bash and zsh shell history.
|
|
|
|
The idea is to provide following:
|
|
- Context-based history
|
|
- Simple way to search whole history by command itself and/or metadata
|
|
- Synchronization across devices
|
|
- And more ...
|
|
|
|
In order to be able to develop a good history tool I will need to get some insight into real life shell usage patterns.
|
|
|
|
That's why I ask YOU to install this tool to locally record your shell history.
|
|
|
|
After some time (probably a few months) I will create a script to replace anything too personal in the recorded data by placeholders.
|
|
|
|
Then I will ask you to run the script against the recorded data and tell me if you are willing to share the resluts with me.
|
|
|
|
I'm very thankful for anyone who is willing to support my thesis by providing their usage data!
|
|
|
|
## Prereqisities
|
|
|
|
- `git`
|
|
- `golang` (>1.11 if possible but we can deal with old ones as well)
|
|
|
|
## Installation
|
|
|
|
### Simplest
|
|
Just run `bash -c "$(wget -O - https://raw.githubusercontent.com/curusarn/resh/master/rawinstall.sh)"` from anywhere.
|
|
|
|
### Simple
|
|
1. Run `git clone https://github.com/curusarn/resh.git && cd resh`
|
|
2. Run `make autoinstall` for assisted build & instalation.
|
|
- OR Run `make install` if you know how to build Golang projects.
|
|
|
|
## Compatibility
|
|
|
|
Works in `bash` and `zsh`.
|
|
|
|
Tested on:
|
|
- Arch
|
|
- MacOS
|
|
- Ubuntu (18.04)
|
|
- really old Ubuntu (16.04)
|
|
|
|
## Examples
|
|
|
|
Resh history is saved to `~/.resh_history.json`
|
|
|
|
Each line is a JSON that represents one executed command line.
|
|
|
|
This is how I view it `tail -f ~/.resh_history.json | jq` or `jq < ~/.resh_history.json`.
|
|
|
|
You can install `jq` using your favourite package manager or you can use other JSON parser to view the history.
|
|
|
|

|
|
|
|
## Issues
|
|
|
|
You are welcome to create issues: https://github.com/curusarn/resh/issues
|
|
|
|
## Uninstallation
|
|
|
|
You can uninstall this project at any time by running `rm -rf ~/.resh/`
|
|
|
|
You won't lose any recorded history by removing `~/.resh` directory because history is saved in `~/.resh_history.json`.
|
|
|