Setting up aliases in zsh
I know that in bash you can set up aliases in a .bash_aliases file so that the command you type doesnt need to be a command stored in the binaries in the system. Is there any way I can get aliases into zsh?
Solution 1:
I go back and forth between bash and zsh, and use the same .aliases
file for both. They share the same basic alias syntax, so you can create a .aliases
file and link it to .bashrc
and .zshrc
:
.bashrc
if [ -f ~/.aliases ]; then
. ~/.aliases
fi
.zshrc
source $HOME/.aliases
FWIW this can also be done with environment variable declarations, in a separate .env
file.
Solution 2:
You can do it by the "alias" command with this syntax:
alias [ -gmrL ] [ name[=value] ... ]
For "gmrL" switches, see this guide, which is my reference.
For each name, with no value, zsh will print the name and what it is aliased to previously. With no arguments at all, alias
prints the values of ALL defined aliases.
To define one or more aliases, simply enter:
alias name1=value1 name2=value2 ... nameX=valueX
For each name with a corresponding value, zsh defines an alias with that value. For further info, check out that link. ;-)
Solution 3:
You generally put them in ~/.zshenv
. But many programs use /bin/sh
(usually bash
) instead of $SHELL
to execute shell commands, so for it to work everywhere you will probably need to put the bash
equivalent of the alias into ~/.bash_aliases
anyway.