DMM.comラボエンジニアブログ

DMM.comラボのエンジニアブログです。DMM.comを支える技術について書いています。

tmux使ってみたメモ

こんにちは、ザキミヤです!

今回はtmuxを使ってみたので、そのレポートをお送りします!
かなり基本的なことですが、お試しください!

今回メモしたこと

用語
インストール~起動
セッション
ウインドウ
ペイン
便利な小技

そもそも、tmuxとは?

tmuxとは、端末多重化ソフトウェアです。
1つのターミナルで幾つもの端末を起動したり、操作できたり...
開発が捗ります!

できること

  • 1つのターミナルで複数の擬似端末を起動、操作可能
  • 起動した仮想端末を画面分割して使用可能

=> 他のファイルを参照したりログ出力を参照しながらオペレーション可能

  • 起動した仮想端末上でマウスを使わずにコピペが可能
  • 起動した仮想端末のデタッチ/アタッチ)が可能

=> tmux実行端末とのネットワークが切れても問題なく、異なる環境から同じtmuxセッションへ接続可能

それでは、今回色々メモしたまとめをご紹介します。

tmux用語

f:id:dmmlabotech:20151026192853p:plain

f:id:dmmlabotech:20151026192923p:plain

ピンとこないので使って理解してみる!

起動とインストールについて

インストール

Macの場合

$ brew install tmux

起動

$ tmux                                       // もしくは、「$ tmux new-session」
 
$ tmux new -s [セッション名]     // 名前を指定してセッションを作成し起動

セッション

セッションの一覧表示

$ tmux  ls        // もしくは、「$ tmux list-session」
0: 2 windows (created Wed Oct  7 20:09:21 2015) [181x47] (attached)
1: 1 windows (created Wed Oct  7 20:14:48 2015) [181x47] (attached)

上記は2セッション存在しています(∵2つのターミナルそれぞれで起動した)。
おまけにセッション0はウィンドウが2つあります。(∵セッション0でウィンドウを新規作成した)。

セッションのリネーム

ショートカットキー:Ctrl+b → $
↓確認してみる

$ tmux  ls
0: 2 windows (created Wed Oct  7 20:09:21 2015) [181x47] (attached)
rename-test: 1 windows (created Wed Oct  7 20:14:48 2015) [181x47] (attached)

セッションを削除

$ tmux ls                            // あらかじめセッション2を追加しておいた
0: 2 windows (created Wed Oct  7 20:09:21 2015) [181x47] (attached)
2: 1 windows (created Wed Oct  7 20:33:37 2015) [181x47] (attached)
rename-test: 1 windows (created Wed Oct  7 20:14:48 2015) [181x47] (attached)
 
$ tmux kill-session -t 2    // -t {削除したいセッション番号}
$ tmux ls // ちゃんと消えてた
0: 2 windows (created Wed Oct 7 20:09:21 2015) [181x47] (attached)
rename-test: 1 windows (created Wed Oct 7 20:14:48 2015) [181x47] (attached)
 
$ tmux kill-server // 全セッションを削除

デタッチ

ショートカットキー:Ctrl+b → d

アタッチ

$ tmux a                        // もしくは、「$ tmux attach」。前回利用していたセッションにアタッチ
$ tmux a -t [セッション名]   // セッションを指定してアタッチ
$ tmux a -t [セッション名] -r    // -rオプション:read-only。誰かに画面共有したいときに利用。

ウインドウについて

ウィンドウの作成

ショートカットキー:Ctrl+b → c
右:作成前、 左:作成後
下の部分に注目すると、1:bash* が増えています。
「$ tmux ls」の結果も「2 windows」に変わっています。
f:id:dmmlabotech:20151027173510p:plainf:id:dmmlabotech:20151027173526p:plain

ウィンドウのリネーム

ショートカットキー:Ctrl+b → 「:rename-window [ウィンドウ名]」
下の部分に注目すると、1:rename-test*になっています。
f:id:dmmlabotech:20151027173543p:plain

f:id:dmmlabotech:20151027173606p:plain

ウィンドウの一覧表示

ショートカットキー:Ctrl+b → w
↑↓キーでウィンドウを選択可能です。
f:id:dmmlabotech:20151027173617p:plain

ウィンドウの切り替え

ウィンドウ一覧からでなくても切り替えができます。
ショートカットキー:Ctrl+b → [ウィンドウ番号]


ペインについて

ペイン分割

横 ・・・▶︎ ショートカットキー:Ctrl+b → "
縦 ・・・▶︎ ショートカットキー:Ctrl+b → #

ペイン間移動

ショートカットキー:Ctrl+b → o

ペイン分割解除

ショートカットキー:Ctrl+b → x


便利な小技

tmuxを使う上で便利な小技も少しですが、ご紹介します。

コマンド同時実行モード

ON ・・・▶︎ ショートカットキー:Ctrl+b → 「:set synchronize-pane on」
OFF ・・・▶︎ ショートカットキー:Ctrl+b → 「:set synchronize-pane off」

マウス操作をできるようにする

.tmux.confに下記記述を追加します。

# マウス操作モードON
set -g mode-mouse on
# マウスでペイン分割のサイズを変更できる
set -g mouse-resize-pane on
# マウスでペインを選べる
set -g mouse-select-pane on
# マウスでウィンドウを選べる
set -g mouse-select-window on
※iTermなら有効になるけど、Macのユーティリティ配下ターミナルは有効にならなかった。。

その他設定いろいろ

http://qiita.com/succi0303/items/cb396704493476373edf



(!)注意(!)
つなぎっぱなしはセキュリティ的に問題ありそうなので、使う場面を選ばないといけないかもしれません。



tmuxはすぐに使えて、業務が効率化するテクニックですので是非一度お試しください!