GNU Info

Info Node: (eshell)What is Eshell?

(eshell)What is Eshell?


Next: Installation Prev: Top Up: Top
Enter node , (file) or (file)node

What is Eshell?
***************

   Eshell is a "command shell" written in Emacs Lisp.  Everything it
does, it uses Emacs' facilities to do.  This means that Eshell is as
portable as Emacs itself.  It also means that cooperation with Lisp code
is natural and seamless.

   What is a command shell?  To properly understand the role of a shell,
it's necessary to visualize what a computer does for you.  Basically, a
computer is a tool; in order to use that tool, you must tell it what to
do--or give it "commands."  These commands take many forms, such as
clicking with a mouse on certain parts of the screen.  But that is only
one form of command input.

   By far the most versatile way to express what you want the computer
to do is by using an abbreviated language called "script".  In script,
instead of telling the computer, "list my files, please", one writes a
standard abbreviated command word--`ls'.  Typing `ls' in a command
shell is a script way of telling the computer to list your files.(1)

   The real flexibility of this approach is apparent only when you
realize that there are many, many different ways to list files.
Perhaps you want them sorted by name, sorted by date, in reverse order,
or grouped by type.  Most graphical browsers have simple ways to
express this.  But what about showing only a few files, or only files
that meet a certain criteria?  In very complex and specific situations,
the request becomes too difficult to express using a mouse or pointing
device.  It is just these kinds of requests that are easily solved
using a command shell.

   For example, what if you want to list every Word file on your hard
drive, larger than 100 kilobytes in size, and which hasn't been looked
at in over six months?  That is a good candidate list for deletion, when
you go to clean up your hard drive.  But have you ever tried asking your
computer for such a list?  There is no way to do it!  At least, not
without using a command shell.

   The role of a command shell is to give you more control over what
your computer does for you.  Not everyone needs this amount of control,
and it does come at a cost: Learning the necessary script commands to
express what you want done.  A complicated query, such as the example
above, takes time to learn.  But if you find yourself using your
computer frequently enough, it is more than worthwhile in the long run.
Any tool you use often deserves the time spent learning to master it.
(2)

   As of Emacs 21, Eshell is part of the standard Emacs distribution.

Contributors to Eshell
People who have helped out!
   ---------- Footnotes ----------

   (1) This is comparable to viewing the contents of a folder using a
graphical display.

   (2) For the understandably curious, here is what that command looks
like: But don't let it fool you; once you know what's going on, it's
easier than it looks: `ls -lt **/*.doc(Lk+50aM+5)'.


automatically generated by info2www version 1.2.2.9