persists all shell history in $HOME/.logs
Project description
persists all shell history in `$HOME/.logs`
If you like the idea click ⭐ on the repo and tweet.
xontrib log-all-history
To install use pip:
xpip install xontrib-log-all-history
# or: xpip install -U git+https://github.com/drmikecrowe/xontrib-log-all-history
Usage
xontrib load log_all_history
# TODO: what's next?
:warning: If you using
SqliteHistory
backend, you must include$XONSH_HISTORY_BACKEND = 'sqlite'
before loading. For example:
$XONSH_HISTORY_BACKEND = 'sqlite'
xontrib load 'log-all-history'
Architecture
This plugin intercepts history before sending to the JsonHistory
or SqliteHistory
backend. In short:
- Take the current command line and append to a history named:
$HOME/.logs/$PWD/xonsh-history-{DateTime}.log
- For example:
~/P/P/x/xontrib-log-all-history cat README.md > /dev/null
~/P/P/x/xontrib-log-all-history tail $LOG_ALL_HISTORY_FILE
2022-03-11.21.17.01 cat README.md > /dev/null
~/P/P/x/xontrib-log-all-history
I've been using this method since October in 2019 (both in bash and now xonsh). Here's stats on my logs directory:
~/P/P/x/xontrib-log-all-history du -sh ~/.logs
16M /home/mcrowe/.logs
~/P/P/x/xontrib-log-all-history egrep '^201' ~/.logs -Rh | cut -b -7 | sort | uniq | head -n 1
2019-10
~/P/P/x/xontrib-log-all-history find ~/.logs | wc -l
3645
~/P/P/x/xontrib-log-all-history
Searching History
Two helper aliases are enabled to assist in searching your accumulated history:
hgrep
-- "H"istory "Grep"
This command is simply grep -ERh {SEARCH_STRING} $HOME/.logs
-- it searches all folders.
hgrep
-- "H"istory in this "D"irectory "Grep"
This command is simply grep -ERh {SEARCH_STRING} $HOME/.logs/$PWD
-- it searches all logs you've done in this specific directory. The use-case for this is:
- 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.
- If you did
Example:
~/P/P/x/xontrib-log-all-history hgrep cat | wc -l
1427
~/P/P/x/xontrib-log-all-history hdgrep cat | wc -l
10
~/P/P/x/xontrib-log-all-history
(yes, I did several cat
s testing for the readme...)
Optional Configuration
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'
Credits
This package was created with xontrib cookiecutter template.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for xontrib-log-all-history-1.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e2078effce66c674c8227b2d5218c71648ba76e998dfe5ce5dad02c8a0bb801 |
|
MD5 | 0516d1be26c34980481133bbf5c879e0 |
|
BLAKE2b-256 | ebfa6124ef836b41814548d8b2b51de8c7ce14bd1c9699905ae9e75b239a8aa1 |
Hashes for xontrib_log_all_history-1.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddac54383bfce4ec69f0d4238dbebddc3fa1755f375653e106c0dcf384a9f54f |
|
MD5 | ddc688ecd103479104dc8e26332627f1 |
|
BLAKE2b-256 | 29bc005d2a3524930bad882f7a8d902b52061de59a2190995477526f924874c1 |