助け合いフォーラム

LinuC

LinuC Lv1-101(Ver10.0)
問題ID : 14774
問題を開く
下図のジョブ番号2のジョブ(vim test.txt)をフォアグラウンド動作に切り替えたい。適切なコマンドは次のうちどれか。(全て選択)

正解

fg

fg 2

解説

バックグラウンドで動作中または一時停止中のジョブを、フォアグラウンド動作に切り替えるにはfgコマンドを利用します。

fgコマンドの書式は以下のとおりです。

fg [ジョブ番号]

したがって正解は
・fg 2
です。

また、ジョブ番号を引数に指定しない場合は、カレントジョブ(直前にバックグラウンドで実行されたジョブ、または直前に一時停止されたジョブ)がフォアグラウンドに変更されます。
カレントジョブはjobsコマンドの実行結果にある「+」がついているジョブです。
フォアグラウンド動作に切り替えたいジョブはカレントジョブですので、引数にジョブ番号を指定する必要がありません。

したがって「fg」も正解です。

その他の選択肢については以下のとおりです。
・bg
・bg 2
一時停止中のジョブをバックグラウンド動作に切り替えるコマンドですので、誤りです。

・jobs 2
バックグラウンドで動作しているジョブと一時停止中のジョブを表示するコマンドですので、誤りです。

参考

ジョブとはコマンドやプログラムをグループ化して管理するための単位です。例えば、複数のコマンドをパイプでつないで実行したものも、1つのジョブです。

コマンド(ジョブ)はフォアグラウンドまたはバックグラウンドで実行されます。コマンドをシェル上で実行すると、通常フォアグラウンドで実行されます。コマンドをバックグラウンドで実行するには、コマンドラインの末尾に「&」を付けて実行します。

例)「ping localhost > ping.txt」コマンドをバックグラウンドで実行する場合


また、ジョブの動作(フォアグラウンドとバックグラウンド)を変更するには以下のコマンドを使用します。

・fg
バックグラウンドで動作中または一時停止中のジョブを、フォアグラウンド動作に切り替えるコマンドです。

・bg
一時停止中のジョブを、バックグラウンド動作に切り替えるコマンドです。
ジョブを一時停止するには「Ctrl+z」キーを押下します。

以下はジョブ制御の流れをまとめたものです。


なお、フォアグラウンドでコマンドを実行すると、コマンドが終了するまで別のコマンドを実行することができません。

また、現在バックグラウンドで動作している、または一時停止中のジョブはjobsコマンドで確認することができます。


左の[ ]内の数字はジョブ番号、「Running」はバックグラウンドで動作中、「Stopped」は一時停止中のジョブを表します。
なお、「+」がついてるジョブはカレントジョブといいます。カレントジョブとは、直前にバックグラウンドで実行されたジョブ、または直前に一時停止されたジョブのことです。
上に戻る

aghコマンドの引数

投稿日 2023/09/04

fgコマンドでジョブ番号を指定する場合は「%番号」の形だったと思うのですが、%がなくても大丈夫なのでしょうか?

2023/09/04 19:57

% はあってもなくてもいいみたいです。
https://atmarkit.itmedia.co.jp/ait/articles/1707/21/news001_2.html

プロンプトで「fg %1」または「fg 1」を実行すると、ジョブ番号[1]で実行中のジョブ(略)がフォアグラウンドになります


コメント

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?