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] です。
[2] ubuntu-desktop(通常のデスクトップ) ・server(サーバー) ・kubuntu-desktop(Kubuntu) ・edubuntu-desktop(Edbuntu) ・xubuntu-desktop(Xubuntu) ・mobile-netbook-remix(UNR)で有効になります。"apt-cache show screen-profiles | grep Task"の実行結果を確認してみてください。
screen-profilesの利用
9.04をお使いの場合は、端末を開き、「 screen」と実行してみてください。図1 のように、利用するプロファイルを尋ねられます。
図1 プロファイルの選択
デフォルトのplainはhardstatus(画面下部の表示)が設定されませんので、ubuntu-light・dark・blackのいずれかを選択してEnterキーを押してください。screen-profilesによる設定が自動的に適用され、画面下部に各種情報が表示される状態でscreenが起動するはずです(図2、注3 ) 。
図2 screen-profilesによる情報表示
light・dark・blackの三種類は端末の配色に合わせて選択できるようになっています。lightは背景が白い環境、darkは暗めの色、blackは完全な黒背景向けとなっています(が、図2では黒背景の環境で、あえてlightを選択していたます。特に「これを選択しなければならない」という制限はありませんので、自由に選択すれば良いでしょう) 。この選択画面は、「 select-screen-profile」を選択することで、いつでも呼び出すことができます[4] 。
[3] 画面左下に表示されている「¥o/」は、本来は「\o/」で表示されるものです。これはUbuntuロゴ (Circle Of Human)の「手をつないで3人で輪になっている人」ひとり分です。が、フォントの問題でバックスラッシュが「¥」記号で表示されてしまうので、図2では少々不格好なことになっています。
デフォルト状態の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のメニュー
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 プロファイルの選択
次に「Toggle status notifications」( 画面下部に表示するインジケータの選択)です(図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 新しいウインドウの生成
「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で設定したインジケータなどを利用することができます。
[6] /etc/passwdの設定を変更するのではなく、~/.profileを改変します。/usr/share/screen-profiles/screen-launcher-{install,uninstall}を参照してください。
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
deb http://ppa.launchpad.net/byobu/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/byobu/ppa/ubuntu jaunty main
deb http://ppa.launchpad.net/byobu/ppa/ubuntu intrepid main
deb-src http://ppa.launchpad.net/byobu/ppa/ubuntu intrepid main
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
[7] byobuを利用する場合、カスタマイズされたGNU Screenのパッケージを利用する必要があるので、byobuのPPAをソフトウェアソースに追加した上で、アップデートを行わなくてはいけません。
以上で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で表示
vimが存在しない環境では、lessなどのページャを用いた表示になります(図8 ) 。
図8 byobu-status-detailをlessで表示
byobu-status-detailで出力される内容を標準出力に流したい場合、「 byobu-status --detail」を用います。出力される内容は(図8 )と同じものになるでしょう。