Ubuntu Weekly Recipe

第72回screen-profiles("byobu")使う

Ubuntu 9.04では様々な新機能が追加されました。その中には"screen-profiles"と名付けられた、GNU Screenの設定集が含まれています。これはターミナルにCPUやメモリの利用率、無線LANの接続品質・アップデータの有無などなど、多くのインジケータを表示することができるものです。今回はこのscreen-profilesの使い方を紹介します。あわせて、screen-profilesの最新版、"byobu"(屏風)も紹介します。

screen-profilesの概要

GNU Screenは第19回でも触れた通り、ターミナルを頻繁に利用するユーザーにとっては欠かせないものです。sshでログインしてScreenを起動して作業を行い(screen⁠⁠、Screenをdetach(screen -r)して再接続、といった使い方は、ターミナルを中心に作業を行う場合の定石のひとつです。

このScreenの下部に"hardstatus"を指定することで、タブ的な表示や各種ステータスなどを設定することも可能です。Screenを使い始めたユーザーは、たいていこうした設定にのめりこむ[1]ことになります。

screen-profiles(あるいはbyobu)は、このhardstatusを中心に、Screenのデフォルト設定セットを提供することで、⁠Ubuntuのユーザーにとって使い勝手のよい」Screen環境を提供するものです。Ubuntu 9.04以降では標準パッケージとして提供されていますので、デスクトップ版やサーバー版などを利用している場合、追加の作業なしに利用可能[2]です。

screen-profilesの利用

9.04をお使いの場合は、端末を開き、⁠screen」と実行してみてください。図1のように、利用するプロファイルを尋ねられます。

図1 プロファイルの選択
図1 プロファイルの選択

デフォルトのplainはhardstatus(画面下部の表示)が設定されませんので、ubuntu-light・dark・blackのいずれかを選択してEnterキーを押してください。screen-profilesによる設定が自動的に適用され、画面下部に各種情報が表示される状態でscreenが起動するはずです図2、注3⁠。

図2 screen-profilesによる情報表示
図2 screen-profilesによる情報表示

light・dark・blackの三種類は端末の配色に合わせて選択できるようになっています。lightは背景が白い環境、darkは暗めの色、blackは完全な黒背景向けとなっています(が、図2では黒背景の環境で、あえてlightを選択していたます。特に「これを選択しなければならない」という制限はありませんので、自由に選択すれば良いでしょう⁠⁠。この選択画面は、⁠select-screen-profile」を選択することで、いつでも呼び出すことができます[4]⁠。

デフォルト状態のscreen-profilesによって表示されるインジケータは、次の通りです。図2では表示されていませんが、ターミナル上でソフトウェアアップデートの通知や、再起動の必要性の有無を確認できますので、ssh越しにシステムにアクセスしている場合は便利でしょう。

  • Circle Of Human
  • Ubuntuのリリースバージョン
  • (再起動インジケータ⁠⁠ ; 図2では未表示
  • (アップデート可能なパッケージ数⁠⁠ ; 図2では未表示
  • ロードアベレージ ; 図2の場合黄色
  • CPUの数 ; 図2ではx1なので未表示
  • CPUの動作周波数; 図2の場合水色
  • メモリ搭載量と、消費率 ; 図2の場合緑色
  • 日付・時刻

これらのインジケータは、後述のメニューで「Toggle status notifications」設定を開き、表示させたい項目を選ぶことが可能です。

screen-profilesの設定

screen-profilesの機能はこれだけではありません。⁠screen-profiles」コマンドを用いることで、メニュー画面図3を表示することができ、ここから色々な設定を行うことができます。行える設定は次の通りです。

図3 screen-profilesのメニュー
図3 screen-profilesのメニュー
  • Change screen profile(プロファイルの変更)
  • Toggle status notifications(画面下部に表示するインジケータの選択)
  • Change keybinding set(キーバインドの変更)
  • Change escape sequence(エスケープキーの変更)
  • Create new window(s)(新しいウインドウの生成)
  • Manage default windows(デフォルトウインドウの管理)
  • Install screen by default at login(ログイン時に自動的にscreenを起動するように設定)

各設定項目はカーソルキーでメニュー項目を移動し、設定したい項目でEnterを押す、という形の操作となっています。画面下部に表示されるなどにカーソルを合わせたい場合、Tabキーを利用してください。

これらの機能を順番に見ていきましょう。

まず最初の、⁠Change screen profile」⁠プロファイルの変更)です。これは(図4)のように、初回起動時に選択可能な、各種配色設定をメニューから選択できるものです。色の変更を行いたい場合に利用します。

図4 プロファイルの選択
図4 プロファイルの選択

次に「Toggle status notifications」⁠画面下部に表示するインジケータの選択)です図5⁠。

図5 表示するインジケータの選択
図5 表示するインジケータの選択

こちらは、screenrcにおけるhardstatusに相当する選択項目です。以下の設定を利用できます。自分にとって必要な項目を有効にしておくのがよいでしょう。

  • arch(アーキテクチャ(CPUの種類⁠⁠)
  • battery(バッテリ残量)
  • cpu-count(CPUの数)
  • cpu-freq(CPU周波数)
  • ec2-cost(Amazon EC2環境で利用している場合の費用合計)
  • hostname(ホスト名)
  • load-average(ロードアベレージ)
  • logo(Ubuntuロゴ)
  • mem-available(搭載メモリ容量)
  • mem-used(メモリ使用率)
  • menu(メニュー表示のためのキー操作)
  • network-down(ネットワークのダウンロード速度)
  • network-up(ネットワークのアップロード速度)
  • processes(総プロセス数)
  • reboot-required(再起動の必要の有無)
  • release(リリース名)
  • updates-available(アップデートの個数)
  • uptime(システムの起動時間)
  • users(ログインしているユーザー数)
  • whoami(ログインユーザー名)
  • wifi-quality(無線LANのシグナル強度)

また、⁠Change keybinding set」⁠キーバインドの変更)「Change escape sequence」⁠エスケープキーの変更)は、Screenの操作キーを変更するためのものです。前者はF9キーでメニューを表示する、といったscreen-profiles独自の拡張機能のキーバインド、後者はscreenの切り替え操作などで利用するエスケープキーの設定を行うことができます。エスケープキーの初期設定として「Ctrl+a」がセットされているので、異なる組み合わせのエスケープキーが好みの方は設定を変更すると良いでしょう。

「Create new window(s)」⁠新しいウインドウの生成)は、図6のように、screenの新しいウインドウを生成する機能です。

図6 新しいウインドウの生成
図6 新しいウインドウの生成

「Ctrl+Aを押したあとc」でもウインドウを生成することができますが、このメニューからはシステムの動作状況(⁠⁠watch -n 10 tail -n 5 /var/log/syslog /var/log/auth.log /var/log/dmesg⁠⁠、メモリの利用状況(⁠⁠watch -n 30 df -h; echo ; free -mt ⁠⁠、topなどを呼び出すことが可能です。また、これらのウインドウをデフォルトウインドウ(screen起動時に自動的に実行されるウインドウ)として登録することもできます。また、⁠Manage default windows」⁠デフォルトウインドウの管理)メニューを開き、指定したウインドウを「次回起動時以降のデフォルトウインドウ」として登録することも可能です。

最後の「Install screen by default at login」⁠ログイン時に自動的にscreenを起動するように設定)を有効にすると、コンソールからログインした際に自動的にscreenが起動されるようになります[6]⁠。

こうした初期設定を終了すると、以降は「screen」コマンドを実行するだけで、screen-profilesで設定したインジケータなどを利用することができます。

screen-profiles-export

screen-profilesの設定は、他のホストに持ち込んで利用することも可能です。screen-profiles-exportを以下のように実行すると、行った設定・インジケータ表示のためのスクリプト群がscreenfile.tar.gzファイルにまとめられます。

$ screen-profiles-export -f screenfile.tar.gz

このファイルを持ち込み先のホームディレクトリで展開することで、screen-profilesで行った設定と同じものを、別のホスト上でも利用することができます。

$ tar xzvf screenfile.tar.gz

"byobu"の利用

前述の通り、screen-profileは最新版はプロジェクト名をbyobu⁠屏風)に改名し、コマンド名もこちらに移行しています(たとえば、⁠screen-profiles」「byobu-config⁠⁠、⁠screen-profiles-export」「byobu-export」になっています⁠⁠。

PPAからインストールすることができ、8.04・8.10・9.04で利用できます。9.04ですでにscreen-profilesを利用している場合でも、面倒でなければこちらを利用した方が良いでしょう。

なお、byobuに移行した場合も、通常の利用ではユーザーが意識すべきコマンドは「screen」だけですので、使い勝手には変化はありません。byobu-exportと、後述のbyobu-statusを利用する以外はscreen-profilesとbyobuの使い勝手に差はないはずです。

byobuのインストール

byobuはPPAから導入します。最初に、byobuプロジェクトのPPAページを開いてください。ここにapt-line(ソフトウェアソース)の記述(⁠⁠deb http://ppa.launchpad.net/byobu/ppa/ubuntu jaunty main……⁠⁠)がありますので、これを/etc/apt/sources.list.d/以下に作成したファイルに貼り付けます。以下の例では、⁠/etc/apt/sources.list.d/byobu-ppa.list」を作成しています。

$ gksu gedit /etc/apt/sources.list.d/byobu-ppa.list
(geditで開いたファイルに以下の行を貼り付け)

・9.04の場合
deb http://ppa.launchpad.net/byobu/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/byobu/ppa/ubuntu jaunty main

・8.10の場合
deb http://ppa.launchpad.net/byobu/ppa/ubuntu intrepid main
deb-src http://ppa.launchpad.net/byobu/ppa/ubuntu intrepid main

・8.04の場合
deb http://ppa.launchpad.net/byobu/ppa/ubuntu hardy main
deb-src http://ppa.launchpad.net/byobu/ppa/ubuntu hardy main

追加したapt-lineのPGP公開鍵を取り込みます。

$ sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com a42a415b4677d2d22eb05723cf5e7496f430bba5

ソフトウェアソースの再読込とアップデート[7]を行った上で、byobuとbyobu-extrasをインストールします。

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

以上でbyobuの導入は完了です。

byobu-status

byobuはscreen-profilesとそれほど差がありませんが[8]⁠、幾つか拡張された機能があります。その一つとして、ここではbyobu-status[9]を紹介します。このコマンドは、hardstatusに表示する各種インジケータの情報を、⁠生」のまま表示するものです。

一般的な利用の場合、⁠byobu-status-detail」というラッパーコマンドを利用します。byobu-status-detailは他に導入されているコマンドに応じて挙動が変化します。

まず、vimが入っている場合、このコマンドはvimを呼び出します。vim上では不要部分がフォールドされた状態で表示され、⁠za」でトグル表示することができます図7⁠。

図7 byobu-status-detailをvimで表示
図7 byobu-status-detailをvimで表示

vimが存在しない環境では、lessなどのページャを用いた表示になります図8⁠。

図8 byobu-status-detailをlessで表示
図8 byobu-status-detailをlessで表示

byobu-status-detailで出力される内容を標準出力に流したい場合、⁠byobu-status --detail」を用います。出力される内容は図8と同じものになるでしょう。

おすすめ記事

記事・ニュース一覧