tmuxのウィンドウ(window)は、1セッション内に必ず1つ用意されているサーバを操作する画面になります。
TeraTermでサーバに接続してtmuxを利用せずに、操作する画面と何も変わりませんが、tmuxのウィンドウを利用すると複数のウィンドウを持つことができます。
ウィンドウを切り替えることで複数の作業を同時に実行することが可能となります。
tmuxのウィンドウについて、複数のウィンドウを操作するケースを実例とともに操作画面を使って解説しています。
また、ウィンドウ操作でよく利用するコマンド一覧を作成してまとめています。
こちらも参考にしてください。
tmuxのウィンドウ入れ替えを使いこなすケース例
シチュエーション
- 「ユーザ1」がTeraTermでサーバに接続
- tmuxのセッションに
「ユーザ1」はセッション名「user1」で接続
- tmuxのセッションに
- 「ユーザ1」は「user1」でtopコマンドを実行
※ウィンドウ「0」 - 「ユーザ1」はtopコマンド実行中に他の作業ができないので、新規ウィンドウを作成
※ウィンドウ「1」 - 「ユーザ1」は新規ウィンドウでファイルを編集
※ウィンドウ「1」 - 「ユーザ1」はファイル編集中にtopコマンド画面を確認
※ウィンドウ「1」->ウィンドウ「0」へ切替え - 「ユーザ1」はtopコマンド画面を確認後、すべての作業を中断してTeraTermを終了
※tmuxをデタッチしてTeraTermをexitする - 「ユーザ1」はTeraTermでサーバへ接続
- 「ユーザ1」はtopコマンド画面の確認と中断していたファイル編集の続きを開始
※tmuxの「user1」のセッションへアタッチ - 「ユーザ1」はファイル編集が終わったのでウィンドウを終了
※ウィンドウ[1」を終了 - 「ユーザ1」はtopコマンド実行を終了してtmuxのセッションを完全終了し、TeraTerm接続も終了
※ウィンドウ「0」を終了
->セッションを完全終了させるためアタッチ不可
シチュエーションのイメージ図
※イメージ図の番号はシチュエーション番号と連動
効果
- TeraTermなどのターミナルでのサーバへ接続が1回で済む
- 一人のユーザがウィンドウを切り替えて複数の作業を同時に実施することが可能
- 作業中の操作を中断することが可能
操作手順
「user1」セッションの画面
1.
TeraTeamでサーバに接続し、user1のセッション名でtmuxに接続
tmux new -s user1
2.
ウィンドウ「0」※画面左下
tmuxセッションの接続状態を確認してtopコマンドを実行
tmux ls
top
3.
ウィンドウ「0」
topコマンド実行中で他の作業ができないので、新しいウィンドウを作成
「【Ctrl】+b」キー押下後,「c」キー押下
※topコマンド実行中で、プロンプトは返ってこないですがキーを入力
4.
ウィンドウ「1」
新規ウィンドウが作成され、ウィンドウ「0」から「1」に遷移しファイルを編集
「1:bash※」の「※」マークがある方がアクティブウィンドウ
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
5.
ウィンドウ「1」
ファイル編集中にtopコマンド画面を確認するため、ウィンドウ「1」から「0」へ切り替えを実施
「【Ctrl】+b」キー押下後,「n」キー押下
※viエディターでファイル編集中で、プロンプトはないですがキーを入力
6.
ウィンドウ「0」
ウィンドウ「0」で実行していたtopコマンドの状態を確認
7.
topコマンドを実行したまま、作業を中断してTeraTermを終了
※「user1」セッションを終了せずにデタッチ
※ウィンドウ「0」と「1」で実行していたものは継続して動作し続けています
「【Ctrl】+b」キー押下後,「d」キー押下
※topコマンド実行中で、プロンプトは返ってこないですがキーを入力
exit
8.
再度、TeraTeamでサーバに接続し、user1のセッション名でtmuxに接続
※user1セッションを新規作成するのではなく、保持していたuser1セッションへ再接続
tmux a -t user1
9.
ウィンドウ「0」
ウィンドウ「0」で実行中であったtopコマンドが実行中のままであることを確認
※TearaTeamでの再接続後でもtopコマンドの実行は維持
10.
ウィンドウ「1」
ウィンドウ「0」から「1」に遷移してファイル編集の続きを開始
※こちらもTearaTeamでの再接続後、ファイル編集の続きが可能
「【Ctrl】+b」キー押下後,「n」キー押下
※topコマンド実行中で、プロンプトは返ってこないですがキーを入力
11.
ウィンドウ「1」
ウィンドウ「1」でのファイル編集を終了し、ウィンドウ「1」も終了
※TeraTeamは終了せずに、ウィンドウ「0」に遷移
「【esc】キー押下後,「:wq」キー押下,【enter】キーで実行
exit
12.
ウィンドウ「0」
ウィンドウ「1」から「0」に遷移されるとtopコマンドが実行中なので、topコマンドを終了してウィンドウ「0」も終了
【ctrl】+「c」キー押下
exit
13.
tmuxのuser1のセッションを終了してTeraTeam接続も終了
※別のユーザが作成したuser1以外のセッションは保持
exit
tmuxのウィンドウで利用するコマンド
ウィンドウの操作で利用
コマンド | キーコンビネーション | 説明 |
---|---|---|
tmux new-window | 【Ctrl】+b, c | 新しいウィンドウを作成 |
tmux next-window | 【Ctrl】+b, n | 次のウィンドウに切り替え |
tmux previous-window | 【Ctrl】+b, p | 前のウィンドウに切り替え |
- | 【Ctrl】+b, w | 視覚的にウィンドウを選択 ※切り替えたいウィンドウをカーソルキーで選択して実行(Enterキー)で切り替えできます。 |
tmux lsw tmux lsw -a | - | ウィンドウの一覧を表示 「-a」:別のセッションのウィンドウの一覧も表示する |
tmux rename-window | 【Ctrl】+b, , | 現在のウィンドウ名を変更 |
tmux kill-windows tmux kill-windowss -t 【ウィンドウ番号】 exit | 【Ctrl】+b, & | 現在のウィンドウを削除 「-t」:指定した【ウィンドウ番号】を終了する ※キーコンビネーションで実行した場合は、(y/n)の終了確認をします。 |
tmuxのその他コマンド
セッションの操作で利用
コマンド | キーコンビネーション | 説明 |
---|---|---|
tmux tmux new -s 【セッション名】 | - | 新規セッションを開始 「-s」:指定した【セッション名】で新規セッションを開始 【セッション名】の指定がない場合は「0」から順番に自動で付与 ※tmuxのセッションを開始(接続)する前に実行するコマンド |
tmux ls tmux list-session | - | セッションの一覧を表示 |
- | 【Ctrl】+b, s | セッションの一覧を詳細表示 |
tmux detach-client | 【Ctrl】+b, d | セッションをデタッチする (切り離す/離脱する) |
tmux attach-session tmux a tmux attach-session -t 【セッション名】 tmux a -t 【セッション名】 | - | 直近でデタッチしたセッションにアタッチ(接続する) 「-t」:指定した【セッション名】にアタッチする ※tmuxのセッションを開始(接続)する前に実行するコマンド |
tmux kill-session tmux kill-session -t 【セッション名】 exit | - | セッションを完全に終了 「-t」:指定した【セッション名】を終了する ※セッション内で実行中のすべてのウィンドウ、ペインを終了 |
tmux kill-server | - | すべてのtmuxサーバを完全に停止 ※tmuxのセッション、ウィンドウ、ペインをまとめて終了(復元不可) |
ペインの操作で利用
コマンド | キーコンビネーション | 説明 |
---|---|---|
tmux split-window -v | 【Ctrl】+b, % | ウィンドウを左右に分割 |
tmux split-window -h | 【Ctrl】+b, " | ウィンドウを上下に分割 |
tmux display-panes | 【Ctrl】+b, q | 分割された[ペイン番号]を確認 ※操作画面を切り替えたい時に利用 ※ペイン番号は「0」から昇順で割り振れます ※ペンイン番号は、左右なら左から順番に割り振られます ※ペンイン番号は、上下なら上から順番に割り振られます |
tmux select-pane -t [ペイン番号] | 【Ctrl】+b, [矢印]キー | 分割されたペインの操作画面を移動 |
- | 【Ctrl】+b, z | 分割されたペインの操作画面を最大化 再度、実行すると元に復帰 ※操作画面だけを最大化され表示 ※他のペインは終了されていません |
- | 【Ctrl】+b, [スペース]キー | 実行するたびに、分割されたペインのレイアウトをいろいろ変更 |
tmux swap-pane -U | 【Ctrl】+b, { | 現在のペインを前方に入れ替え ※[ペイン番号]を小さい番号に切り替える |
tmux swap-pane -D | 【Ctrl】+b, } | 現在のペインを後方に入れ替え ※[ペイン番号]を大きい番号に切り替える |
tmux kill-pane tmux kill-pane -t 【ペイン番号】 exit | 【Ctrl】+b, x | 現在のペインを削除 「-t」:指定した【ペイン番号】を終了する |
その他の操作で利用
コマンド | キーコンビネーション | 説明 |
---|---|---|
tmux list-commands | - | 使用可能なtmuxコマンドの一覧を表示 |
- | 【Ctrl】+b, ? | 使用可能なtmuxのキーコンビネーションの一覧を表示 |
tmux scroll-up tmux scroll-down | 【Ctrl】+b, PgUp 【Ctrl】+b, PgDown | ペイン内の上下にスクロール ※tmuxのセッション内ではマウスによるスクロールができません。有効にするには、「~/. tmux.conf」 という名前の設定ファイルを編集で可能ターミナルによって機能しない場合あり #マウススクロールを有効にする set -g mouse on |
- | 【Ctrl】+b, : | tmuxコマンドのコマンドプロンプトを表示 ※「:」キー入力後にコマンドを入力するとそのコマンドが実行 ※操作画面が実行中でプロンプトが返ってこない状況化でtmuxコマンドを実行することが可能 例 「tmux kill-session」を実行したい場合 【Ctrl】+b, :キー入力後、「kill-session」と入力してコマンドを実行 ※tmuxの入力は不要 |
コメント