An alias is a shorthand notation in the Bash shell to enable you to customize and abbreviate UNIX commands. An alias is deﬁned by using the alias command.
The alias command syntax is as follows:
$ alias name=command_string
$ alias dir=’ls -lF’
The shell maintains a list of aliases that it searches when a command is entered. If the ﬁrst word on the command line is an alias, the shell replaces that word with the text of the alias. When an alias is created, the following rules apply:
- There can be no space on either side of the equal sign.
- The command string must be quoted if it includes any options, metacharacters, or spaces.
- Each command in a single alias must be separated with a semicolon.
Predefined Shell Aliases
Many shells contains several predeﬁned aliases, which you can display by using the alias command. User-deﬁned aliases are also displayed. For example in Korn shell you may find some of the below aliases pre-defined.
$ alias autoload='typeset -fu' command='command ' functions='typeset -f' history='fc -l' integer='typeset -i' local=typeset nohup='nohup ' r='fc -e -' stop='kill -STOP' suspend='kill -STOP $$'
Aliases are commonly used to abbreviate or customize frequently used commands. For example:
$ alias h=history
$ h 278 cat /etc/passwd 279 pwd 280 cp /etc/passwd /tmp 281 ls ~ 282 alias h=history 283 h
Using the rm, cp, and mv commands can inadvertently result in loss of data. As a precaution, you can alias these commands with the interactive option. For example:
$ alias rm=’rm -i’ $ rm dat1 rm: remove dat1: (yes/no)? no $
By creating a cp -i and mv -i alias, the shell prompts you before overwriting existing ﬁles. You can deactivate an alias temporarily by placing a backslash (\) in front of the alias on the command line. The backslash prevents the shell from looking in the alias list, thereby causing it to perform the original rm command.
$ rm file1 rm: remove file1 (yes/no)? no $ $ rm \file1 $ ls file1 file1: No such file or directory
You can group several commands together under a single alias name. Individual commands are separated by semicolons. For example:
$ alias info=’uname -a; id; date’ $ info SunOS host1 5.8 Generic sun4u sparc SUNW,Ultra-5_10uid=102(user2) gid=10(staff)Fri Jun 30 15:22:47 MST 2000 $
In the next example, an alias is created using a pipe (|) to direct the output of the ls -l command to the more command. When the new alias is invoked, a directory listing appears. If the listing is longer than the available space on the screen, the ‘–More–‘ line item appears at the end of the list, indicating that additional directory contents are displayed on the subsequent screen. For example:
$ alias ll=’ls -l | more’ $ cd /usr $ ll total 136 drwxrwxr-x 2 root bin 1024 May 13 18:33 4lib drwx------ 8 root bin 512 May 13 18:14 aset drwxrwxr-x 2 root bin 7168 May 13 18:23 bin drwxr-xr-x 4 bin bin 512 May 13 18:13 ccs drwxrwxr-x 5 root bin 512 May 13 18:28 demo --More-
Use the unalias command to remove aliases from the alias list. The unalias command syntax is as follows:
$ unalias alias_name
$ unalias h $ h ksh: h: not found