Ubuntu Weekly Recipe

第291回 tmux/GNU Screenのラッパーコマンド,byobuを使いこなす(2013年版)

この記事を読むのに必要な時間:およそ 4 分

Ubuntuには,byobuというtmux/GNU Screenのラッパーコマンドが準備されています。これらのコマンドをうまく利用することで,ターミナル上での作業効率を大きく引き上げることができます。今週は,2013年現在のbyobuの利用方法を紹介します。

Byobu

Ubuntuでは,GNU Screenやtmuxのラッパーコマンドである「byobu」を利用することができます。デスクトップ版には標準では導入されていませんが,次のように操作することで簡単に導入できます(サーバー版ではデフォルトで導入されています)。

$ sudo apt-get update
$ sudo apt-get install byobu

GNU Screenとtmuxは「ターミナルを便利に利用する」ためのソフトウェアで,1枚のターミナルを擬似的なタブで切り替えられるようにする,バッファを遡れるようにする,といった機能を提供します。tmuxはGNU Screenよりも後に開発されたソフトウェアである分,パフォーマンス面でも機能面でもより強力になっています。

tmuxやGNU Screenに共通する弱点は,EmacsやVim,zshなどと同じように,「便利だが設定が大変」「うまく使いこなすにはコマンドを使い分ける必要がある」というものです。ある程度便利に使おうとすると,数十行の設定ファイルを書き,自分に合った設定を取捨選択しなくてはいけません。またコマンドの使い分けのため,新規にScreenやtmuxを起動する場合は「screen」「tmux」コマンドを,すでに起動されたセッションに再接続する場合には「screen -dr」「tmux a」を,といった使い分けが必要になります。

byobuはこの問題を解決するために,あらかじめ各種機能が有効になる設定ファイルを提供しています。また,コマンドの使い分けも不要で,「byobu」を実行するだけで,自動的に必要な操作を判別してくれます。

13.10のbyobu

Ubuntu Weekly Recipeでは,第72回第94回でbyobuを取り上げています。現在では当時とは大きく状況が異なり,byobuはGNU Screenベースからtmux第127回で紹介)ベースに変更され,多くの機能が追加されています。あらためてbyobuの機能を見てみましょう。

まず,byobuを起動するには,「byobu」コマンドを用います。

$ byobu

標準状態では,次のような画面になります。

図1 byobuを普通に起動した状態

図1 byobuを普通に起動した状態

まずは動かしてみましょう。「F2」キー(もしくは後述する「エスケープ」+c)を押すと,新しい「ウィンドウ」が生成されます。このウィンドウは,おおむねタブと同じ働きをします。ウィンドウ間を切り替えるには「F3」「F4」キー(もしくは「エスケープ」+nまたはp)を用います。

byobuを閉じるときは,「F6」キー(もしくは「エスケープ」+d)を押します。元のターミナルに戻るはずです。再びbyobu環境に戻るには,「byobu」コマンドを実行してください。

ファンクションキーをベースにした操作は次のとおりです。ただしファンクションキーはアルファベットよりも押しにくいことがほとんどですし,キーボードによってはFnキーと組み合わせた入力が必要になってしまいます。byobuを充分に活用するのであれば,「エスケープ」キーシーケンスを利用することをお勧めします。

  • F2:新しいウィンドウを作る
  • F3:ひとつ前のウィンドウに戻る
  • F4:ひとつ次のウィンドウに進む
  • F5:設定をリロード
  • F6:セッションをデタッチ
  • F7:コピー&スクロールバックモードへ切り替え
  • F8:ウィンドウのタイトルを変更
  • F9:設定メニューの表示
  • F12:ターミナルをロック

byobuでは,「エスケープ」キーシーケンスとして,「Ctrlを押しながらa」「F12」を利用します。このうち前者が有効になるかどうかは,「最初にCtrlを押しながらaを押したとき」の対話メニューに従って決定されます(byobu-ctrl-aコマンドを呼び出すことでも設定できます)。

Emacsやbashの操作に慣れている場合,「Ctrlを押しながらa」は行頭ジャンプのキーバインドなので,そのままでは少し使いにくいかもしれません。が,アルファベットに割り当てられていないと使いにくいので,「byobu-config」コマンドを用いてエスケープシーケンスを設定しておきましょう。

なお,「Ctrlを押しながらa」をエスケープシーケンスに割り当てていても,「Ctrl+a→a」(Ctrlを押しながらaを押したあと,Ctrlから指を離してa)で行頭移動のためのCtrl+aを入力することができますので,Ctrl+aのままこの操作に慣れる,というのも有効な方法です。

byobuには非常に多くの機能がありますが,最初は次のことだけ覚えておけば良いでしょう。

  • byobuの操作は,「エスケープ操作」にショートカットキーを組み合わせたものである
  • エスケープ+cでウィンドウ作成,同+n/pでウィンドウ移動
  • 作業の中断にはエスケープ+d
  • 作業を再開するには「byobu」コマンドを実行
  • エスケープ+?でキーバインド一覧を表示できる

これら以外のショートカットキーは,第127回を参照してください。

配色の変更

byobuの配色を変更したい場合,次のコマンドを用い,配色プロファイルを選択します。

$ byobu-select-profile

図2 byobu-select-profileによる配色変更。この例ではすでに「8」のblueを選択している

図2 byobu-select-profileによる配色変更。この例ではすでに「8」のblueを選択している

接続ホストごとに配色を変更しておくと便利です。この設定は,~/.byobu/colorに保存されます。環境変数経由での設定は行えません。

また,byobu-promptコマンドを実行することで,bashのプロンプトを色分けするモードに変更することができます。bashの味気ないプロンプトに飽きた方は利用してみてください。

なお,「Ctrl+Shift+F5」で,押下のたびに自動的に配色を切り替えることもできます。気に入った配色を探す場合や,なにか特別なセッションを作成した場合にはこの方法で配色を変更しても良いでしょう。

ログインシェルとして利用する

byobuを気に入った場合,あるいはbyobuを前提にサーバを利用したい場合,「byobu-enable」を実行すると,ターミナルないしコンソールが開いたタイミングで,暗黙でbyobuが起動されるようになります。この状態を解除するには「byobu-disable」を使います。

chsh等でログインシェルを変更する場合と異なり,/etc/passwd上のSHELL設定はそのままで,利用しているシェルの設定ファイルにbyobu-launcherを呼び出す設定が追加されます。

Macから接続する場合

Mac OS Xの純正ターミナルからSSHでUbuntuに接続してbyobuを利用する場合,画面表示が正しく行われないことがあります。このような場合は,ターミナルの設定の「ターミナルの宣言方法」「xterm-color」を選択してください。

また,Macから接続した場合,一部のキー入力が無効になることがあります。このような場合は「TERM=vt100」を環境変数としてセットしてください。「alias ssh='TERM=vt100 ssh'」しておくと便利です。

著者プロフィール

吉田史(よしだふみひと)

Ubuntu Japanese Team Member株式会社創夢所属。システム管理を中心にWindows/PC Unixを併用している。Ubuntu Japanese Teamではパッケージサーバの管理や翻訳などの作業を担当。

コメント

コメントの記入