tmux コマンド

screenコマンドと同じで、1つの端末の中でタブブラウザのように複数の端末を開けるもの。

自分はこのコマンドのお陰でMac上のターミナルのウィンドウは1つかせいぜい2つしか開かず、中でtmuxで複数の端末を起動している。

キーバインド

以下で <prefix> は Ctrl+b など、tmuxのプリフィックキーで、設定によって変わる。

<prefix> c
新しいウィンドウを作成する
<prefix> &
ウィンドウを閉じる
<prefix> w
ウィンドウ一覧を表示して選択する
<prefix> o (小文字のオー)
次のペインに移動する
<prefix> x
ペインを閉じる
<prefix> :
コマンドプロンプトが現れて、tmuxの任意のコマンドを実行できる。 例えば、list-keys でエンターを押せば、キーバイドの一覧が表示される。

用語の説明

セッション
ブラウザに例えると複数のタブを内包する1つのウィンドウ。1つ以上のウィンドウが含まれる。
ウィンドウ
タブブラウザに例えると1つのタブ。1つ以上のペインが含まれる。
ペイン
ウィンドウの中の1つの端末で、ウィンドウの中を水平や垂直に区切って複数並べることができる。

コマンドラインでの主なコマンド

# セッション一覧
tmux ls
# または
tmux list-sessions

# 名前をつけてセッションを開始
tmux new -s hoge

# 特定の名前のセッションに接続
tmux attach -t 名前

# セッションの名前を変更
tmux rename -t 現名前 新名前

複数のペインで同じ操作をするには

たくさんのリモートホストに対して、同じコマンド操作をしたい場合に、いちいちそれぞれのリモートホストにSSH接続して同じキー入力するのはとても面倒。それを解決してくれるのが、tmuxのsynchronize-panesの機能。

1つのウィンドウの中のすべてのペインに対して同じキー入力をさせるには、いずれかのペインで以下のコマンドを実行する。

tmux set-window-option synchronize-panes on

コマンドを実行した後は、どのペインに入力してもすべてのペインに反映される。

終了するには以下のコマンドを実行する。

tmux set-window-option synchronize-panes off

それぞれのペインで別々のホストにSSH接続してから、同じ操作をするには、 SSH接続してからではこのtmuxコマンドをキックできないので、 <prefix>を押した後に、:set-window-option synchronize-panes on と入力し、エンターを押すことで、この機能を有効にする。 :のあとのコマンド入力ではタブで補完が効くので、それほど面倒ではないが、私は .tmux.conf に以下のように書いている。

bind S setw synchronize-panes on
bind s setw synchronize-panes off

インストールされているtmuxのバージョンを確認するには

tmux -V

ウィンドウの中に2つのペインがある場合に、どのペインがアクティブになっているのかが、 1.7まではわかりにくかったが、1.8からは境界の線が2つに分かれて描画されるようになって、推測できるようになった。

ステータスバーの表示/非表示を設定するには

非表示にするには

set status off

再度、表示させるには

set status on

tmuxの画面からは <prefix> : set status off Enter と押すことでその場で変更できる。

tmuxのバージョン番号を調べるには

tmux -V
このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。