【画像解説】tmuxとは?TeraTermで使いこなすサーバ運用での使い方とコマンド一覧

【画像解説】tmuxとは?TeraTermを使いこなすサーバ運用での使い方とコマンド一覧 Linuxサーバ

サーバ運用をしている方は、自端末からTeraTermなどのターミナルエミュレータ(※以後ターミナル)を利用してLinuxサーバに接続し、業務を行っているケースが多くあると思います。

「tmux」とは
サーバー上でプログラムをバックグラウンドで実行し、デーモンとして動作させることができます。
これにより、プログラムがサーバーから切断された場合でも、実行を続行できるようになります。
さらに、サーバー上で複数のターミナルウィンドウを開いて、それらを柔軟に切り替えたり、同時に表示したりできます。

他にも便利な機能はありますが、主にこの「2つの便利な機能」を利用すると、サーバ運用の効率がアップするので深堀りして解説します。
但し、
サーバの再起動・停止をすると、この便利な機能は、リセットされますので注意してください。


■tmuxの便利な機能その1
突然、TeraTermで接続していたサーバと接続が切れても、実行中の作業は維持しており、TeraTermで再接続すると続きから作業を再開できます。

■tmuxの便利な機能その1
ターミナルセッションをバックグランドで実行




■tmuxの便利な機能その2
サーバに一度のTeraTerm接続で、複数の仮想的なターミナルウィンドウを開くことができます。
複数のターミナルを切り替えたり、同時に表示させたりできます。

■tmuxの便利な機能その2
複数のターミナルウィンドウを開く


スポンサーリンク

tmuxのコマンドとキーコンビネーション対比表

tmuxコマンド実行でセションを開始し、例えば、下記の2つ操作方法は同じ意味になります。

  • tmux new-window」とコマンド実行する方法
  • (「【Ctrl】 + b 」キー押下後、「c」キー押下)とプレフィックスキー(【Ctrl】 + b)と別のキーを押すキーコンビネーション(ショートカットキー)を利用してコマンドを実行する方法

この様に、同じ意味なるコマンドとキーコンビネーションの対比表を作成したので参考に利用ください。

セッションの操作で利用
コマンドキーコンビネーション説明
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 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の入力は不要




tmuxの使い方

tmuxのインストール

Linuxサーバ系ではパッケージをインストールします。

dnf  install -y tmux


tmuxの利用方法

この利用方法で「■tmuxの便利な機能その1」を確認できます。

1.tmuxを開始してセッション接続する

1-1
TeraTermでサーバへ接続
※tmuxコマンド実行前の状態

1-1
TeraTermでサーバへ接続しtmuxコマンド実行前の状態

ーーーーーーーーー>
tmuxコマンドを実行

1-2
tmuxのセッションへ接続完了
※tmuxコマンド実行後の状態

1-2
tmuxコマンド実行後の状態
(tmuxセッションへ接続完了)

※画面下にtmuxのステータスバーが表示

tmuxのステータスバーが表示
tmux


1-3
通常通り作業を実施


viエディターでファイルを編集
# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

通常通り作業を実施
例
viエディターでファイルを編集
# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3



2.tmuxのセッション接続からデタッチ(離脱)する

2-1
ファイル編集中(1-3の状態)にtmuxのセッションからデタッチ

tmux detach-client

または、「【Ctrl】+b」キー押下後,「d」キー押下

2-1
ファイル編集中(1-3の状態)にtmuxセッションからデタッチ(離脱)する

->今回は、ファイル編集中だったので「「【Ctrl】+b」キー押下後,「d」キー押下」を実行してデタッチ
※「「【Ctrl】+b」キー押下後,「:」キー押下後,「detach-client」と入力して実行」でもデタッチ可能

2-2
デタッチしたセッションを確認

tmux ls
2-2
デタッチしたセッションを確認

※tmuxのセッションを抜けただけなのでファイル編集中のセッションは保持



2-3
TeraTeamの接続を終了(デタッチしてから「exit」する)

exit
2-3
TeraTeamでの接続を終了(exitする)



3.デタッチしたtmuxのセッションへアタッチする

3-1
TeraTeamでサーバへ再接続してデタッチしたセッションへアタッチ

tmux a
3-1
TeraTeamでサーバへ再接続してデタッチしたセッションへアタッチする
※新規にtmuxセッション接続することではありません。


3-2
tmuxのセッションをデタッチする前にファイル編集していた状態を維持


「1-3」でファイル編集していた状態を維持

3-2
tmuxセッションをデタッチする前にファイル編集していた状態を維持する

※作業中にTeraTermのセッションが切れても再接続することで作業を継続することができます。



4.tmuxのセッションを終了する

4-1
継続作業が無く完全にセッションを終了
※アタッチによる継続操作が不可

tmux kill-session -t 0
tmux ls
4-1
継続作業が無く完全にセッションを終了
※タッチによる継続操作が不可
4-1
継続作業が無く完全にセッションを終了
※タッチによる継続操作が不可

->自身が接続しているtmuxのセッションを終了させたい場合「 tmux kill-session」とセッション名の省略が可能
->tmuxのセッションに接続している状態で、「exit」コマンドを実行するとtmuxのセッションは終了(※TeraTeamは終了しません)




tmuxのセッション・ウィンドウ・ペインについて

ここでの解説で「■tmuxの便利な機能その2」を確認できます。
サーバ運用でよく利用する方法を実例を交えて解説します。

■tmuxのセッション
複数のユーザがサーバを利用するときに、一般的に1セッション1ユーザが利用します。セッション接続すると最低1つのウィンドウが準備されています。

■tmuxのウィンドウ
ウィンドウは、一人の利用者が利用する操作画面になります。複数の操作を別々に実施したい場合、ウィンドウを分けることで操作画面を増やすことができます。

■tmuxのペイン
ペインは、1つのウィンドウ画面に複数の操作画面を同時に表示させたい時に利用する為のものです。

tmuxセッションとウィンドウ、ペインの関係図
tmuxのセッションとウィンドウ、ペインの関係図



tmuxのセッション

ユーザ毎にそれぞれTeraTermでサーバに接続してtmuxのセッションに接続します。

以下は
・「ユーザ1」が「user1」セッションを利用
・「ユーザ2」が「user2」セッションを利用
とすることで、ユーザ毎に利用しているセッションを分けて管理できます。

「user1」セッションの画面

tmux new -s user1
「user1」セッションの画面

「user2」セッションの画面

tmux new -s user2
「user2」セッションの画面



tmuxのウィンドウ

一度のTeraTerm接続で複数のターミナルウィンドウを利用できます。

以下は
・「ユーザ1」が「user1」セッションで2つのウィンドウを利用
することで、2つの作業を分けて利用できます。

「user1」セッションの画面

tmux new -s user1
tmux new-window

キーコンビネーション:【Ctrl】+b, c

tmux ls

「0」ウィンドウの画面

「user1」セッション
「0」ウィンドウの画面

「1」ウィンドウの画面

「user1」セッション
「1」ウィンドウの画面

※「ウィンドウ切り替え」

次のウィンドウ
 「【Ctrl】+b」キー押下後,「n」キー押下
前のウィンドウ
 「【Ctrl】+b」キー押下後,「p」キー押下



tmuxのペイン

複数のターミナルウィンドウを分割して同時に閲覧することができます。

以下は
・「ユーザ1」が「user1」セッションで2つのウィンドウを分割して利用
することで、2つの作業を同時に閲覧することができます。

「user1」セッションの画面

tmux new -s user1
tmux ls

上下にペインを分割

tmux split-window -v   
「user1」セッション
「0」ウィンドウの画面
上下にペインを分割

左右にペインを分割

tmux split-window -h   
「user1」セッション
「0」ウィンドウの画面
左右にペインを分割

※ペインの移動(操作画面を切り替え)

上下左右のペイン
 「【Ctrl】+b」キー押下後,「矢印」キー




まとめ:tmux利用のメリット

  • tmuxのセッションをデタッチすることで、実行中の作業は継続されTeraTermを終了しても作業の再開が可能
    ※作業途中でもTeraTermでのリモート接続を終了することが可能

  • サーバとのリモート接続によるセッション断に影響されることなく、作業継続が可能
    ※突然、サーバとの接続が切れても、サーバに再接続し、tmuxのアタッチをすることで、サーバとの接続が切れる前の状態から作業継続が可能

  • TeraTermなどのターミナルをいくつも起動する必要がなく画面切り替えにより複数の作業が可能

  • TeraTermの画面を分割することで複数の画面を同時に参照(画面分割)することが可能


コメント

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