/aliasman

An alias manager for bash, zsh, and fish

Primary LanguageShellMozilla Public License 2.0MPL-2.0

aliasman

Love your aliases again! 🥸

A cross-shell (POSIX-compliant) alias manager for bash, zsh, and fish

aliasman gc 'git commit -m'

What's an alias?

An alias is just shorthand for a shell function.

Take a long command like this:

git commit -m "feat: new feature"

And turn it into a short command, like this:

gc "feat: new feature"

(that would be aliasman gc 'git commit -m')

Install

Mac, Linux via webi (https://webinstall.dev/aliasman):

curl -sS https://webi.sh/aliasman | sh
source ~/.config/envman/PATH.env

GitHub Releases:

# pick version
my_version="v1.0.0"

# download and unpack
curl -o "aliasman-${my_version}.tar.gz" \
    -fL "https://github.com/BeyondCodeBootcamp/aliasman/archive/refs/tags/${my_version}.tar.gz"
tar xvf "aliasman-${my_version}.tar.gz"

# install to somewhere in your PATH
mkdir -p ~/bin
mv ./aliasman-*/aliasman ~/bin/

Usage

USAGE

    # Set alias
    aliasman [--] <aliasname> <command> [flags, opts, args, pipes, etc]

    # Check alias
    aliasman [--] <aliasname>

    # Delete alias
    aliasman -d [--] <aliasname>

    aliasman help
    aliasman version

EXAMPLES

    aliasman curl curlie
    aliasman ls lsd -F
    aliasman la lsd -AF
    aliasman ll lsd -lAhF
    aliasman tree lsd -F --tree
    aliasman xrnd xxd -l24 -ps /dev/urandom

FILES

    ~/.bashrc
    ~/.config/envman/alias.env
    ~/.config/envman/load.sh
    ~/.config/envman/load.fish
    ~/.config/fish/config.fish
    ~/.profile
    ~/.zshrc

NOTES

    You may use single quotes around the alias definition, like so:

        # generate 24 random bytes, url-safe base64-encoded
        aliasman rnd 'xxd -l24 -ps /dev/urandom |
                          xxd -r -ps |
                          base64 |
                          tr -d = |
                          tr + - |
                          tr / _'

    However, the use of single quotes as part of flags, options, and arguments
    is not yet supported. Neither are newlines.

Imagine the possibilities!

  1. What if you could quickly create a command, ll,
    that does the work of ls -lAhF!?
  2. Set an alias to do just that!
    aliasman ll 'ls -lAhF'
  3. Reload your alias config (or open a new terminal)
    source ~/.config/envman/alias.env
  4. Use it!
    ll
    drwxr-xr-x aj wheel 416 B  Thu Feb  9 02:08:39 2023 📂 .git/
    .rwxr-xr-x aj staff 6.2 KB Thu Feb  9 01:36:30 2023 💻 aliasman*
    .rw-r--r-- aj wheel  16 KB Wed Feb  8 21:51:06 2023 🔑 LICENSE
    .rw-r--r-- aj wheel 1.4 KB Thu Feb  9 01:47:13 2023 📄 README.md
    

Common Aliases

Use aliases to make other tools you find around webi even more convenient ⚡️ (and powerful 💪).

aliasman curl 'curlie'

aliasman diffy 'diff -y --suppress-common-lines'

aliasman gc 'git commit -m'
aliasman gri 'git rebase -i'

aliasman la 'lsd -AF'
aliasman ll 'lsd -lAhF'
aliasman ls 'lsd -F'

aliasman rgi 'rg -i'

aliasman tree 'lsd -F --tree --group-dirs=last'

# random password generator
aliasman rnd 'xxd -l24 -ps /dev/urandom'