The xontrib save shell session history in `$HOME/.logs`.
If you like the idea click ⭐ on the repo and tweet.
To install use pip:
xpip install xontrib-log-all-history
# or: xpip install -U git+https://github.com/drmikecrowe/xontrib-log-all-history
xontrib load log_all_history
# TODO: what's next?
⚠️ If you usingSqliteHistory
backend, you must include$XONSH_HISTORY_BACKEND = 'sqlite'
before loading. For example:
$XONSH_HISTORY_BACKEND = 'sqlite'
xontrib load log_all_history
This plugin intercepts history before sending to the JsonHistory
or SqliteHistory
backend. In short it takes the current command line and append to a history named $HOME/.logs/$PWD/xonsh-history-{DateTime}.log
.
For example:
cat README.md > /dev/null
tail $LOG_ALL_HISTORY_FILE
# 2022-03-11.21.17.01 cat README.md > /dev/null
I've been using this method since October in 2019 (both in bash and now xonsh). Here's stats on my logs directory:
du -sh ~/.logs
# 16M /home/mcrowe/.logs
egrep '^201' ~/.logs -Rh | cut -b -7 | sort | uniq | head -n 1
# 2019-10
find ~/.logs | wc -l
# 3645
Two helper aliases are enabled to assist in searching your accumulated history.
hgrep
-- "H"istory "Grep". This command is simplygrep -ERh {SEARCH_STRING} $HOME/.logs
-- it searches all folders.hdgrep
-- "H"istory in this "D"irectory "Grep". This command is simplygrep -ERh {SEARCH_STRING} $HOME/.logs/$PWD
-- it searches all logs you've done in this specific directory.
For example you use the python
command frequently. You remember using a python
command in the past for the current project with a lot of parameters you figured out, but you didn't save it. If you did hgrep python
, you'd find many entries. By using hdgrep python
, you find the specific command.
Example:
hgrep cat | wc -l
# 1427
hdgrep cat | wc -l
# 10
If you want to place to the logs in a different folder, set:
$LOG_ALL_HISTORY_DIR = f"{$HOME}/.all-logs"
xontrib load 'log-all-history'
This package was created with xontrib cookiecutter template.