Skip to main content

A python tool connected to your terminal to store important commands and search them in a new and faster way

Project description

fastHistory 2 - speed up your terminal!

Store, search and automatically paste all your favourite commands directly in your terminal with a new and faster way!

With the new TDLR-pages integration, you can quickly discover and select more than 10000 ready-to-use command examples, directly in your terminal.

fh_main

Intro

Why you need it?

How often do you need to reuse a command but you cannot remember it (with all the needed options/flags)?

# example of a common but not so 'easy-to-remember' bash command from my bash history
$ tar -xvzf file.tar.gz

How many times do you search the same commands on Google, over and over?

42 times.. yes.. based on my experience the answer is 42

And how many times have you told yourself to store this super useful command but you didn't?

I saved them all ..totally, with a good and detailed explanation for each command

if you know what I am talking about, fastHistory is the tool you are looking for!

Usage sample

fastHistory can save your commands directly from your terminal, all you need is a #

$ tar -xvzf file.tar.gz #
                       /\
                        \-- fastHistory will store 'tar -xvzf file.tar.gz' in its local database

You can specify one or more tags

$ tar -xvzf file.tar.gz #untar #extract #archive 

or a description

$ tar -xvzf file.tar.gz #@extract compressed files from archive

or both

$ tar -xvf archive.tar.gz #untar @extract compressed files from archive

To search the saved commands, all you need is f and the selected command wiil be automatically pasted into your terminal!

$ f

For each stored command you can get a quick summary from the man page

note: this feature does not cover the syntax of all commands

man page

And easily edit the tag and description fields

edit description

Furthermore, you can easily export/import all data to make backups or to share your commands with a different machine

$ f --export
$ f --import fastHistory_2020-03-02.db

Discover new commands

In the Discovery mode, you can easily find examples of commands from the TDLR-pages, a collection of community-maintained help pages. The search works both by command name and description. Furthermore, the + icon shows you which command is already installed on your system.

discover

Offline feature

FastHistory does not need any internet connection, so you can use it also offline!

Supported OSs

fastHistory can work in any OS with python3 and a bash terminal

zsh is also supported!

List of tested OSs:

OS OS Version Shell Python versions fastHistory version Test mode Comment
Ubuntu 16.04, 18.04, 20.04* bash 3.6, 3.7, 3.8 latest unittest * xclip may need to be installed to enable the copy-to-clipboard feature
macOS 10.15 bash 3.6, 3.7, 3.8 latest unittest python3 needs to be installed
Fedora 29 bash 3.5 2.0.0 manual pip3 requires the --user flag
Debian 9 bash 3.5 2.3.6 manual
Debian 10 zsh* 3.7 2.0.0 manual *syntax limitation
Windows* 10 (1809) bash 3.6 2.4.1 manual *using the Windows Subsystem for Linux (WSL) you can execute and store Windows commands

How to install

Requirements

  • python3
  • python3-pip (only for pip3 installation)

Install with pip3

  1. pip3 install fasthistory
  2. $HOME/.local/bin/f
  3. close and reopen your terminal

Note: be sure to not use pip (python2) nor sudo (install it only for the current user)

Install with installer.sh (offline mode)

  1. download the latest release with this easy-to-type link or manually download it
    • wget mkcn.me/f
  2. move it to the target system
  3. extract it and run the installer with the target user
    • tar -xvzf f
    • cd fastHistory-X.X
    • ./installer.sh
  4. close and reopen your terminal
  5. (optional) delete installation files
    • rm -r f fastHistory-X.X

All in one-line

cd $(mktemp -d /tmp/f.XXXXX) && wget https://mkcn.me/f && tar -xvzf f && ./fastHistory-*/installer.sh && cd -

How to update

Update with f (available from 2.1.1)

  1. f --update
  2. close and reopen your terminal

Update with pip3

  1. pip3 install -U --no-cache-dir fasthistory
  2. f
  3. close and reopen your terminal

Update with installer.sh

Note: to update from the 1.x.x version your need to follow these steps

How to uninstall

  1. download the installer script and make it executable
    • wget https://raw.githubusercontent.com/mkcn/fastHistory/master/installer.sh
    • chmod +x installer.sh
  2. run it with the uninstall flag
    • ./installer.sh -u

Note: pip3 install fasthistory is not sufficient to uninstall fastHistory

Commands and systax

Find out more about commands and syntax in the Wiki section

Copyright and dependencies

License

The license for this is the same as that used by GNU bash, GNU GPL v3+.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

fastHistory-2.4.2-py3-none-any.whl (1.5 MB view details)

Uploaded Python 3

File details

Details for the file fastHistory-2.4.2-py3-none-any.whl.

File metadata

  • Download URL: fastHistory-2.4.2-py3-none-any.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for fastHistory-2.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e18e660adc70886967ceba0f9c271b09fb7a21042c5360c7471c7800dddafee9
MD5 9221adbecba07b6663951f3572fc2afa
BLAKE2b-256 591cbd877fa338be61135ca00217e331aa29ce18248e37c144004a578b72bf5c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page