【画像解説】tmuxで複数セッションを使いこなす方法

【画像解説】tmuxで複数セッションを使いこなす便利な使い方 Linuxサーバ

tmuxのセッション(session)は、対象サーバに対して1ユーザが1セッションを利用するのが一般的となります。

セッションをうまく活用すると、別ユーザのセッションを参照・操作してサポートすることが可能となります。

tmuxのセッションについて、理解を深める為に、よく利用されるケースを実例とともに操作画面を使って解説しています。

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

スポンサーリンク

tmuxのセッションを使いこなすケース例

シチュエーション
  1. 「ユーザ1」と「ユーザ2」がそれぞれTeraTeamでサーバに接続

  2. tmuxのセッションに
    「ユーザ1」はセッション名「user1」で接続
    「ユーザ2」はセッション名「user2」で接続

  3. 「ユーザ1」は「user1」でtopコマンドを実行
    「ユーザ2」は「user2」でファイルを編集

  4. 「ユーザ2」がファイル編集中に「ユーザ1」の画面を閲覧し、topコマンドを終了
    ※「ユーザ2」が「user2」をデタッチして「user1」へアタッチして画面を閲覧

  5. 「ユーザ2」は「ユーザ1」の画面確認後、ファイル編集中の作業を継続
    ※「ユーザ2」が「user1」をデタッチして「user2」へアタッチしてファイル編集を継続

  6. 作業が終了し「ユーザ1」と「ユーザ2」はtmuxのセッションを完全終了しTeraTerm接続も終了
    ※「ユーザ1」が「user1」セッションを完全終了させTeraTerm接続も終了
    ※「ユーザ2」が「user2」セッションを完全終了させTeraTerm接続も終了

シチュエーションのイメージ図
tmuxの複数セッション利用イメージ図

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



効果
  1. 作業中の操作を中断することが可能

  2. お互いの操作内容を共有することが可能

  3. ユーザ毎にtmuxのセッション管理が可能



操作手順

「user1」セッションの画面

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

tmux new -s user1
ユーザ1
user1のセッション名でtmuxのセッションに接続
tmux new -s user1

2.
tmuxのセッションの接続状態を確認

tmux ls
ユーザ1
user1のセッションの接続状態を確認
tmux ls

※画面左下でセッション名(user1)を確認

3.
user1セッションでtopコマンドを実行

top
ユーザ1
user1のセッションで
topコマンド実行

4.
ユーザ2がuser1セッションのtopコマンド実行を終了させたことを確認

ユーザ1
user1のセッションを参照
ユーザ2がtopコマンドを終了

※ユーザ1は何も操作はしていない
※「user2」セッションの画面の「5.」を参照

5.
user1セッションを完全終了させてTeraTermも終了

tmux kill-session
exit
ユーザ1
user1セッションを終了
ユーザ1
サーバへの接続を終了

「user2」セッションの画面

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

tmux new -s user2
ユーザ2
user2のセッション名でtmuxのセッションに接続
tmux new -s user2

2.
tmuxのセッションの接続状態を確認

tmux ls
ユーザ2
user2のセッションの接続状態を確認
tmux ls

※画面左下でセッション名(user2)を確認

3.
user2セッションでファイルを編集

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
ユーザ2
user2のセッションで
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
ファイル編集

4.
ファイル編集中にuser1の操作画面を閲覧
->user2セッションをデタッチしてuser1セッションへアタッチ

「【Ctrl】+b」キー押下後,「d」キー押下
tmux ls
tmux a -t user1
ユーザ2
user2をデタッチしてuser1へ接続
ユーザ2
user1セッションへ接続

※ユーザ1が閲覧している内容と同じuser1セッションの内容を閲覧することが可能
※操作も可能

5.
ユーザ1が閲覧していたuser1セッションのtopコマンド実行をユーザ2が終了

「【Ctrl】+c」キー押下
ユーザ2
user1のセッションでtopコマンドを終了

※ユーザ1の画面「4.」を参照

6.
user2セッションのファイル編集に戻る
->user1セッションをデタッチしてuser2セッションへアタッチしてファイル編集を継続

「【Ctrl】+b」キー押下後,「d」キー押下
tmux a -t user2
ユーザ2
user1のセッションをデタッチして
user2のセッションへアタッチ
ユーザ2
user2のセッションのファイル編集を終了

7.
ファイル編集を終了しuser2セッションを完全終了させてTeraTermも終了

tmux kill-session
exit
ユーザ2
user2セッションを終了
ユーザ2
サーバへの接続を終了



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のその他コマンド

ウィンドウの操作で利用
コマンドキーコンビネーション説明
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 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をコピーしました