コマンド、システムコール、bash組み込みなどが何であるかをどうやって知ることができますか?

コマンド、システムコール、bash組み込みなどが何であるかをどうやって知ることができますか?

最近仲間が「何ですかman?」と聞きました。これについて学んだらBash CLIからアクセスできるすべてがコマンドではありません。、私は慎重に注文を要求しましたman

man manただインターフェイスと呼んでください。

NAME
       man - an interface to the on-line reference manuals

man実行可能ファイルがあります:

$ which man
/usr/bin/man
$ file /usr/bin/man
/usr/bin/man: ELF 64-bit LSB shared object

man実行可能ファイルを含むプログラムも同じですか?他の名詞は何ですかman?それを最もよく説明する名詞は何ですか?実際、私は一般的なケースに興味があります。決定できるものはthing on the cli任意ですman。これは単なる例です。

それでは、Bash CLIで利用可能なすべてを指す単語は何ですか?コマンド、エイリアス、システムコールなどを含む単語は何ですか?

ベストアンサー1

POSIX用語でシェルにアクションを要求するすべてはコマンド:

特定のタスクを実行するようにシェルに指示する指示です。

だから

man man

(技術的に)コマンドです。

man

man道路ユーティリティ:

シェルコマンド言語の一部として提供される特別な組み込みユーティリティを除いて、特定のタスクまたは関連するタスクセットを実行するためにシェルから名前で呼び出すことができるプログラム。

(ここでは除外は重要ではありません。特定の属性を持つ特別な組み込みユーティリティ.)

指定されたコマンドが何であるかを調べるには、を使用しますtype。これにより、組み込みのコマンドなのか、プログラムなのかPATH(どこなのか)、エイリアスなどなのか(または不明なのか)わかります。

システムコールはシェルコマンドとして使用できません。

また、見ることができますコマンドですか、それともユーティリティですか?そして組み込みコマンドと非組み込みコマンドの違いは何ですか?

おすすめ記事