お兄ちゃん!
音楽を聴きながら
作業をするように
複数のコマンドを
同時に動かせないかな?
ちゃんとそういう仕組みがあるよ!
「バックグラウンド実行」
とよばれるんだ
やっぱりできるんだね!
教えて欲しい!
sleep は
指定した秒数だけ待機するよ
指定がなければ1秒待機するんだ
sleep [秒数]
好きな秒数で
sleep を動かしてみよう!長すぎない数字がいいよね3秒でどうかな?
sleep 3
…あっ3秒後ぐらい待たされた後にプロンプトが表示されたよ!
sleep が終わるまで次の操作ができないよねこれをこの「フォアグラウンド」を 「バックグラウンド」に持っていこう コマンドの最後に
& を付けるだけだよコマンド &
今回は長めの方がいいよね?これでどうかな?
sleep 273 &
あっ!すぐにプロンプトが返ってきた!
[1] 5123
しかも
[1] と何かメッセージが出てきたよsleep がバックグラウンドで動いてフォアグラウンドで他の操作ができるようになったんだバックグラウンドで動いているプログラムを表示された「ジョブ番号(job number, jobspec)」で ジョブを一意に識別する番号なんだ
[1] はjobs コマンドジョブの動作状況は見えにくいよねジョブの確認はどうすればよいのかな?
jobs はジョブ一覧を表示するよjobs [オプション]... [ジョブ番号]...
ここでは
jobs だけ実行してみよう!jobs
さっきの
sleep はバックグラウンドで動いていてくれているかな?[1]+ Running sleep 273 &
おお!
sleep 273 & が動いているのがわかるね!fg コマンドfg はジョブをフォアグラウンドに移すよforeground の略なんだfg [ジョブ番号]
指定が無ければ最後に実行されたジョブが対象になるよ以下を実行してみよう!
fg
実行したよ!
sleep 273
sleep のジョブがフォアグラウンドになったんだねプロンプトが表示されず待たされ続けているよbg コマンドフォアグラウンドで動いているコマンドをバックグラウンドに戻すこともできるのかな?
もちろんできるよ!Ctrl + Z を押してみて
Ctrl + C の割り込みと操作が似ているね
[1]+ Stopped sleep 273
プロンプトが返ってきたね!
jobs と同じ感じで番号が表示されたよ!これはコマンドが一時停止状態になってバックグラウンドに移ったという意味なんだ
bg は一時停止状態のジョブを再開するよこれは background の略だよbg [ジョブ番号]...
これも
bg だけで実行しよう!ジョブの指定がなければ直前に一時停止になったジョブを再開するよbg
じゃあ
bg を実行するね![1]+ sleep 273 &
表示があってすぐプロンプトが返ってきたよ!
ジョブの状況を確認してみよう
jobs
どれどれ…
[1]+ Running sleep 273 &
本当だ!また裏で動き始めてくれたんだね!
コマンドの後ろに
& を付けるだけでバックグラウンド実行になるんだね!関連コマンド jobs, fg, bg も学んだよ!バックグラウンド実行されるコマンドは音楽再生のようにずっと裏で動いて欲しいコマンドや時間のかかる処理などが実行されることが多いよ今意識している操作をフォアグラウンドで進めてLinux を快適に操作しよう!