as-known-as

Alias Bash Command on Steroids

Usage no npm install needed!

<script type="module">
  import asKnownAs from 'https://cdn.skypack.dev/as-known-as';
</script>

README

AKA

Alias Bash Command on Steroids

A Bash alias is essentially nothing more than a keyboard shortcut, an abbreviation, a means of avoiding typing a long command sequence. It's because of these reasons that AKA provides a better alternative to the good ol' alias command:

  • Aliases are stored as files on your file system and hence can be easily shared and synchronized between your computers
  • AKA is cross-platform, which means it can be be used on your Linux, MacOS or Windows OS based machines
  • It comes with some advance & handy features, such as: search, dynamic parameters and more

Migrating to V1

The latest version has gone through some major changes, and hence is not compatible with aliases which were created with older versions of AKA. If you choose to upgrade to the new version, please make sure you backup your aliases folder and then run the following command: aka --migrate

Installation

npm install -g as-known-as

Usage

Usage: aka [options] [command]

Commands

  • copy|cp [options] <from> <to> - copy an existing alias
  • execute|ex [options] <alias> - execute an alias
  • list|ls [options] [filter] - show all aliases
  • make|mk [options] <alias> <command> - add a new alias or update existing one
  • move|mv [options] <from> <to> - rename an alias and/or update its description
  • remove|rm <alias...> - remove one or more aliases

Options

-C, --chdir <path> change the aliases directory -h, --help output usage information -m, --migrate migrate aliases from pre 1.0.0 versions of as-known-as -V, --version output the version number -w, --website open AKA website

Index

  • <...> - mandatory value
  • [...] - optional value

Examples

  • aka add my-ip "dig +short myip.opendns.com @resolver1.opendns.com" -d "get my public ip address" - adds a new my-ip alias with description. Description & command should be surrounded with quotes.
  • aka ls ip - searches for all aliases which contains ip in either alias or description.
  • aka ex my-ip - execute my-ip alias (you can also omit the ex if no options specified).
  • aka rm my-ip - removes all aliases.
  • aka --chdir /Users/nir/Dropbox/aka - changes AKA aliases directory.

Advanced Usage

  1. Dynamic command parameters - Use command option -p to leave out parameters which you want to add dynamically, for example: aka add ls "ls -la" -d "display folder content as a list" and then use as follows: aka ex ls -p "some-path"
  2. Dynamic command parameters binding - Parameters binding makes it even easier to execute aliases, by providing help and even set of valid options, for example: aka scale-image="convert {{Source image path?|input}} -resize {{Scale rate (in percents)?|input}} {{Scaled image path?|input}}" -d "scale an image proportionally" and then the use as follows: aka ex scale-image

Dynamic command parameters binding format: - {{description|type[|options]}} - description - short parameter description - type - can be one of the following:
* checkbox for predefined list of valid options - multiple options
* confirm for specific value
* expand for predefined list of valid options - single option
* input for free text
* list for predefined list of valid options - single option
* password for masked text
(see options for more info)
- options
* checkbox, list - semicolon separated list of strings (e.g. op1;op2;op3)
* confirm - a value which will be appended to the command in case of confirmation
* expand - semicolon separated list of comma separated key value pairs (e.g. a,op1;b,op2;c,op3)
* input, password - default value if empty

Tips & Tricks

  • Call any of the commands with -h parameter to see its help
  • Always use absolute paths (avoid shortcuts symbols such as ~, .. etc)
  • You do not have to remember command's exact alias. If no command with the exact alias was found, similar options will be displayed
  • Change AKA aliases directory to Dropbox, Google Drive or any other online storage service, to share your aliases with all your workstations
  • If you get EACCES: permission denied error on first run, either run as sudo (only once), or change your global node_modules directory to a path you have write access to
  • If you get Permission denied (publickey) error while running ssh command, make sure your public key path is absolute (i.e. do not start path with tilde ~)
  • Notice that if a command contains pipes, it will run in EXEC mode, which basically means it's output is limited to 200KB