Ubuntuサーバーには「Byobu」という「テキストベースのウィンドウマネージャー&ターミナルマルチプレクサーのランチャー」が標準でインストールされています。Byobuを実行することで、複数のシェル環境を同時に開いて、簡単に切り替えて使うことができます。
Byobuは、「tmux」あるいは「screen」の「ラッパースクリプト」です。tmuxやscreenは端末を「多重化」する「ターミナルマルチプレクサー」と呼ばれるソフトウェアです。これらは、そのままだと設定や使い方が難しいソフトウェアですが、Byobuを利用すれば初心者でも簡単に使い始めることができます。
Byobuは、当初Ubuntu向けに開発されたソフトウェアですが、現在は他のLinuxディストリビューションやmacOSにも簡単にインストールできます。
Byobuのメリット
Ubuntuデスクトップを使っている場合、「端末エミュレーター」を開いてシェル環境を使います。この場合、複数のタブやウィンドウを開いて、簡単に複数のシェル環境を切り替えつつ使うことができます。
一方、Ubuntuサーバーの場合、SSH接続もしくは仮想コンソールで「テキストログイン」し、シェル環境を使うのが一般的です。そのため、「タブ」を増やして簡単に複数のシェルを立ち上げるというわけにはいきません。
そこで役に立つのが「Byobu」です。Byoubuを実行すれば、端末アプリで「タブ」を増やすように、複数のシェル環境を同時に起動でき、切り替えて使うことができます。
各ウィンドウで動いているシェルの状態を維持したまま「デタッチ」できるのも、Byobuを使う大きなメリットです。たとえば、SSHでログインして作業している時に、手元のPCや接続回線の都合で一度ログアウトしたくなったとします。そのような場合、「デタッチ」すれば各ウィンドウでシェルを動かしたままByobuから抜けることができます。作業を再開する時は、SSHで再度ログインし、「byobu」コマンドを実行して「アタッチ」するだけで、元のByobuセッションに戻ることができます。
なお、不意にSSH接続が切れてしまった場合、自動でデタッチされた状態となります。
通常、SSHで接続してコマンドを実行している間に切断されると、実行しているコマンドも、実行しているシェルも終了してしまいます。しかしByobu上で実行していれば、中断されずに動き続けます。特に、パッケージをアップグレードするといった操作をリモート操作で行う場合、処理が中断されるとシステムに影響がでかねませんが、Byobuを用いて実行すれば安心です。
ちなみに、「Byobu」という名前は日本語の「屏風(びょうぶ)」から取られています。
Linuxデスクトップを使っている場合も有用
Linuxデスクトップを使っている場合も、他のPCからSSHで接続して使ことがあるなら、普段からByobuを使って慣れておくと良いでしょう。Ubuntuデスクトップなら、以下のボタンをクリックしてインストールできます。
以下のコマンドでインストールすることもできます。
sudo apt install byobu
Byobuの起動
「byobu」コマンドを実行すると、Byobuが起動します。
画面の下部に、Ubuntuのバージョン、ウィンドウの一覧、起動後に経過した時間、CPUやストレージなどの状況、現在時刻が表示されます。プロンプトが表示され、コマンドを入力して実行できるのは、通常のシェル環境と同様です。
ウィンドウの追加と切り替え
「F2」キーを押すと、Byobuに「ウィンドウ」が追加されます。以下の例では、画面下に「1:-*」と追加されています。
もう一度「F2」キーを押すと、以下の画像のように「2:-*」が追加されます。
これで、「0」「1」「2」という3つのウィンドウが開き、それぞれでシェルが動作している状態になりました。ウィンドウの切り替えは、「F3」および「F4」です。「F3」を押して「前のウィンドウへ切り替え」、「F4」を押して「次のウィンドウに切り替え」ができます。また、「Alt+←」と「Alt+→」でウィンドウを切り替えることも可能です。
それぞれのウィンドウで別のコマンドを実行し、ウィンドウが切り替えられることを試してみると良いでしょう。
なお、「F2」〜「F4」と同じ操作を、後述する「エスケープキー C(ウィンドウ作成)」「エスケープキー P(前のウィンドウ)」「エスケープキー N(次のウィンドウ)」で行うこともできます。
ウィンドウを閉じるには、各ウィンドウで動作しているシェルを「exit」コマンドや「ctrl-d」で終了してください。
デタッチとアタッチ
Byobuを使用中に「F6」キーを押すと、「デタッチ」されて起動前のシェルに戻ります。
ユーザーからは見えなくなりますが、Byobuのセッションはバックグラウンドで動作しています。もう一度「byobu」コマンドを実行することで、元のセッションに「アタッチ」することができます。
また、デタッチしたByobuセッションにアタッチできるのは、そのセッションをスタートした端末に限りません。たとえば、端末アプリで開始したByobuセッションに、他のPCからSSH接続してアタッチするといったことも可能です。
さらに、複数の端末から同時にByobuセッションへアタッチすると、双方でセッションを共用できます。この場合、双方の端末で任意のウィンドウに切り替えて操作することができ、入力や出力はリアルタイムで他方から見ることができます。
なお、デタッチは後述する「エスケープキー → D」で行うこともできます。
エスケープキー(ctrl-a)の挙動を設定
Byobuはデフォルトで、「F12」および「ctrl-a(Ctrlを押しながらAを押す)」を「エスケープキー」として認識します。たとえば、エスケープキーを押したあとで「C」キーを押して「新しいウィンドウの作成」を行うといったことができます。
しかし、通常のシェル環境だと「ctrl-a」は「カーソルを行頭にジャンプ」です。そのため、どちらの役割を割り当てるかを設定することができます。初めて「ctrl-a」を押すと、次のように表示されます。
この画面で「1」を入力してEnterを押すと、「ctrl-a」は「エスケープキー」として動作するようになります。この設定を行うと、「ctrl-a」を押してから「A」を押すことで「カーソルを行頭にジャンプ」できるようになります。
「2」を入力してEnterを押すと、「ctrl-a」は「カーソルを行頭にジャンプ」となります。この場合、次に解説する手順で別のキーにエスケープキーを設定しても良いでしょう。
なお、「byobu-ctrl-a」コマンドを実行すると「ctrl-a」の挙動を再選択できます。
Byobuのエスケープキーを変更する
「ctrl-a」で「カーソルを行頭にジャンプ」する操作に慣れているなら、エスケープキーを別のキーに変更しておくと便利です。
「F9」キーを押すと次の画面が表示されるので、「エスケープシーケンスの変更」を選択してEnterを押します。
すると、エスケープキーの設定画面が表示されます。
デフォルトは「ctrl-s」となっています。好みに応じて、他のキーに変更することもできます。「↓」キーを押して「適用」を選択し、Enterキーを押せば設定完了です。前の画面に戻るので、Tabキーをおして「Exit」を選択し、Enterキーを押しましょう。これで、設定したキーバインドがエスケープキーとなります。
Byobuの主なキーバインドまとめ
Byobuの操作に用いる主なキーバインドは以下の通りです。
- F2 / エスケープキー C
- 新しいウィンドウを作る
- F3 / エスケープキー P / Alt + ←
- 前のウィンドウに切り替える
- F4 / エスケープキー N / Alt + →
- 次のウィンドウに切り替える
- F5
- プロファイルをリロードする
- F6 / エスケープキー D
- デタッチする
- F7
- スクロールバック/検索モードに切り替える
- F8
- ウィンドウのタイトルを変更する
- F9
- Byobuの設定メニューを表示する
- Alt-Pageup
- 上にスクロール
- Alt-Down
- 下にスクロール
- Shift-F2
- ウィンドウを横に分割
- Ctrl-F2
- ウィンドウを縦に分割
- Shift-F3
- 次のスプリットに切り替える
- Shift-F4
- 前のスプリットに切り替える
コメント