(@code{|}), which could be part of remote file names.
@node Built-ins
-
@section Built-in commands
Several commands are built-in in Eshell. In order to call the
external variant of a built-in command @code{foo}, you could call
@example
~ $ which sudo
-eshell/sudo is a compiled Lisp function in `em-unix.el'
+eshell/sudo is a compiled Lisp function in `em-tramp.el'.
~ $ alias sudo '*sudo $*'
~ $ which sudo
sudo is an alias, defined as "*sudo $*"
@end table
+@ref{Aliases} for the built-in variables @samp{$*}, @samp{$1},
+@samp{$2}, @dots{}, in alias definitions.
+
@node Variables
@section Variables
Since Eshell is just an Emacs REPL@footnote{Read-Eval-Print Loop}, it
@node Aliases
@section Aliases
+@vindex $*
Aliases are commands that expand to a longer input line. For example,
@command{ll} is a common alias for @code{ls -l}, and would be defined
with the command invocation @kbd{alias ll 'ls -l $*'}; with this defined,
which you can also edit directly (although you will have to manually
reload it).
+@vindex $1, $2, @dots{}
Note that unlike aliases in Bash, arguments must be handled
explicitly. Typically the alias definition would end in @samp{$*} to
pass all arguments along. More selective use of arguments via