Emacsには、シェルのサブプロセスに単一のコマンドラインを渡すコマンドや、Emacsバッファへの入出力を行いながらシェルを対話的に実行するコマンド、そしてターミナルエミュレータウィンドウでシェルを実行するコマンドが用意されています。
シェルコマンド cmd を実行し、その出力 (shell-command) を表示してください。
リージョンの内容を入力としてシェルコマンド cmd
を実行します。オプションで、リージョンを出力結果で置き換えることも可能です (shell-command-on-region)。
シェルコマンド cmd を非同期で実行し、その出力 (async-shell-command) を表示します。
Emacsバッファを介して入出力を行うサブシェルを実行できます。これにより、対話的にコマンドを実行できます。
Emacsバッファを介して入出力を行うサブシェルを実行できます。これにより、対話的にコマンドを実行可能です。完全なターミナルエミュレーションが利用できます。
実行可能プログラムに対して相対ファイル名を指定する場合(上記コマンドのいずれかの cmd
引数内、あるいはその他のコンテキストにおいて)、Emacs は変数 exec-path
で指定されたディレクトリの中からそのプログラムを検索します。この変数の値はディレクトリのリストである必要があり、デフォルト値は Emacs
起動時の環境変数 PATH に依存します(一般変数 を参照)。
M-x eshell は、完全に Emacs で実装されたシェルを呼び出します。専用のマニュアルが用意されています。Eshell: The Emacs Shell の Eshell を参照してください。