Linux や MacOS のターミナル(端末)の画面を分割/多重化して、1つのターミナル画面内で複数のターミナルプロセスを実行できるようにする、というツール tmux を使ってみました。ツール自体は結構以前からあったようですが、存在を知らなかった・・・


まずはインストール前の環境準備から。僕の環境は CentOS ですが、他の Linux ディストリビューションや MacOS などでも同様のはずです。

tmux はソースが公開されていて、ソースからビルドして導入します。というわけで公式サイトから tmux 自体のソースコードをダウンロードしておきます(今日時点の最新安定版は tmux-1.9a.tar.gz):
http://tmux.sourceforge.net/

最新安定版が 1.9a であれば、以下のコマンドでもダウンロードできます:
# wget http://downloads.sourceforge.net/tmux/tmux-1.9a.tar.gz


また、 tmux のビルドにはライブラリとして curses ライブラリが必要です。これは yum でサクッと導入します:
# yum install ncurses-devel

更に libevent 2.0 以上が必要です。一般的な環境に導入されているのは 1.x だと思うので、こちらも別途ソースからビルドして用意する必要があります(今日時点の最新安定版は libevent-2.0.21-stable.tar.gz):
# wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
# tar xzvf libevent-2.0.21-stable.tar.gz
# cd libevent-2.0.21-stable
# ./configure
# make
# make install

これで tmux をビルドする準備が完了したので、改めてダウンロードしてきたソースファイルから tmux をビルドします:
# tar xzvf tmux-1.9a.tar.gz
# cd tmux-1.9a
# ./configure LDFLAGS=-L/usr/local/lib/ (上記でビルドした libevent-2.0 をフラグで指定)
# make
# make install

tmux を実行する前に /etc/ld.so.conf.d/libevent.conf というファイルを新規に作成して libevent をインストールした場所を指定し、あらかじめロードしておく必要があります。
# echo '/usr/local/lib' > /etc/ld.so.conf.d/libevent.conf
# ldconfig

これで tmux のインストールは完了です。以下、簡単な使い方の紹介。

tmux を起動するには端末のプロンプト画面から 'tmux' と入力します:
# tmux

あまり変わったように見えませんが、tmux が起動して、最初のセッションを作成し、その中で1つのウィンドウが作成されます:
2014022201


この状態から tmux コマンドを駆使して複数のセッション/ウィンドウを管理します。まずはウィンドウを上下2つのペインに分割します。CTRL+b(CTRLキーを押しながら b)に続けて :(コロン)を入力し、画面下部に split-window と入力して Enter キーを押します:
2014022202


ちなみに、CTRL+b に続けて : で tmux のコマンド入力モードに切り替わります。そこで画面下部に split-window という「縦にウィンドウを分割」という意味のコマンドを入力した結果、このような2画面に分割されたのでした。

同様にして、今度は画面を横に分割してみます。CTRL+b : に続けて split-window -h と入力します:
2014022203


 -h オプションをつけるとアクティブだったウィンドウが横に分割されました。

アクティブペイン内でコマンドを実行すると、その実行結果はペイン内だけに表示されます:
2014022204
(右下のペインがアクティブな状態で ls コマンドを実行した結果)


CTRL+b o でペイン間の移動が可能で、アクティブペインを切り替えることができます:
2014022205
(プロンプトが上のペインに移動 この状態でコマンドを実行すると上のペインで実行される)


アクティブペインは CTRL+b x で破棄できます:
2014022206
(左下のペインをアクティブにしてから破棄コマンドを実行。左下のペインがなくなって上下2つになった)


なお CTRL+b ? でコマンドのヘルプが表示できます:
2014022207
(上のペインをアクティブにしてヘルプを実行した様子。ショートカットに困った時のためにこのコマンドだけでも覚えておくべき)


クラウドサーバーを利用する場合、初期状態では SSH でしかログインできないし、環境によっては X Window を導入することもできないこともあります。そんな時に唯一使える端末を多重化して使えるのは便利です。

ま、現実問題として3つも4つも開くことはないけど、上下に2つ開いて互いの中身をコピペできるだけでもかなり使える。