【画像解説】tmuxのウィンドウ入れ替えを使いこなす方法

【画像解説】tmuxのウィンドウ入れ替えを使いこなす方法 Linuxサーバ

tmuxのウィンドウ(window)は、1セッション内に必ず1つ用意されているサーバを操作する画面になります。

TeraTermでサーバに接続してtmuxを利用せずに、操作する画面と何も変わりませんが、tmuxのウィンドウを利用すると複数のウィンドウを持つことができます。
ウィンドウを切り替えることで複数の作業を同時に実行することが可能となります。

tmuxのウィンドウについて、複数のウィンドウを操作するケースを実例とともに操作画面を使って解説しています。

また、ウィンドウ操作でよく利用するコマンド一覧を作成してまとめています。
こちらも参考にしてください。

スポンサーリンク

tmuxのウィンドウ入れ替えを使いこなすケース例

シチュエーション
  1. 「ユーザ1」がTeraTermでサーバに接続
    • tmuxのセッションに
      「ユーザ1」はセッション名「user1」で接続

  2. 「ユーザ1」は「user1」でtopコマンドを実行
    ※ウィンドウ「0」

  3. 「ユーザ1」はtopコマンド実行中に他の作業ができないので、新規ウィンドウを作成
    ※ウィンドウ「1」

  4. 「ユーザ1」は新規ウィンドウでファイルを編集
    ※ウィンドウ「1」

  5. 「ユーザ1」はファイル編集中にtopコマンド画面を確認
    ※ウィンドウ「1」->ウィンドウ「0」へ切替え

  6. 「ユーザ1」はtopコマンド画面を確認後、すべての作業を中断してTeraTermを終了
    ※tmuxをデタッチしてTeraTermをexitする

  7. 「ユーザ1」はTeraTermでサーバへ接続

  8. 「ユーザ1」はtopコマンド画面の確認と中断していたファイル編集の続きを開始
    ※tmuxの「user1」のセッションへアタッチ

  9. 「ユーザ1」はファイル編集が終わったのでウィンドウを終了
    ※ウィンドウ[1」を終了

  10. 「ユーザ1」はtopコマンド実行を終了してtmuxのセッションを完全終了し、TeraTerm接続も終了
    ※ウィンドウ「0」を終了
     ->セッションを完全終了させるためアタッチ不可

シチュエーションのイメージ図
tmuxのウィンドウ入れ替えイメージ図

※イメージ図の番号はシチュエーション番号と連動



効果
  1. TeraTermなどのターミナルでのサーバへ接続が1回で済む
  2. 一人のユーザがウィンドウを切り替えて複数の作業を同時に実施することが可能
  3. 作業中の操作を中断することが可能



操作手順

「user1」セッションの画面

1.
TeraTeamでサーバに接続し、user1のセッション名でtmuxに接続

tmux new -s user1
TeraTeamでサーバに接続してuser1のセッション名でtmuxのセッションに接続
TeraTeamでサーバに接続してuser1のセッション名でtmuxのセッションに接続


2.
ウィンドウ「0」※画面左下
tmuxセッションの接続状態を確認してtopコマンドを実行

tmux ls
top
tmuxのセッションの接続状態を確認してtopコマンドを実行


3.
ウィンドウ「0」
topコマンド実行中で他の作業ができないので、新しいウィンドウを作成

「【Ctrl】+b」キー押下後,「c」キー押下

※topコマンド実行中で、プロンプトは返ってこないですがキーを入力

tmuxのセッションの接続状態を確認してtopコマンドを実行


4.
ウィンドウ「1」
新規ウィンドウが作成され、ウィンドウ「0」から「1」に遷移しファイルを編集
「1:bash※」の「※」マークがある方がアクティブウィンドウ

 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
新規ウィンドウが作成され、ウィンドウ「0」から「1」に遷移しファイルを編集
新規ウィンドウが作成され、ウィンドウ「0」から「1」に遷移しファイルを編集


5.
ウィンドウ「1」
ファイル編集中にtopコマンド画面を確認するため、ウィンドウ「1」から「0」へ切り替えを実施

「【Ctrl】+b」キー押下後,「n」キー押下

※viエディターでファイル編集中で、プロンプトはないですがキーを入力

ファイル編集中にtopコマンド画面を確認するため、ウィンドウ「1」から「0」へ切り替えを実施


6.
ウィンドウ「0」
ウィンドウ「0」で実行していたtopコマンドの状態を確認

ウィンドウ「0」で実行していたtopコマンドの状態を確認


7.
topコマンドを実行したまま、作業を中断してTeraTermを終了
※「user1」セッションを終了せずにデタッチ
※ウィンドウ「0」と「1」で実行していたものは継続して動作し続けています

「【Ctrl】+b」キー押下後,「d」キー押下

※topコマンド実行中で、プロンプトは返ってこないですがキーを入力

exit
topコマンドを実行したまま、作業を中断してTeraTermを終了


8.
再度、TeraTeamでサーバに接続し、user1のセッション名でtmuxに接続
※user1セッションを新規作成するのではなく、保持していたuser1セッションへ再接続

tmux a -t user1
再度、TeraTeamでサーバに接続し、user1のセッション名でtmuxに接続


9.
ウィンドウ「0」
ウィンドウ「0」で実行中であったtopコマンドが実行中のままであることを確認
※TearaTeamでの再接続後でもtopコマンドの実行は維持

ウィンドウ「0」で実行中であったtopコマンドが実行中のままであることを確認


10.
ウィンドウ「1」
ウィンドウ「0」から「1」に遷移してファイル編集の続きを開始
※こちらもTearaTeamでの再接続後、ファイル編集の続きが可能

「【Ctrl】+b」キー押下後,「n」キー押下

※topコマンド実行中で、プロンプトは返ってこないですがキーを入力

ウィンドウ「0」から「1」に遷移してファイル編集の続きを開始


11.
ウィンドウ「1」
ウィンドウ「1」でのファイル編集を終了し、ウィンドウ「1」も終了
※TeraTeamは終了せずに、ウィンドウ「0」に遷移

「【esc】キー押下後,「:wq」キー押下,【enter】キーで実行
exit
ウィンドウ「1」でのファイル編集を終了し、ウィンドウ「1」も終了
ウィンドウ「1」でのファイル編集を終了し、ウィンドウ「1」も終了


12.
ウィンドウ「0」
ウィンドウ「1」から「0」に遷移されるとtopコマンドが実行中なので、topコマンドを終了してウィンドウ「0」も終了

【ctrl】+「c」キー押下
exit
ウィンドウ「1」から「0」に遷移されるとtopコマンドが実行中のままなので、topコマンドを終了してウィンドウ「0」も終了
ウィンドウ「1」から「0」に遷移されるとtopコマンドが実行中のままなので、topコマンドを終了してウィンドウ「0」も終了


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の入力は不要


コメント

タイトルとURLをコピーしました