Friday, April 24, 2015

Shell vs. Term vs. eshell in Emacs

shell is the standard emacs interface to Operating System's command line interface.
term (ansi-term is pretty much same to term today. They were different packages, but now both defined in term.el) is a terminal emulator. It behaves like a dedicated terminal app, such as {xterm, gnome-terminal, puTTY}. It is compatible to more shell apps than emacs shell interface, but standard emacs keys such as moving cursor don't work here (because it is emulating a terminal.)
eshell is a shell written entirely in emacs lisp. Note: it is not a bash emulator. Eshell is a shell by itself, but similar to bash or other shells.
Which should you use?
It depends on your preference.
shell is good for general use of classic/standard unix shell commands, such as {grep, du, ls, sort, cat, head, tail, uname, …}.
term & ansi-term are good if you want to run stuff like ssh, or other command line interactive interface (such as {python, ruby, lisp} shell), or text based GUI app such as {vim, synaptic, …}.
eshell is good especially on Microsoft Windows where bash is not installed, or, if you are a emacs lisp programer, because eshell has direct access to emacs lisp.

Labels: , , ,

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home