こんにちは、受託コンサルティングチームの nakagawam です。
データ解析を手元のPCではなく、スパコンや解析サーバ上で行われている方も多いと思います。 今日ではAWS, Azure, GCPなどクラウドサービスを使われている方も多いかもしれません。
サーバとの通信には一般にSSHを利用することが多いと思いますが、時間がかかる解析を実行中にセッションが落ちてしまった!というトラブルや、べつのウインドウを開いて2重で解析を行いたいなと思う場面なども多いのではないでしょうか。
そのような状況で便利なtmuxについてご紹介しようと思います。
動作環境
作業環境 Windows 11 Pro 24H2 Ubuntu 22.04.5 LTS on WSL2
tmuxとは
tmuxは「ターミナルマルチプレクサ」と呼ばれるツールです。 一つのターミナルウィンドウ内で複数の独立した仮想的なターミナル環境(セッション、ウィンドウ、ペイン)を作成・管理することができます。
tumxの利点
- セッションの維持: tmuxセッションは、ターミナルウィンドウを閉じたり、SSH接続が切断されたりしてもバックグラウンドで実行され続けます。これにより、作業状態を失うことなく、後でセッションに再接続(アタッチ)して作業を再開できます。
- 作業効率の向上: 複数のウィンドウやペインを切り替えたり配置したりすることで、複数の作業を並行して効率的に行えます。
- リモート接続との連携: SSHなどでリモートサーバーに接続して作業する場合、tmuxを使うことで接続が切れても作業が中断されないため非常に便利です。
使い方
以下では、tmuxの入門者向け機能紹介を行います。
新規セッションを追加する
tmux
or
tmux new -s セッション名
これでtmuxのセッションに入れます。
セッションを切り離す(デタッチ)
Ctrl-b + d
これでセッションから出ることができます。 先ほどのセッションの中で実行していたプログラムは止まりません。
セッションに再接続する
tmux a -t セッション名
先ほどデタッチしたセッションに再度入ることができます。 デタッチしていた間に実行中のプログラムについても、終了が終わっていれば終了した後の状態ですし、実行中であればその状態でアタッチされます。
セッションの一覧を表示する
tmux ls
現在作成しているセッションの一覧が表示されます。 再接続するセッション名が分からないときなどに利用できます。
ペインを分割する
Ctrl-b + % # 左右 Ctrl-b + " # 上下
ペインを分割し、1つのセッションに対し2つのペインを作成することができます。
カーソル移動、コピー
過去の出力をさかのぼりたいときやそこからコピーしたい場合は以下のキーを押し、コピーモードに入ります。
Ctrl + b [
コピーモードでは矢印キーを利用して自由に移動することができ、
Ctrl + Space(スペース)
で文字列の選択が始まります。 選択範囲の文字列をコピーしたい場合は
Ctrl + w
単純にモードを終了したい場合は
Esc(エスケープキー)
を押します。 コピーした文字列を貼り付けたい場合は
Ctrl + b ]
でターミナルに貼り付けることができます。
いかがでしたでしょうか。 tmuxにはまだまだ便利な機能があります。(私はコマンドのログを取得したりしています。)さらにtmuxについて知りたくなった方はぜひtmuxのwiki やネット検索などをご利用ください。 ぜひtmuxで快適な解析ライフを!