screen? tmux? byobu?



screenは1つのターミナルで複数のウィンドウを開いて切り替えながら作業することができるソフトウェアです。

また似たようなものとしてbyobuやtmuxというものもあります。
それぞれの関係性がよくわからないので調べてみました。


結論

tmuxはscreenとは一切関係のないソフトウェア。screenと比較して画面分割できるのがメリット
byobuはscreenの設定を簡単に行うためのソフトウェア。標準である程度便利な設定がしてある。
実はbyobuにはtmuxの設定も用意されている。(byobu-tmuxで起動)
既にscreenやtmuxの設定を自分好みに設定している人はbyobuを使う必要はない。

ということみたいです。
以降それぞれを使うまでの設定をご紹介します。

インストール、設定方法

CentOSの場合

screen
  • インストール
yum -y install screen
  • 設定ファイル
vi ~/.screenrc

デフォルトのエスケープシーケンスがCTrl+bでemacsのショートカットと衝突するので、エスケープシーケンスをCtrl+aからCtrl+tに変更

escape ^t^t

  • 起動方法
screen
  • 基本的な使い方

Escはエスケープシーケンスの意味です。標準ではCtrl+a、上記の設定を行うとCtrl+t。エスケープキーの意味ではありません。

ショートカット 機能
Esc ? ショートカットキーのリストを表示
Esc c 新しいウィンドウを作成
Esc n 次のウィンドウへ移動
Esc p 前のウィンドウへ移動
Esc d セッションのデタッチ

セッションのデタッチから復帰はscreen -rで可能です。

tmux
  • 依存ライブラリのインストール
yum -y install ncurses-devel
yum -y install libevent-devel
  • インストール

RPMForge導入済みの場合は

yum -y install tmux

ソースインストール

VERS=1.6
mkdir /usr/local/src/tmux
cd /usr/local/src/tmux
wget http://jaist.dl.sourceforge.net/project/tmux/tmux/tmux-$VERS/tmux-$VERS.tar.gz
tar zxf tmux-$VERS.tar.gz
cd tmux-$VERS
./configure
make
make install
  • 設定ファイル
vi ~/.tmux.conf

デフォルトのエスケープシーケンスがCTrl+bでemacsのショートカットと衝突するので、エスケープシーケンスをCtrl+bからCtrl+tに変更

unbind-key C-b
set-option -g prefix C-t
bind-key C-t send-prefix

tmux-1.5/examplesにサンプルがあります。

  • 起動方法
tmux
  • 起動時に自動的にtmuxを起動、セッションがある場合はアタッチ
    • 対話型シェルでない場合は処理をしない
    • TMUXが起動済みの場合は処理をしない
      • TMUXが起動しておらず、セッションリストが存在しない場合はtmuxを起動
      • TMUXが起動しておらず、セッションリストが存在する場合はtmuxをアタッチ
  • vi ~/.bash_profile
if [ -z "$PS1" ]; then return ; fi

if [ -z $TMUX ] ; then
        if [ -z `tmux ls` ] ; then
                tmux
        else
                tmux attach
        fi
fi
  • 基本的な使い方

Escはエスケープシーケンスの意味です。標準ではCtrl+b、上記の設定を行うとCtrl+t。エスケープキーの意味ではありません。

ショートカット 機能
Esc ? ショートカットキーのリストを表示
Esc c 新しいウィンドウを作成
Esc n 次のウィンドウへ移動
Esc p 前のウィンドウへ移動
Esc w ウィンドウの選択メニューを表示
Esc % ウィンドウを左右のペインに分割
Esc " ウィンドウを上下のペインに分割
Esc o 次のペインへ移動
Esc x ペインの破棄
Esc d セッションのデタッチ

セッションのデタッチから復帰はtmux attachもしくはtmux aで可能です。

  • その他詳細

端末の中で仮想端末を管理するtmux(GNU screenの代替)について(概要・実行・操作) - 試験運用中なLinux備忘録
http://d.hatena.ne.jp/kakurasan/20100310/p1
Ubuntu Weekly Recipe:第127回 ターミナルマルチプレクサ tmuxを使ってみよう|gihyo.jp … 技術評論社
http://gihyo.jp/admin/serial/01/ubuntu-recipe/0127?page=3
Manpage of TMUX
https://bytebucket.org/ns9tks/tmux-ja/wiki/tmux-ja.html

byobu
mkdir /usr/loca/src/byobu
cd /usr/loca/src/byobu
wget http://launchpad.net/byobu/trunk/4.49/+download/byobu_4.49.orig.tar.gz
tar zxf byobu_4.49.orig.tar.gz
cd byobu-4.49
./configure
make
make install
vi /usr/local/bin/byobu
先頭行に BYOBU_PREFIX=/usr/local を追加
  • 起動方法
    • screenを起動したい場合
byobu
byobu-screen(byobuと同じ)
    • tmuxを起動したい場合
byobu-tmux