Metadata-Version: 2.1
Name: shell-history-analysis
Version: 0.1.3
Summary: Analyze the history of a shell
Home-page: https://github.com/MartinThoma/shell-history-analysis
Author: Martin Thoma
Author-email: info@martin-thoma.de
Maintainer: Martin Thoma
Maintainer-email: info@martin-thoma.de
License: MIT
Download-URL: https://github.com/MartinThoma/shell-history-analysis
Keywords: utility
Platform: Linux
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
Description-Content-Type: text/markdown
Requires-Dist: click
Requires-Dist: python-dateutil
Requires-Dist: matplotlib
Requires-Dist: pandas
Requires-Dist: pyaml

[![PyPI version](https://badge.fury.io/py/shell-history-analysis.svg)](https://badge.fury.io/py/shell-history-analysis)
[![Python Support](https://img.shields.io/pypi/pyversions/shell-history-analysis.svg)](https://pypi.org/project/shell-history-analysis/)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
![GitHub last commit](https://img.shields.io/github/last-commit/MartinThoma/shell-history-analysis)

## Usage


```bash
# Get the history file
$ history > history.txt

# Install
$ pip install shell_history_analysis

# You have to know which shell you have
# This is important, because the `history` command has different outputs in
# different shells.
# Fish shell has only the command itself as an output.
$ shell_history_analysis history.txt --shell=zsh
Assumed shell: zsh
Grouping filepath: /home/moose/GitHub/shell-history-analysis/shell_history_analysis/grouping.yaml

CLI Utils                 2731
git                       2498
Python                    1536
Editor(s)                  905
System Package Manager     271
Dev-Tools                  203
Docker                     187
System Management          160
mutmut                     153
CLI Programs                88
pipenv                      53
clana                       43
conda                       36
exercism                    33
7z                          21
hwrt                        21
Shell Scripting             21
pandoc                      21
gzip                        20
Name: base_command, dtype: int64
Writing image to /home/moose/history.png
```

![History of Commands](https://raw.githubusercontent.com/MartinThoma/shell-history-analysis/master/docs/history.png)


## Grouping and Anonymization

You can provide a `grouping.yaml` file to group commands together. The default
is the following:

```bash
'CLI Programs':
  - aspell
  - ffmpeg
  - ffprobe
  - dot
  - neato
  - fdp
  - circo
  - convert
  - md5sum
  - curl
  - wget
  - jq
  - netstat
'CLI Utils':
  - mv
  - cd
  - ..
  - ...
  - ls
  - rm
  - grep
  - cat
  - cp
  - mkdir
  - head
  - tail
  - chmod
  - chown
  - watch
  - open
  - xdg-open
  - file
  - history
  - tree
  - touch
  - find
  - locate
  - ping
  - man
  - ln
  - wc
  - df
  - du
  - pwd
  - ll
Databases:
  - mysql
  - psql
Dev-Tools:
  - make
  - meld
  - diff
  - cookiecutter
  - cloc
Docker:
  - docker
  - docker-compose
Editor(s):
  - sublime
  - subl
  - vim
  - vi
  - spyder
  - spyder3
  - nano
Java:
  - mvn
  - java
  - javac
JS:
  - npm
  - node
  - ntl
  - yarn
  - nvm
  - lerna
Cloud:
  - az
  - aws
LaTeX:
  - pdflatex
  - tlmgr
Python:
  - python
  - python2
  - python3
  - pip
  - pip2
  - pip3
  - virtualenv
  - venv
  - black
  - isort
  - pylint
  - mypy
  - pytest
  - flask
  - pyenv
  - coverage
  - tox
  - flake8
  - twine
  - pydocstyle
  - pip-compile
  - pylama
  - pybabel
  - pep8
  - piprot
  - jupyter
  - alembic
Remote:
  - scp
  - ssh
  - ssh-keygen
Rust:
  - cargo
'Shell Scripting':
  - for
  - date
'System Management':
  - kill
  - killall
  - echo
  - export
  - env
  - ps
  - top
  - htop
  - atop
  - systemctl
  - sysctl
  - ip
  - ifconfig
  - which
  - sysbench
  - service
  - dmesg
'System Package Manager':
  - apt
  - apt-get
  - apt-cache
  - update-alternatives
  - dpkg
  - add-apt-repository
  - brew
  - mas
'Web Development':
  - ab
  - http
  - ng
git:
  - git
  - git-fame
```


