Emacs has commands for passing single command lines to inferior shell
processes; it can also run a shell interactively with input and output
to an Emacs buffer named ‘*shell*’ or run a shell inside a terminal
emulator window.
M-! cmd <RET>
Run the shell command line cmd and display the output
(shell-command).
M-| cmd <RET>
Run the shell command line cmd with region contents as input;
optionally replace the region with the output
(shell-command-on-region).
M-& cmd <RET>
Run the shell command line cmd asynchronously, and display the
output (async-shell-command).
M-x shell
Run a subshell with input and output through an Emacs buffer.
You can then give commands interactively.
M-x term
Run a subshell with input and output through an Emacs buffer.
You can then give commands interactively.
Full terminal emulation is available.
M-x eshell invokes a shell implemented entirely in Emacs. It
is documented in a separate manual. See Eshell.
Single Shell: How to run one shell command and return.