Linuxコマンド辞典 tmuxコマンド(ユーティリティ)
1つの画面で複数の端末を管理する「tmux」コマンドの概要と使い方を記載しています。「sessions should be nested with care, unset $TMUX to force」エラーメッセージについても記載。
RHEL Fedora CentOS Vine Deblan Ubuntu Plamo
概要・使用方法
書式
$ tmux [オプション] [コマンド]
screenのような端末マルチプレクサです、1つの端末画面に複数の仮想端末画面を開くことができます。「tmux」で実行している端末は、セッションとして管理されます。この中でコマンドを実行していると、端末を閉じずにログアウトしてもセッションは残るので、処理に時間のかかるコマンドを実行した場合に終了を待つ必要がなくなります。
リモートログインして「tmux」を実行した場合、作業中にネットワークトラブルでサーバーとの接続が切れても、再接続後にアタッチすればそのセッションを再開し作業を続けることができます。
セッションのすべてのシェルを終了すれば、「tmux」は終了します。セッション残したまま「tmux」から離れることをデタッチと言います。残したセッションにtmuxで再接続することをアタッチと言います。tmuxを起動するとまず1つの仮想端末が開き、シェルが起動します。1つのセッションで複数の端末を開くことができます。1つの端末を左右上下に分割して複数プログラムの処理結果を見比べることもできます。これらはペインと言います。
tmuxは実行中、コマンドを受け付けることができます。このコマンドを利用することで端末やペインの作成/移動/削除などを行うことができます。コマンドの前に「プレフィックスキー」を入力します。デフォルトでプレフィックスキーは「Ctrl」+「b」です。コマンドキーはこのプレフィックスキーの後に1つキーを押します。例えば「新しい端末を作成する」コマンドの場合は、「Ctrl+b」 「c」を実行します。
tmuxセッションから新しいtmuxセッションを開始しようとすると「sessions should be nested with care, unset $TMUX to force」エラーメッセージが表示される。
これは、アクティブなtmuxセッションにネストすることは、「tmux」が好ましくないと言っています。
「tmux」セッションから以下の方法でネストすることもできます。
$ TMUX='' tmux
オプション
-2 | 256色をサポートする |
-f ファイル名 | 指定したファイルを設定ファイルとして読み込む |
コマンド
attach-session(attach,a) | セッションをアタッチする。「-t セッション番号」を指定すればそれをアタッチする |
list-sessions(ls) | セッションすべてをリスト表示する |
kill-session -t セッション番号 | 指定したセッションを終了する |
new-session コマンド | 指定したコマンドを実行するセッションを作成する。コマンドが囚虜するとセッションを終了する |
主要なコマンド
キー操作 | 説明 |
---|---|
Ctrl + b | tmuxコマンドを入力する前のプレフィックスキー(カスタマイズ可能) |
Ctrl + b o | ペインの表示順序を回転させる |
Ctrl + b z | tmuxクライアントをサスペンスする。サスペンスから戻る場合はfgを使う |
Ctrl + b “ | 「ダブルクォート」で現在のペインを上下に分割する |
Ctrl + b c | 新しい仮想端末を作成する |
Ctrl + b d | デタッチする |
Ctrl + b n | 次の端末に移動する |
Ctrl + b p | 前の端末に移動する |
Ctrl + b o | 次のペインに移動する |
Ctrl + b t | 時刻を表示する |
Ctrl + b x | 現在のペインを終了する |
Ctrl + b [ | コピーモードに移行する |
Ctrl + b ] | コピーモードでためたバッファを貼り付ける |
Ctrl + b 数字 | 入力した数字の仮想端末を表示 |
セッション一覧を表示する
$ tmux ls
実行結果
[root@localhost ~]# tmux ls
0: 1 windows (created Mon Oct 31 09:30:08 2022) [120x44] (attached)
デタッチされているセッションをアタッチする
$ tmux a -t セッション番号
実行結果
[rin@localhost ~]$ tmux ls
0: 1 windows (created Mon Oct 31 10:16:24 2022) [179x44]
[rin@localhost ~]$ tmux a -t 0
不要なセッションを終了させる。
$ tmux kill-session -t セッション番号
実行結果
[rin@localhost ~]$ tmux ls
0: 1 windows (created Mon Oct 31 10:16:24 2022) [179x44]
[rin@localhost ~]$ tmux kill-session -t 0
[rin@localhost ~]$ tmux ls
no server running on /tmp/tmux-1002/default
[rin@localhost ~]$