This script generates a report against your command-line history and suggests workflow improvements. Its opinion is that most commands should be simple and require minimal typing. The report contains:
The script does not use the network, and it doesn’t move or store your command history anywhere. It should be fairly portable, running on Python 2.7 or 3.4+ and requiring “only” the standard library.
This is an early prototype and primarily supports bash, sh, and zsh.
Download command_line_lint.py and run it:
python command_line_lint.py <history_file> # python 2 or 3 is fine
The <history_file>
argument is optional. If omitted, a determination is made based on the value of the SHELL
environment variable:
bash
uses .bash_history
csh
and tcsh
use .history
zsh
uses the value of HISTFILE
Not all shells have support for saving a history file (fish, dash, etc.)
Command-Line Lint gives better results when the following hold (it will tell you about these, too):
HISTSIZE
environment variable should be large enough to produce useful usage summaries. The defaults tend to be too small – try 5000.bash
’s HISTCONTROL
or zsh
’s histignorealldups
should be set appropriately.bash
, shopt histappend
should be set so that multiple concurrent shell sessions can all add to your .bash_history
. If you use zsh
, setopt appendhistory
should be set likewise.If you’re linting a history file that comes from a different shell than the one you’re using, you can let the script know. For example, .history comes from a zsh session but you’re using bash, you can write:
SHELL=zsh python command_line_lint.py /path/to/.zsh_history
This script supports the use of NO_COLOR to disable color output:
NO_COLOR=1 python command_line_lint.py
Because those who do not learn from history are doomed to !!
, additional reporting around some of the following would be useful:
shopt dirspell
, if it exists, can be used to fix typos in cd
)rm -rf ./*
with ls ./*
is a good idea; switching back and forth between directories can use cd -
and switching back and forth between git branches can use git checkout -
; etc.)RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4