This manual documents Eshell, a shell-like command interpretor implemented in Emacs Lisp. It invokes no external processes except for those requested by the user. It is intended to be a functional replacement for command shells such as bash, zsh, rc, or 4dos; since Emacs itself is capable of handling the sort of tasks accomplished by those tools.