For instance, using the two aliases: alias list='ls ' # note the trailing space to trigger chaining alias long='-Flas' # options to ls for a long listing allows: list long myfile # becomes "ls -Flas myfile" when run for a long listing, where "long" is also evaluated as an alias. Command arguments In the C Shell, arguments can be embedded inside the command using the string . For example, with this alias: alias ls-more 'ls \!* | more' ls-more /etc /usr expands to ls /etc /usr | more to list the contents of the directories /etc and /usr, pausing after every screenful. Without , alias ls-more 'ls | more' would instead expand to ls | more /etc /usr which incorrectly attempts to open the directories in more. The Bash and Korn shells instead use shell functions — see § Alternatives below. Alternatives Aliases should usually be kept simple. Where it would not be simple, the recommendation is usually to use one of the following: Shell scripts, which essentially provide the full ability to create new system commands. Symbolic links in the user's PATH (such as /bin). This method is useful for providing an additional way of calling the command, and in some cases may allow access to a buried command function for the small number of commands that use their invocation name to select the mode of operation. Shell functions, especially if the command being created needs to modify the internal runtime environment of the shell itself (such as environment variables), needs to change the shell's current working directory, or must be implemented in a way which guarantees they it appear in the command search path for anything but an interactive shell (especially any "safer" version of , , and so forth). The most common form of aliases, which just add a few options to a command and then include the rest of the command line, can be converted easily to shell functions following this pattern: alias ll='ls -Flas' # long listing, alias ll () { ls -Flas "$@" ; } # long listing, function To prevent a function from calling itself recursively, use command: ls () { command ls --color=auto "$@" ; } In older Bourne shells use /bin/ls instead of command ls. References Further reading External links Bash man page for alias The alias Command by The Linux Information Project (LINFO) Alias IBM i Qshell commands ReactOS commands