Tmux ターミナル管理術
SSH接続が切れてもプログラムを実行し続けたい場合や、1つのターミナルで複数の作業領域を分割・管理したい場合に必須となるツール「Tmux」の基本的な備忘録。
セッションの作成とビルドログの記録
時間のかかるビルド作業などは、名前をつけた専用のセッションを立ち上げて実行するのが効率的です。
# "alibuild" という名前で新しいセッションを開始
tmux new -s alibuild
セッションに入ったら、重い処理(例: aliBuild)を実行します。
この際、tee コマンドを使って画面への出力とファイルへのログ記録を同時に行うと便利です。
# 標準エラー出力(2)も標準出力(1)にまとめつつ、build.log に保存
aliBuild build O2Physics --defaults o2 -w . 2>&1 | tee build.log
デタッチ (抜ける) と アタッチ (復帰)
重い処理を走らせたまま、そのセッションをバックグラウンドに置いて元のターミナルに戻る(抜ける)操作を「デタッチ(Detach)」と呼びます。キーボードショートカットで行います。
セッションから抜ける (Detach)
現在バックグラウンドで動いているセッションの一覧は tmux ls で確認できます。
# 開いているセッションの一覧表示
tmux ls
先ほどの「alibuild」セッションに再び戻って(復帰して)ログの流れる様子を見たくなったら、attach を使います。
# "alibuild" セッションへの復帰 (Attach)
tmux attach -t alibuild
スクロールモードの利用
Tmux内ではマウスホイールや普通の上スクロールがそのままでは効きません。過去のログを遡って見るには「スクロールモード」に入ります。
モードに入る (履歴を遡る)
モードから抜ける (通常に戻る)
スクロールモードに入った後は、上下の矢印キーや PageUp/PageDown でターミナルの履歴を自由に確認できます。