An alias is a shortcut to replace typing a long-command sequence. In this recipe, we will see how to create aliases using the alias command.
Visiting aliases
How to do it...
These are the operations you can perform on aliases:
- Create an alias:
$ alias new_command='command sequence'
This example creates a shortcut for the apt-get install command:
$ alias install='sudo apt-get install'
Once the alias is defined, we can type install instead of sudo apt-get install.
- The alias command is temporary: aliases exist until we close the current terminal. To make an alias available to all shells, add this statement to the ~/.bashrc file. Commands in ~/.bashrc are always executed when a new interactive shell process is spawned:
$ echo 'alias cmd="command seq"' >> ~/.bashrc
- To remove an alias, remove its entry from ~/.bashrc (if any) or use the unalias command. Alternatively, alias example= should unset the alias named example.
- This example creates an alias for rm that will delete the original and keep a copy in a backup directory:
alias rm='cp $@ ~/backup && rm $@'
There's more...
When running as a privileged user, aliases can be a security breach. To avoid compromising your system, you should escape commands.
Escaping aliases
Given how easy it is to create an alias to masquerade as a native command, you should not run aliased commands as a privileged user. We can ignore any aliases currently defined, by escaping the command we want to run. Consider this example:
$ \command
The \ character escapes the command, running it without any aliased changes. When running privileged commands on an untrusted environment, it is always a good security practice to ignore aliases by prefixing the command with \. The attacker might have aliased the privileged command with his/her own custom command, to steal critical information that is provided by the user to the command.
Listing aliases
The alias command lists the currently defined aliases:
$ aliasalias lc='ls -color=auto' alias ll='ls -l' alias vi='vim'