alias: replace your lengthy commands with shorter ones

On August 26, 2009, in aliases, by Dipin Krishna

Create an alias, aliases allow a string to be substituted for a word when it is used as the first word of a simple command.

alias [-p] [name[=value] ...]

unalias [-a] [name ... ]

-p Print the current values

-a Remove All aliases

If arguments are supplied, an alias is defined for each name whose value is given.

If no value is given, `alias’ will print the current value of the alias.

Without arguments or with the `-p’ option, alias prints the list of aliases on the standard output in a form that allows them to be reused as input.

name may not be `alias’ or `unalias’.

unalias may be used to remove each name from the list of defined aliases.


Create an alias 'ls' that will actually run 'ls -F'
$ alias ls='ls -F'
$ ls
$ unalias ls

$ alias la='ls -lAXh --color=always' #Show all, sort by extension
$ alias ls-al='ls -al' #fix typo missing space
$ alias l="ls -l"
$ alias la="ls -la"
$ alias cd..='cd ..' #fix typo missing space
alias ..='cd ..'
$ alias .='echo $PWD'

$ alias rm='rm -i' #interactive = are you sure?
$ alias inst='sudo apt-get install'

Make an alias permanent

Use your favorite text editor to create a file called ~/.bash_aliases, and type the alias commands into the file. Make .bash_aliases run at login (or you can just execute it with ./.bash_aliases )

The first word of each simple command, if unquoted, is checked to see if it has an alias. If so, that word is replaced by the text of the alias. The alias name and the replacement text may contain any valid shell input, including shell metacharacters, with the exception that the alias name may not contain `=’.

The first word of the replacement text is tested for aliases, but a word that is identical to an alias being expanded is not expanded a second time. This means that one may alias ls to “ls -F”, for instance, and Bash does not try to recursively expand the replacement text.

If the last character of the alias value is a space or tab character, then the next command word following the alias is also checked for alias expansion.

There is no mechanism for using arguments in the replacement text, as in csh. If arguments are needed, a shell function should be used. Aliases are not expanded when the shell is not interactive, unless the expand_aliases shell option is set using shopt .

`alias’ and `unalias’ are BASH built-ins. For almost every purpose, shell functions are preferred over aliases.



Leave a Reply