tmuxのセッション(session)は、対象サーバに対して1ユーザが1セッションを利用するのが一般的となります。
セッションをうまく活用すると、別ユーザのセッションを参照・操作してサポートすることが可能となります。
tmuxのセッションについて、理解を深める為に、よく利用されるケースを実例とともに操作画面を使って解説しています。
また、セッション操作でよく利用するコマンド一覧を作成してまとめています。
こちらも参考にしてください。
tmuxのセッションを使いこなすケース例
シチュエーション
- 「ユーザ1」と「ユーザ2」がそれぞれTeraTeamでサーバに接続
- tmuxのセッションに
「ユーザ1」はセッション名「user1」で接続
「ユーザ2」はセッション名「user2」で接続 - 「ユーザ1」は「user1」でtopコマンドを実行
「ユーザ2」は「user2」でファイルを編集 - 「ユーザ2」がファイル編集中に「ユーザ1」の画面を閲覧し、topコマンドを終了
※「ユーザ2」が「user2」をデタッチして「user1」へアタッチして画面を閲覧 - 「ユーザ2」は「ユーザ1」の画面確認後、ファイル編集中の作業を継続
※「ユーザ2」が「user1」をデタッチして「user2」へアタッチしてファイル編集を継続 - 作業が終了し「ユーザ1」と「ユーザ2」はtmuxのセッションを完全終了しTeraTerm接続も終了
※「ユーザ1」が「user1」セッションを完全終了させTeraTerm接続も終了
※「ユーザ2」が「user2」セッションを完全終了させTeraTerm接続も終了
シチュエーションのイメージ図
※イメージ図の番号はシチュエーション番号と連動
効果
- 作業中の操作を中断することが可能
- お互いの操作内容を共有することが可能
- ユーザ毎にtmuxのセッション管理が可能
操作手順
「user1」セッションの画面
1.
TeraTeamでサーバに接続してuser1のセッション名でtmuxのセッションに接続
tmux new -s user1
2.
tmuxのセッションの接続状態を確認
tmux ls
※画面左下でセッション名(user1)を確認
3.
user1セッションでtopコマンドを実行
top
4.
ユーザ2がuser1セッションのtopコマンド実行を終了させたことを確認
※ユーザ1は何も操作はしていない
※「user2」セッションの画面の「5.」を参照
5.
user1セッションを完全終了させてTeraTermも終了
tmux kill-session
exit
「user2」セッションの画面
1.
TeraTeamでサーバに接続してuser2のセッション名でtmuxのセッションに接続
tmux new -s user2
2.
tmuxのセッションの接続状態を確認
tmux ls
※画面左下でセッション名(user2)を確認
3.
user2セッションでファイルを編集
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
4.
ファイル編集中にuser1の操作画面を閲覧
->user2セッションをデタッチしてuser1セッションへアタッチ
「【Ctrl】+b」キー押下後,「d」キー押下
tmux ls
tmux a -t user1
※ユーザ1が閲覧している内容と同じuser1セッションの内容を閲覧することが可能
※操作も可能
5.
ユーザ1が閲覧していたuser1セッションのtopコマンド実行をユーザ2が終了
「【Ctrl】+c」キー押下
※ユーザ1の画面「4.」を参照
6.
user2セッションのファイル編集に戻る
->user1セッションをデタッチしてuser2セッションへアタッチしてファイル編集を継続
「【Ctrl】+b」キー押下後,「d」キー押下
tmux a -t user2
7.
ファイル編集を終了しuser2セッションを完全終了させてTeraTermも終了
tmux kill-session
exit
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の入力は不要 |
コメント