Previous | Table of Contents | Next |
DESCRIPTION
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.
COMMAND FORMAT
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 | |
unalias name | |
|
Options
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. |
|
---|
C Shell |
The csh alias does not support any options. |
|
Arguments
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. | |
|
FURTHER DISCUSSION
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
ls
or
/bin/ls
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
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
Previous | Table of Contents | Next |