curluneの日記

日々試行錯誤。雑多に、気ままに、てきとーに。HoloLens/Oculus Rift,Touchと戯れる日々。

bashのjob機能を使う ぷちアドベントカレンダー2017 25日目

CUI環境での実行切替、bashのjob機能についてのお話です。

CUIでも実行切替

GUIではウィンドウを選んで操作対象を切り替えるように、CUIでも捜査対象を切り替えることができます。そんなときに出てくるのがjob機能です。

マウスの代わりに、ショートカットキーやコマンドを使って操作します。

ざっくり

  • jobs
    • プログラムの一覧と対応番号を表示
  • Ctrl+z
    • いまのプログラムを一時停止(してbashへ戻る)
  • fg
    • プログラムを操作状態に戻す
  • bg
    • プログラムを操作無しで実行(バックグラウンド)
  • (コマンド実行時、最後に)&
    • 最初から操作無しで実行

fgbg は数字を渡せます。渡した場合は対応番号のプログラムを対象にします。渡さなかった場合は最近操作し他物が選ばれます。

Ctrl+zで一時停止、fgの2つだけで、中断と再開ができます。

&を付け忘れて実行したとき、Ctrl+zで一旦止めてbgで裏で実行。実質的に&を付けて実行した酔うな状態にできます。

3つの状態

プログラムの状態はこんな感じです。

  • GUI
    • アクティブ
    • 非アクティブ
    • 最小化
  • CUI
    • フォアグラウンド
    • バックグラウンド
    • 一時停止
  • 説明
    • 操作中
    • 操作していないけど動いている
    • 動いていない

本当は最小化は動いてるけど、簡易的に...。

終わりに

なんだかんだで多用しているありがたい機能です。sshな環境でDB操作や、ファイル編集へ行ったり来たり。どんな環境でも使えるものは良い物です。