fg
、bg
、およびjobs
は、ジョブ管理に使用されます。そして、何らかの理由(たぶん私だけかもしれません)で、それらのバイナリーやマンページの場所を見つけることができません(whereis
は情報を出力しません)。 which
は出力しません。ただし、コマンド自体は問題なく機能します。
find /bin bg
のようなコマンドを実行しましたが、ヒットはありませんでした。また、find / bg
を実行して、ワイドネットをキャストしました。
それらはシェル(bash
)ビルトインであり、個別の実行可能ファイル(バイナリファイル、スクリプトなど)ではないため、これらのコマンドに対してファイルを取得していません。実際、ShellビルトインはShell実行可能ファイルにコンパイルされます。必要に応じて、ソースコードを確認して確認できます。 which
またはwhereis
は外部の実行可能ファイルのみを検索するため、組み込みの出力を取得していません。
コマンドが組み込みまたはエイリアスまたは関数または外部ファイルであるかどうかを確認するには、type
組み込みを使用するのが最善の方法です。
$ type fg
fg is a Shell builtin
$ type bg
bg is a Shell builtin
$ type jobs
jobs is a Shell builtin
また、find
コマンドは構文的に正しくないことに注意してください。正しい(最も簡単な)構文はfind /where/to/search -name 'name_to_search'
です。
また、シェル組み込みコマンドと独立したスタンドアロン実行可能ファイルの両方として実装されるコマンドはほとんどありません。そのようなコマンドの場合、組み込みコマンドが外部コマンドよりも優先されることを常に忘れないでください。したがって、echo something
を実行すると、組み込みのecho
が実行されます。バイナリ実行可能ファイルecho
を実行する場合は、別の方法で呼び出す必要があります。 1つの方法は、実行可能ファイルへの完全パス/bin/echo something
を使用することです。
コマンドの使用可能なすべてのバージョンを表示するには、-a
オプションを指定してtype
を実行します。
$ type -a echo
echo is a Shell builtin
echo is /bin/echo
Shellビルトインのドキュメントを取得するには、man
のbash
pageを確認するか、help
コマンド(ビルトインコマンド)を使用します。
help jobs
また、@ terdonが指摘したように type
の代わりにwhich
を使用する必要があります 。
これらはシェルに組み込まれています-bashシェルプロンプトでhelp fg
またはhelp jobs
と入力するか、bashのマンページから詳細情報を入力することにより、基本的な使用情報を取得できます。
Heemaylの答えに加えて、fg
、bg
、およびjobs
必要はシェルのメモリ内のデータ構造および/またはシェルのカーネル状態を操作するため、シェルに組み込まれていることを指摘する価値があります。処理する。 fg
が行うことを行う外部コマンドを作成することはできません。
内蔵されなければならない他のコマンドがcd
、eval
、exec
、exit
、export
、history
、read
、set
、source
(別名.
)、shift
、trap
、ulimit
、umask
、及びwait
が挙げられます。シェルは、実装する拡張機能の量に応じて、より長いリストを持つ場合があります。 POSIXには「特別な組み込みユーティリティ」の異なるが重複するリストがあります -なぜbreak
やcontinue
のようなものが制御構造のキーワードではなくコマンドとしてカウントされるのか、なぜPOSIXなのかわかりませんdoes n't他の方法で実装できない場合は、umask
must-build-inなどを考慮してください。 ( umask(2)
と呼ばれる/bin/umask
と呼ばれるプログラムを書くことができますが、シェルによって作成された後続のプロセスではなく、それ自体の設定を変更するだけなので、仕様を満たしません。 )
fg
、bg
、およびjobs
は個別のユーティリティではありませんが、bash
(シェル組み込みコマンド)の一部です。
コマンドを使用してbashマニュアルでそれらの詳細を見つけることができます
man bash
これは、シェルの組み込みコマンドです。これらはBash(または使用しているシェル)の一部であるため、バイナリはありません。
それらは、たとえば Bash manpage に文書化されています(「シェルビルトコマンド」セクションを参照)