サイト名変更・お引越しのお知らせ

tmuxの基本的な使い方をチュートリアル形式で解説

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-bprefixと呼びます。

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"

モグモグさん

気になる方は、調べて自分の使いやすい設定ファイルを作ってみてください!

まとめ

モグモグさん

お疲れ様でした!

本チュートリアルを一通り行うことで、ある程度基礎を抑えれると思います。

チートシートなんかも作ってくれている方もいるので参考にしてみてください!