Ubuntu Weekly Recipe

第127回 ターミナルマルチプレクサ tmuxを使ってみよう

この記事を読むのに必要な時間:およそ 4 分

tmuxの構成を知ろう

まず,tmuxを構成している要素について知っておきましょう。

セッション

セッションとは,tmuxが管理している端末ウィンドウの集合体です。tmuxは起動すると一つのセッションを作成し,その中で一つのウィンドウを作成します。現在起動しているセッションの一覧を取得するには,list-sessionコマンドが使用できます。シェルからtmuxコマンドに続いてlist-sessionサブコマンドを指定するか,起動したtmux上でC-b :注3キーでtmuxのコマンドプロンプトに入り,list-sessionコマンドを実行してください。一番左に表示されている数字が,セッション番号です。その後に,セッション中で開かれているウィンドウ数や作成日時,クライアントのサイズ,アタッチの状況が表示されます。またtmuxの最下行に表示されているステータスラインに表示されている情報は,カレントセッションの情報になります。

注3
Ctrlキーとbキーを同時に押したあと,:(コロン)キーを押すことです。念のため。
$ tmux list-session
0: 2 windows (created Fri Jun 18 12:39:12 2010) [80x23] (attached)
1: 3 windows (created Fri Jun 18 12:40:06 2010) [80x23]
2: 1 windows (created Fri Jun 18 12:40:18 2010) [80x23] (attached)

クライアント

クライアントとは,セッションにアタッチしているttyを指します。クライアントの情報を得るには,list-clientコマンドが使用できます。

$ tmux list-client
/dev/pts/0: 0 [80x32 xterm] (utf8)
/dev/pts/7: 1 [80x24 xterm] (utf8)

図4 複数のtmuxセッションを起動し,二つの端末からそれぞれのセッションにアタッチした状態でlist-clientを実行してみた

図4 複数のtmuxセッションを起動し,二つの端末からそれぞれのセッションにアタッチした状態でlist-clientを実行してみた

ウィンドウ

ウィンドウとは,セッション中で開かれている独立した端末です。ウィンドウはセッションの画面全体を占有し,セッションは一つ以上のウィンドウを持ち,任意に切り替えることができます。

screenでは分割したスクリーンに複数のウィンドウを表示することができましたが,tmuxではウィンドウは常にスクリーン全体を占有し,⁠ペイン」と呼ばれる単位に分割することになります。開いているウィンドウの状態はステータスラインに表示されるので,一目でわかるでしょう。ウィンドウのリストを得たい場合は,list-windowコマンドを使用します。ウィンドウの名前は起動しているプログラム名が自動的に設定されますが,任意に変更することもでき,名前には日本語を使うことも可能です。

$ tmux list-window
0: シェル [80x31]
1: man [80x31]
2: emacs [80x31]
3: vi [80x31]

ペイン

ペインはscreenにはないtmux独自の概念で,ウィンドウを分割する単位です。通常ウィンドウは単一のペインを持ってクライアントの全画面を占有していますが,split-windowコマンドを使うことで,ウィンドウを上下二つのペインに分割することができます注4⁠。

display-paneコマンドを使うと,各ペインに番号のインジケータを表示させることができ,数字キー0~9でペインを選択することができます。またbrake-paneコマンドを使うと,対象となるペインをウィンドウから切り離し,対照となるペインひとつをもつ新しいウィンドウを生成します。

図5 一つのウィンドウを上下二つのペインに分割してみた。display-paneコマンドを実行すると,画像のようにペインインジケータが表示される

図5 一つのウィンドウを上下二つのペインに分割してみた。

注4
split-windowに-hオプションをつけることで,左右に分割することができます。

著者プロフィール

水野源(みずのはじめ)

Ubuntu Japanese Teamメンバー。理想のフリーデスクトップ環境を求めて東へ西へ……のはずが,気がついたら北の大地で就職していたインフラ寄りのエンジニア。最近レンズ沼にハマる。