技術ノート Linux および macOS ターミナル Bash の組み込みコマンドは何をするのでしょうか?

Bash の組み込みコマンドは何をするのでしょうか?

Bash の組み込みコマンドは何をするのでしょうか?

Bash の組み込みコマンドは非常に便利ですが、「組み込み」自体は実際には何をするのでしょうか?今日の SuperUser Q&A 投稿には、好奇心旺盛な読者の質問に対する答えが記載されています。

Bash の組み込みコマンドは何をするのでしょうか?

今日の質疑応答セッションは、コミュニティ主導の Q&A Web サイトのグループである Stack Exchange の下位部門である SuperUser のご好意で提供されました。

質問

Bash の組み込みコマンドは何をするのでしょうか?

スーパーユーザーの読者 lfalin は、Bash の組み込みコマンドが何をするのかを知りたいと考えています。

Bash の組み込みコマンドは何をするのでしょうか?

組み込みコマンドが何であるかはわかりますが、組み込みコマンド自体は何をするのでしょうか? what ls を実行すると /bin/ls が表示されますが、どの組み込み関数を実行しても何も返されません。 manbuiltin は、組み込みコマンドのリストを提供するだけで、そのうちの 1 つは組み込みです。 man ページの残りの部分では、組み込みコマンドとは何かについて説明しますが、組み込み自体が何であるかについては説明しません。 builtin –help は、builtin: 使用法:builtin [shell-builtin [arg …]] を教えてくれますが、それでも何をするのかはわかりません。これは、他の組み込みコマンドとは異なり、Bash の一部ですか?

Bash の組み込みコマンドは何をするのでしょうか?

Bash の組み込みコマンドは何をするのでしょうか?

Bash の組み込みコマンドは何をするのでしょうか?

答え

SuperUser の寄稿者 Spiff が私たちに答えてくれました:

組み込みコマンドを使用すると、同じ名前の別のコマンドを実行するのではなく、シェル組み込みバージョンのコマンドが確実に実行されます。

たとえば、ディレクトリを変更するたびに追加のステータスを出力する cd という名前のシェル関数を定義したが、それを間違えてしまい、ディレクトリを正しく変更できなくなったとします。これで、「builtin cd ~」と入力して、壊れたシェル関数を実行せずにホーム ディレクトリに正常に cd バックできるようになりました。

ちなみに、私がコピーした Bash の man ページには「SHELL BUILTIN COMMANDS」というセクションがあり、そのセクションで組み込みコマンドの意味が定義されています(以下に転記)。


説明に何か追加することはありますか?コメントでは音を消してください。他のテクノロジーに精通した Stack Exchange ユーザーからの回答をさらに読みたいですか? ここで完全なディスカッション スレッドを確認してください

「 Bash の組み込みコマンドは何をするのでしょうか?」に関するベスト動画選定!

【とりあえず覚えておけば大丈夫】Linuxコマンド10選についてお話します
その42 bashの組み込みコマンドを自作