Over at the Emacs subreddit, ambrevar has an interesting post in which he makes the case for Eshell. One of the frequent complaints about Eshell is that it doesn’t work like a “normal” Unix shell. Ambrevar acknowledges that but says it’s a good thing. As he points out, even today we have terminal emulators that duplicate the behavior of ancient physical terminals and the standard shells are designed to work with them.
His post is interesting because he approaches the subject as one who has moved as much as possible into Emacs. He even uses Emacs as his window manager. What struck me was that I kept thinking, “Sure, that’s how I do it.” as he explained how he does tasks that are difficult in a Unix shell very easily in Eshell. I never really thought much about it because those ways of working are natural—being the standard Emacs way of doing things—in Eshell.
As ambrevar admits, Eshell is not perfect but it is improving as more folks adopt it as their standard shell and bug and feature requests filter back to the maintainers. I try to use Eshell exclusively although sometimes years of habit having me bringing up bash in the same old terminal emulator. Eshell is just another way of not having to leave Emacs and the comfort of working in the familiar Emacs way.