Você tem algumas opções, a função básica é a mesma, mas existem algumas diferenças sutis. Primeiro você tem o termo M. Este é um shell completo dentro de um frame Emacs e responde da mesma forma que uma janela de terminal e roda em seu próprio buffer. Os problemas que tenho com isso é que você não pode alternar os buffers enquanto o terminal está ativo, você deve exit
antes de alterar os buffers ou executar quaisquer outras tarefas comuns do emacs.
Sua outra opção é o M-eshell. Esta é uma opção aparentemente leve que roda sobre o seu buffer atual e permite que você troque buffers e execute comandos do Emacs a partir do mini-buffer enquanto estiver usando o eshell.
Você pode querer ler esta página do emacswiki, tem muitas informações sobre o assunto.