{"id":17456617,"url":"https://github.com/martinthoma/shell-history-analysis","last_synced_at":"2025-04-24T01:41:27.121Z","repository":{"id":36943173,"uuid":"232422164","full_name":"MartinThoma/shell-history-analysis","owner":"MartinThoma","description":"Analyze how you use your shell","archived":false,"fork":false,"pushed_at":"2023-02-08T02:39:30.000Z","size":107,"stargazers_count":5,"open_issues_count":8,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-14T10:42:59.395Z","etag":null,"topics":["data-analysis","python","shell"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MartinThoma.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-07T21:37:58.000Z","updated_at":"2024-12-07T17:59:21.000Z","dependencies_parsed_at":"2024-10-20T09:56:11.729Z","dependency_job_id":"67706551-992e-4043-ab2b-48352753be52","html_url":"https://github.com/MartinThoma/shell-history-analysis","commit_stats":{"total_commits":11,"total_committers":2,"mean_commits":5.5,"dds":"0.36363636363636365","last_synced_commit":"219298264766e5729ce945252d7fccc97d780f12"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinThoma%2Fshell-history-analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinThoma%2Fshell-history-analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinThoma%2Fshell-history-analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinThoma%2Fshell-history-analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MartinThoma","download_url":"https://codeload.github.com/MartinThoma/shell-history-analysis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250545573,"owners_count":21448235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-analysis","python","shell"],"created_at":"2024-10-18T02:48:19.031Z","updated_at":"2025-04-24T01:41:27.103Z","avatar_url":"https://github.com/MartinThoma.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![PyPI version](https://badge.fury.io/py/shell-history-analysis.svg)](https://badge.fury.io/py/shell-history-analysis)\n[![Python Support](https://img.shields.io/pypi/pyversions/shell-history-analysis.svg)](https://pypi.org/project/shell-history-analysis/)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n![GitHub last commit](https://img.shields.io/github/last-commit/MartinThoma/shell-history-analysis)\n\n## Usage\n\n\n```bash\n# Get the history file\n$ history \u003e history.txt\n\n# Install\n$ pip install shell_history_analysis\n\n# You have to know which shell you have\n# This is important, because the `history` command has different outputs in\n# different shells.\n# Fish shell has only the command itself as an output.\n$ shell_history_analysis history.txt --shell=zsh\nAssumed shell: zsh\nGrouping filepath: /home/moose/GitHub/shell-history-analysis/shell_history_analysis/grouping.yaml\n\nCLI Utils                 2731\ngit                       2498\nPython                    1536\nEditor(s)                  905\nSystem Package Manager     271\nDev-Tools                  203\nDocker                     187\nSystem Management          160\nmutmut                     153\nCLI Programs                88\npipenv                      53\nclana                       43\nconda                       36\nexercism                    33\n7z                          21\nhwrt                        21\nShell Scripting             21\npandoc                      21\ngzip                        20\nName: base_command, dtype: int64\nWriting image to /home/moose/history.png\n```\n\n![History of Commands](https://raw.githubusercontent.com/MartinThoma/shell-history-analysis/master/docs/history.png)\n\n\n## Grouping and Anonymization\n\nYou can provide a `grouping.yaml` file to group commands together. The default\nis the following:\n\n```bash\n'CLI Programs':\n  - aspell\n  - ffmpeg\n  - ffprobe\n  - dot\n  - neato\n  - fdp\n  - circo\n  - convert\n  - md5sum\n  - curl\n  - wget\n  - jq\n  - netstat\n'CLI Utils':\n  - mv\n  - cd\n  - ..\n  - ...\n  - ls\n  - rm\n  - grep\n  - cat\n  - cp\n  - mkdir\n  - head\n  - tail\n  - chmod\n  - chown\n  - watch\n  - open\n  - xdg-open\n  - file\n  - history\n  - tree\n  - touch\n  - find\n  - locate\n  - ping\n  - man\n  - ln\n  - wc\n  - df\n  - du\n  - pwd\n  - ll\nDatabases:\n  - mysql\n  - psql\nDev-Tools:\n  - make\n  - meld\n  - diff\n  - cookiecutter\n  - cloc\nDocker:\n  - docker\n  - docker-compose\nEditor(s):\n  - sublime\n  - subl\n  - vim\n  - vi\n  - spyder\n  - spyder3\n  - nano\nJava:\n  - mvn\n  - java\n  - javac\nJS:\n  - npm\n  - node\n  - ntl\n  - yarn\n  - nvm\n  - lerna\nCloud:\n  - az\n  - aws\nLaTeX:\n  - pdflatex\n  - tlmgr\nPython:\n  - python\n  - python2\n  - python3\n  - pip\n  - pip2\n  - pip3\n  - virtualenv\n  - venv\n  - black\n  - isort\n  - pylint\n  - mypy\n  - pytest\n  - flask\n  - pyenv\n  - coverage\n  - tox\n  - flake8\n  - twine\n  - pydocstyle\n  - pip-compile\n  - pylama\n  - pybabel\n  - pep8\n  - piprot\n  - jupyter\n  - alembic\nRemote:\n  - scp\n  - ssh\n  - ssh-keygen\nRust:\n  - cargo\n'Shell Scripting':\n  - for\n  - date\n'System Management':\n  - kill\n  - killall\n  - echo\n  - export\n  - env\n  - ps\n  - top\n  - htop\n  - atop\n  - systemctl\n  - sysctl\n  - ip\n  - ifconfig\n  - which\n  - sysbench\n  - service\n  - dmesg\n'System Package Manager':\n  - apt\n  - apt-get\n  - apt-cache\n  - update-alternatives\n  - dpkg\n  - add-apt-repository\n  - brew\n  - mas\n'Web Development':\n  - ab\n  - http\n  - ng\ngit:\n  - git\n  - git-fame\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartinthoma%2Fshell-history-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmartinthoma%2Fshell-history-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartinthoma%2Fshell-history-analysis/lists"}