tmuxは、1つのターミナル上で複数のターミナルを使えるようにするソフトウェアです。
できることは多いですが、基本的な使い方を知り、まずは使うだけでもかなり便利ですので基本をチュートリアル形式で解説します。
こんな感じで、たくさんターミナルを立ち上げることがなくなります。
開発していればこういった現象になりがちですよね。
- tmuxの基本的な使い方が分かり使えるようになる
モグモグさん
実際に手を動かしながらやってみると理解が深まりますので
やってみてください。
実行
上記のマークの箇所は実際に実行したりコードを書いてみましょう。
tmuxとは?
端末多重ソフトウェアといって、1つの端末(ターミナル)から複数の端末(ターミナル)を扱えるようにするものです。
下記の環境で動かすことができます。
- OpenBSD, FreeBSD, NetBSD
- Linux
- OS X
- Solaris
tmuxは、ターミナルマルチプレクサ(Terminal Multiplexer)の略です。
メリット
主に下記の点が使うメリットだと思います。
- 1つのターミナル上で複数のターミナルを扱える
- SSH越しでも使える
- ターミナルを閉じてもセッションが保持できる
- 複数の画面を使える
インストール
Macの場合
$ brew install tmux
Linuxの場合
// CentOS系
# yum install -y tmux
// Ubuntu
# sudo apt install tmux
モグモグさん
これでインストール完了です!
tmuxの基本用語の解説
tmuxを構成する要素として、下記の要素があります。
モグモグさん
上から親要素になります。
セッションは複数のウィンドウを使えて、ウィンドウは複数のペインを使えるというようなイメージです。
- セッション
- ウィンドウ
- ペイン
モグモグさん
例えば、セッションをプロジェクトごとに分けて、サーバーサイドとフロントエンド の開発ごとにウィンドウを分けるといったイメージです。
ペインは、あくまで画面の分割なので、セッションとウィンドウを使えれば基本としてはOKです!
セッションの基本操作
それでは、セッションの基本の操作を解説します。
セッション開始
$ tmux
tmuxの起動になります。画面の表示が変化するのが分かると思います。
セッション一覧確認
$ tmux ls
先ほど起動したセッションが確認できます!
セッションを終了
$ exit
これでセッションが終了します。
再度 $ tmux ls
を実行するとno sessions
と表示されます。
毎回セッションを終了しても不便なので、次はセッションを保持しつつセッションから抜ける方法を解説します。
セッションを中断(デタッチ)
$ tmux
$ Ctrl-b d
Ctrl-b
はキーボードのcontrol
を押しながらb
を押すという意味です。
Ctrl-b をprefixと呼びます。
tmuxでは、prefixを押した後に次のキーを入力することで操作していくことが基本です。
Ctrl-bがデフォルトですが、変更する方法は後ほど解説します。
セッションのデタッチを確認
抜けたセッションが残っているかどうか確認しましょう。
$ tmux ls
先ほど起動したセッションが出力されることが確認できると思います!
セッションに接続(アタッチ)
デタッチしたセッションに再度接続してみましょう。
$ tmux a
モグモグさん
こんな感じの流れで、プロジェクトごとにセッションを分けたりして使えます!
続いてより実践的に、セッションに名前をつけて起動してみましょう!
名前をつけてセッション開始
$ tmux new -s セッション名
次にもう1つのセッションを起動しましょう!
$ Ctrl-b d
$ tmux new -s セッション名2
$ Ctrl-b d
$ tmux ls
これで2つのセッションが作成されてセッション名も出力されていると思います。
続いてセッション名を指定してアタッチしてみましょう。
指定したセッションにアタッチ
$ tmux a -t セッション名
これで指定したセッションにアタッチできます。
最後に特定のセッションを停止する方法です。
指定したセッションを停止
$ tmux kill-session -t セッション名
exit
はセッション内からで実行するので、セッション外から実行する場合は、kill-session
を利用します。
セッションのコマンドまとめ
ここで、セッションのコマンドをまとめておきます。
コマンド | 説明 |
---|---|
$ tmux | セッションを起動 |
$ tmux new -s セッション名 | 名前付きでセッションを起動 |
$ exit | セッションを停止 (セッション内) |
$ tmux kill-session -t セッション名 | 特定のセッションを停止 |
$ Ctrl-b d | セッションをデタッチ |
$ tmux a | デタッチしたセッションにアタッチ |
$ tmux a -t セッション名 | 特定のセッションにアタッチ |
$ tmux ls | セッション一覧を表示 |
ウィンドウの基本操作
続いて、ウィンドウの基本操作について解説していきます。
まずは、セッションを起動しましょう。
$ tmux
ウィンドウを作成
$ Ctrl-b c
これでウィンドウが作成されます。
いくつか作ってみてください!
ウィンドウを移動
ウィンドウを移動するコマンドはいくつかありますので、それぞれ試してみてください!
// ウィンドウ番号を指定して移動。ターミナル下部に番号が表示されています。
$ Ctrl-b ウィンドウ番号
// 次のウィンドウに移動 (next)
$ Ctrl-b n
// 前のウィンドウに移動 (previous)
$ Ctrl-b p
// 以前のウィンドウに移動 (last)
$ Ctrl-b l
モグモグさん
実際は、ウィンドウ番号を指定して移動することが多いのでその操作に慣れていけばいいと思います。
ウィンドウを削除
$ exit
// 確認を出しながら、削除
$ Ctrl-b &
モグモグさん
これがウィンドウの基本操作です。
例えば、ウィンドウ0でサーバーを立ち上げつつ、ウィンドウ1でサーバーに接続するということができるということですね!
ウィンドウのコマンドまとめ
ここで、ウィンドウのコマンドをまとめておきます。
コマンド | 説明 |
---|---|
$ Ctrl-b c | ウィンドウを作成 |
$ Ctrl-b ウィンドウ番号 | 指定した番号のウィンドウに移動 |
$ Ctrl-b n | 次のウィンドウに移動 |
$ Ctrl-b p | 前のウィンドウに移動 |
$ Ctrl-b l | 以前のウィンドウに移動 |
$ exit | ウィンドウを削除 |
$ Ctrl-b & | 確認つきでウィンドウを削除 |
ペインの基本操作
ここまでで、すでにtmuxの基本は理解できて便利に使えると思います!
おまけ程度で、ペインの解説をしていきます。
ペインは、ウィンドウを上下左右に分割して使えるものです。
上下にペインを分割
$ Ctrl-b "
左右にペインを分割
$ Ctrl-b %
画面が増えましたね。こんな感じ上下・左右で分割していけます!
移動
ウィンドウ同様移動のコマンドは複数あるので、それぞれ試してみてください!
// 矢印で移動
$ Ctrl-b 矢印
// 次のペインに移動
$ Ctrl-b o
// 以前のペインに移動
$ Ctrl-b ;
表示系
時計とペイン番号を表示する方法です。
// 時計を表示 (qで終了する)
$ Ctrl-b t
// ペインの番号を表示
$ Ctrl-b q
ペインを削除
$ exit
// 確認を出しながら、削除
$ Ctrl-b x
ペインのコマンドまとめ
ここで、ペインのコマンドをまとめておきます。
コマンド | 説明 |
---|---|
$ Ctrl-b “ | 上下に分割 |
$ Ctrl-b % | 左右に分割 |
$ Ctrl-b 矢印 | ペインを移動 |
$ Ctrl-b o | 次のペインに移動 |
$ Ctrl-b ; | 以前のペインに移動 |
$ Ctrl-b t | 時計を表示 |
$ Ctrl-b q | ペインの番号を表示 |
$ exit | ペインを削除 |
$ Ctrl-b & | 確認つきでペインを削除 |
設定ファイル
Prefixを変更したり、諸々の設定を変更するためには、.tmux.conf
というファイルで可能です。
基本的には、~/.tmux.conf
に置かれています。
例えば、こんな感じの設定ができます。
# tmuxを256色表示できるようにする
set-option -g default-terminal screen-256color
set -g terminal-overrides 'xterm:colors=256'
# prefixキーをC-qに変更
set -g prefix C-q
# C-bのキーバインドを解除
unbind C-b
# ステータスバーをトップに配置する
set-option -g status-position top
# 左右のステータスバーの長さを決定する
set-option -g status-left-length 90
set-option -g status-right-length 90
# #P => ペイン番号
# 最左に表示
set-option -g status-left '#H:[#P]'
# Wi-Fi、バッテリー残量、現在時刻
# 最右に表示
set-option -g status-right '#(wifi) #(battery --tmux) [%Y-%m-%d(%a) %H:%M]'
# ステータスバーを1秒毎に描画し直す
set-option -g status-interval 1
# センタライズ(主にウィンドウ番号など)
set-option -g status-justify centre
# ステータスバーの色を設定する
set-option -g status-bg "colour238"
# status line の文字色を指定する。
set-option -g status-fg "colour255"
モグモグさん
気になる方は、調べて自分の使いやすい設定ファイルを作ってみてください!
まとめ
モグモグさん
お疲れ様でした!
本チュートリアルを一通り行うことで、ある程度基礎を抑えれると思います。
チートシートなんかも作ってくれている方もいるので参考にしてみてください!