tmuxの基本的な使い方

   2017/05/01

tmuxの使い始めて数年たちますが、普段使わないような便利な機能も含めて整理してみました。ここで説明するtmuxのバージョンは2.3です。インストール方法については、tmuxの概要とインストールをご覧下さい。

tmuxは、クライアントーサーバモデルを採用しています。各サーバは、シングルUnixドメインソケットを/tmp配下に作成し、一つのサーバ内に複数のセッションを保持し、各セッションは複数のクライアントからアタッチすることが可能です。ソケットは、/tmp/tmux-uid (uidは、ログインユーザのユーザID)の配下に作成されます。

まずは基本的な使い方を確認していきましょう。

基本的な使い方

Sessionの作成

Sessionを作成するには、シンプルにtmuxコマンドを実行するだけです。

tmux

tmux_start上に貼った画像のように、下部にグリーンのステータスバーが現れます。 左端の[]内は、Session名になります。デフォルトで”0″となります。ステータスバー右側には、システム情報や日時が表示されます。 ステータスバーに表示させる内容は、カスタマイズできますが、その方法はあとで説明します。

Paneの分割

Sessionを作成すると、tmuxはデフォルトで、1つのWindowを作成し、その中に1つのPaneを作成します。 まずは、Paneを左右に分割してみましょう。 tmuxを操作するコマンドは全て ctrl キーと b キー(以降、C-bと記述)を同時に押してから操作します。これらの操作コマンドはカスタマイズすることができますが、その方法は後日説明します。Paneを左右に分割するコマンドは、C-bを押して放した直後にキーを押します。

tmux_vsplit_pane

また、上下水平に分割するには、C-bを押してから キーを押します。C-bを押してからspaceキーを押すとレイアウトを左右から上下、または上下から左右へ変更できます。

tmux_change_split2

Paneの操作

Paneを分割した直後は、作成されたPane内にカーソルが移ってしまいます。カーソルを元のPaneに戻して操作したい場合は、C-b 矢印キー(左右上下の矢印キー)で移動できます。Paneを閉じるには、通常のターミナルセッションのようにexitまたは、Ctrl-d でいけます。

Windowの作成

tmuxのセッション内で新たにWindowを作成するには、C-bを押してからcキーを押します。

tmux_create_window

下部のメニューバーに1:bash*と追加で表示されているのが分かると思います。末尾に*が付いているのが現在操作中のWindowになり、が付いているのがその前に操作していたWindowです。また、先頭の数値1:がWindowに割り振られるタブIDのようなものです。 Windowの作成後、その中でPaneを作成していくことが可能となります。

Windowの操作

Window間を移動するには、C-b p または、C-b n を入力することで行えます。Windowが多く有り一つ一つ移りわたるのが面倒な場合は、C-b <number> を入力すると、その番号のWindowにジャンプできます。Windowが多く作成してあるとどの番号がどのWindowなのか混乱することがあります。 そんな時は、C-b ,で名前を指定することができます。下画像の様にメニューバーが黄色く変わり、(rename-window)の直後にカーソルが移動されます。 ここでWindow名を入力します。

tmux_rename_window

Sessionの操作

あるSession上での作業が終ったら、全てのPaneを閉じて終了するか、そのSessionをバックグラウンドで動作させ続けることができます。後者の場合、C-b d でSessionからデタッチできます。デタッチされたSessionは、アタッチすることで元の状態から作業を続けられるようになります。Sessionをアタッチするには、Session名(デフォルトでは”0″)を指定して以下のコマンドを実行します。

tmux attache -t 0
or
tmux a -t 0

Sessionが複数デタッチされていてどのようなSession名が存在するかを確認するには、以下のコマンドを実行します。

tmux ls

Session名が数値だと分かりにくいので、文字列の名前を指定して新たにtmuxのSessionを起動するには、

tmux new -s new_session_name

また、Session名を以下のコマンドで変更することが可能です。

tmux rename-session -t old_session_name new_session_name

 

 

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら