|Previous||Table of Contents||Next|
The internal alias command provides a shorthand for one or more commands. The alias command is supported by the csh and the ksh. There are three types of aliases in the Korn shell: exported, preset, and tracked. An exported alias is passed to subshells when called by name. The preset aliases are set by the Korn shell. The tracked aliases are full pathnames for commands.
Aliases can be used to redefine the shell's built-in commands but not the keywords.
Aliases can be created, exported, and listed using the alias command. Aliases can be removed using the unalias command. Exported aliases are passed to subshells. Therefore, if you have an alias defined in your login shell and you execute a shell script, the shell script is able to access the aliases.
Aliases are established as they are read, not during execution. For an alias to work, it must be created before the command that uses the alias is executed. Basically, you have to define your aliases before you can reference them.
The internal unalias command is used to remove alias definitions. For example, if you want to do away with your l alias, you enter unalias l and press Return.
Aliases can be created, exported, and listed using the alias command. Aliases can be removed using the unalias command.
Following is the general format of the alias command.
alias [ -tx ] [ name=string ... ] alias name unalias name
If no options or arguments are given, then all existing aliases are listed.
|C Shell (csh)|
|alias name string|
The following options may be used to control how alias functions.
|-t||Allows you to set and list tracked aliases. A tracked alias has a full pathname for the command used in the string. This provides less overhead in search and execute time since the location of the command is already known. If your PATH variable is reset, the string of a tracked alias is reset to NULL. If no arguments are provided on the command line, all tracked commands are listed - not really an alias, but it is how the Korn shell handles tracking commands.|
|-x||Allows you to set or list exported aliases. An exported alias functions like an exported variable; it may be passed to subprocesses. If no arguments are provided on the command line, all exported aliases are listed.|
|The csh alias does not support any options.|
The following list describes the arguments that may be passed to the alias command.
|name=string||Defines an alias name that runs the command string.|
|name||The name of the alias. The name becomes a new command that is an alias for
the command specified in the string part of the alias. For example,
alias lx="ls -x"
sets the name lx to the command ls -x specified in the string. Now you can use lx as a command.
|If only a name is provided, then the alias string for that alias is displayed if it exists.|
|=||The delimiter between the name and command string.|
|string||The command you wish to have executed when you use name as a
command. If any spaces or tabs are contained in the string, then you must quote
the entire string. For example,
alias dir="ls -la | pg"
sets dir to be an alias for the command ls -la | pg. So when you type dir and press Return, you actually execute the ls -la | pg command, the string part of the alias.
|If a space follows the string of an alias command, then the following commands are checked for being an alias.|
|If no names or strings are given, then the appropriate aliases are listed with their corresponding string.|
|If there are spaces in the string side of the alias, you must enclose it in quotes.|
|C Shell (csh)|
|The C shell uses a slightly different syntax to set up an alias. Instead of using an equal sign (=), you simply put a space between the name and the command. The string does not have to be enclosed in quotes if it contains spaces.|
|The C shell alias also allows you to use history substitution which is replaced by command line arguments. For example,|
|alias la 'echo \!*'|
|would expand la * into echo file1 . . ., which would be all the files in the current directory.|
If you alias a command that already exists as a true command, you can still refer to it by enclosing it in single quotes. For example, if you set the following alias
alias ls='ls -x'
you can still run the normal ls by typing
It is considered best not to rename an existing command using alias unless you always use the command the way you are setting up the alias. For example, if you always use ls -x, you may want to create an alias, ls="ls -x". To keep from interfering with the ls command, you might consider using l or lx for the alias name.
If you wish to have a command aliased each time you log in to the system, you must place the alias command line in your .profile or in your ENV (.kshrc) file. The ENV file is executed each time a ksh is started.
You might find the following list of aliases useful.
alias -x lf="ls -Fx" alias -x l="ls -l" alias -x ud="cd .." alias -x bd="cd -" alias -x dir="ls -l" alias -x dir/w="ls -x" alias -x copy="cp " alias -x more="pg -n " alias -x type="cat " # although type is an internal command alias -x prt="lp -dlaser" # alias to whence using print is not advisable
Exported aliases are like exported variables. They are passed to subshells. Aliases that have not been exported are not passed to subshells and, therefore, are not known by such subshells. The following aliases are automatically exported by the shell.
echo='print -' false='let 0' functions='typeset -f' hash='alias -t' history='fc -l' integer='typeset -i' nohup='nohup ' pwd='print - $PWD' r='fc -e -' true=':' type='whence -v'
Tracked aliases are not true aliases. A tracked alias is the actual command name and the full pathname used to access an existing command. It is called tracked alias because the path is aliased for the command name and the new alias tracks directly to the command. This keeps the shell from having to search the entire PATH for a command, thus providing faster command execution.
You can turn command tracking on by using the set command. Type
cj> set -o trackall
to inform the shell to track all commands issued to it. For example, the following sequence of commands illustrates the automatic tracking of commands.
cj> set -o trackall cj> alias ls # list alias of ls command ls alias not found # no alias exists for ls cj> ls # execute the ls command ... cj> alias ls # list alias of ls command ls=/bin/ls # tracked alias has been set to full path
You can track individual commands by using the -t option. For example,
cj> alias -t ls
would cause the same results as the above steps. But the shell would not automatically set every command you issue to a tracked alias.
Alias returns a zero (true) unless a name is given that has not been set to a string.
The alias command is used to create shorthand versions of longer commands. It is very useful for hard-to-remember commands and for those commands you use repeatedly throughout the day. Remember to place your aliases in your .profile or your ENV file (.kshrc) so they are set each time you log in.
The unalias command is used to remove previously set aliases.
In this activity you use the alias command to create various aliases. Begin at the shell prompt.
|Type alias I "ls -F" and press Return.|
In this activity you use the unalias command to remove the previously defined l alias command. Begin at the shell prompt.
|Previous||Table of Contents||Next|