Help us understand the problem. What is going on with this article?

tmuxの使い方

More than 3 years have passed since last update.

参照

tmuxを使い始めたので基本的な機能の使い方とかを整理してみた
基本的に上記のサイトの劣化版

上記サイトのほうが詳しい。ただ見返す分には少し不便なので、必要な分だけ抜き取ってみた。

tmuxの概要

tmuxは端末多重化ソフトウェアである。

これを使うことでターミナルを複数開くことなく、プログラムを走らせたり出来るし、ペインを使うことで作業の効率化が計れる。

(iterm2だとそこまで複数のターミナルを開くことは辛くないんだが、たぶんまだわかっていない利点があるのだろう。)

tmuxはバックグラウンドでも働くので、ネットワークが切れても再開可能なのが一番の利点かな。もしくはやりたいことごとに使い分けが可能か。

サーバーに入れておくと一つのssh接続で複数の端末が扱えれるし切断しても大丈夫。

tmuxを使うことによるメリット

1つの端末で複数の擬似端末を起動可能

複数の端末を立ち上げずに、tmux上の擬似端末を切り替えてオペレーション可能

起動した仮想端末を画面分割して使用可能

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

起動した仮想端末上でコピペが可能

マウスを使わず、tmux内でキーボードのみでのコピペが可能

起動した仮想端末のデタッチ(切り離し)/アタッチ(接続)が可能

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

とのこと

tmuxの構成要素

設定ファイル

設定ファイルは~/.tmux.confにある。なければ作成。

新規セッションの時に呼び込まれる。

プロセス構成

tmuxにはサーバーとクライアントがある。

  • tmuxサーバ(セッション)
    • tmux起動時に生成される、tmuxセッションを管理しているプロセス
  • tmuxクライアント(pty/仮想端末)
    • tmuxセッションへ接続(アタッチ)しているプロセス(pty)

画面構成要素

  • セッション(Session)
    • tmuxに管理される仮想端末全体を指す
    • 各セッションは1つ以上のウィンドウを持つ
  • ウィンドウ(Window)
    • tmuxセッション内に開かれている1つの仮想端末の画面全体を指す
    • ウィンドウは1つ以上のペインを持つ
  • ペイン(Pane)
    • 分割されたウィンドウの単位を指す
    • ペインそれぞれが独立した擬似端末となる

インストール

% brew install tmux

基本操作

どのキーがどの操作に対応しているかは prefix + ? を入力することで確認できる。(もしくはターミナルで tmux list-keys

Prefixキー

起動中のtmuxを操作するには、多くの場合tmuxの制御を行うことを示すためのプレフィックスキーprefix(デフォルト設定値)を入力し、それに続いて実行したい操作に対応するコマンドキーを入力する形でtmuxの内部コマンドを実行することになる。

prefixと書いてあったらprefixを入力していると読み替えて良い。(prefixは変えることが出来、自分の場合ctrl-tにしている。tmux使いは常により良いprefixキーを探していると言っても良い。こんな記事があるので気に入ったprefixを探そう!)

起動

% tmux

or

% tmux new-session

セッションの確認

% tmux ls
0: 1 windows (created Wed Oct  1 09:24:15 2014) [102x31]
1: 2 windows (created Wed Oct  1 09:24:44 2014) [126x32] (attached)

セッションのデタッチ

tmuxから抜ける場合これを使う。

prefix+d

セッションのアタッチ

デタッチしたセッションをもう一度使う場合

% tmux attach  #直近のセッションにアタッチする。
or
% tmux attach -t 0

-tオプションで任意のセッションをアタッチすることが出来る。

セッションの削除

% tmux kill-session (-t 0)

すべて削除するには

% tmux kill-server

セッションのリネーム

prefix+ $

ウィンドウの操作

新規ウィンドウ

prefix+ c

画面下に0:zsh- に続いて 1:zsh*と表示されますが、これがそれぞれウィンドウを示す。

現在選択されているウィンドウには * と表示されており、それ以外のウィンドウには - と表示される。

ウィンドウ名は prefix + :rename-window [window name] で指定できる。
もしくはprefix+,

ウィンドウの切り替え

prefix+ ウィンドウ番号で切り替え可能。
また、prefix+nで次の番号、prefix+pで前の番号にいける。

ウィンドウの一覧表示

prefix+ w

ここで選択することで切り替えることも可能

ウィンドウの削除

prefix+ &

ペインの操作

水平分割

prefix+ "

垂直分割

prefix+ %

ペイン間の移動

prefix+ o

また、prefix+ qでペイン上に数字が表示されるのでその間に数字を入力すると移動できる。

ペインの分割解除

prefix+ x

tmux.confの設定

ウィンドウの移動

C-t+space+[ウィンドウ番号] で移動できるようにする。

nbind space
bind space command-prompt "select-window -t '%%'"

その他

vintersnow
情熱のない大人になってしまった
http://vintersnow.github.io/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away