The alias will only be available in the shell where the alias command was issued.
To persist the alias consider putting it into your .bashrc
alias word='command'
Invoking word
will run command
. Any arguments supplied to the alias are simply appended to the target of the alias:
alias myAlias='some command --with --options'
myAlias foo bar baz
The shell will then execute:
some command --with --options foo bar baz
To include multiple commands in the same alias, you can string them together with &&
. For example:
alias print_things='echo "foo" && echo "bar" && echo "baz"'
alias -p
will list all the current aliases.
Assuming that bar
is an alias for someCommand -flag1
.
Type bar
on the command line and then press Ctrl+alt+e
you'll get someCommand -flag1
where bar
was standing.
To remove an existing alias, use:
unalias {alias_name}
Example:
# create an alias
$ alias now='date'
# preview the alias
$ now
Thu Jul 21 17:11:25 CEST 2016
# remove the alias
$ unalias now
# test if removed
$ now
-bash: now: command not found
Sometimes you may want to bypass an alias temporarily, without disabling it. To work with a concrete example, consider this alias:
alias ls='ls --color=auto'
And let's say you want to use the ls
command without disabling the alias.
You have several options:
command
builtin: command ls
/bin/ls
\
anywhere in the command name, for example: \ls
, or l\s
"ls"
or 'ls'
Aliases are named shortcuts of commands, one can define and use in interactive bash instances. They are held in an associative array named BASH_ALIASES. To use this var in a script, it must be run within an interactive shell
#!/bin/bash -li
# note the -li above! -l makes this behave like a login shell
# -i makes it behave like an interactive shell
#
# shopt -s expand_aliases will not work in most cases
echo There are ${#BASH_ALIASES[*]} aliases defined.
for ali in "${!BASH_ALIASES[@]}"; do
printf "alias: %-10s triggers: %s\n" "$ali" "${BASH_ALIASES[$ali]}"
done