普段Linuxで作業する時は、ターミナルを複数立ち上げています。
それで特に不自由していないのですが、1つのCUIターミナル内で複数のシェルを起動して、それらをChromeみたいにタブで切り替えられないかなぁと思って調べていました。
すると、イメージしていた通りのアプリ「Byobu」がありました!
詳しくは上記記事を参照頂くとして、ここではタブ利用に絞った簡単な使い方と、WSLで使う場合の注意を記載しました。
Byobuとは?
百聞は一見にしかず。例えば、シェルを4つ開いてタブで切り替えると下記のような感じになります。(一番下に表示されているのがタブです)
画面分割もできるのですが、タブで切り替えたかっただけなので、ここでは説明は割愛します。
実際の複数シェルの処理は「tmux」もしくは「GNU screen」がやっていて、Byobuはそれを使いやすくするためのラッパーソフトになります。デフォルトでは「tmux」が使われます。
インストール
Ubuntuには標準で入っています。
sudo apt-get byobu
起動
byobu
デフォルトの設定だと、WSLでは画面が乱れるので、一旦「exit」でシェルを閉じてByobuを終了して、そのまま設定に入ります。
設定
Byobuを起動すると「~/.byobu」フォルダが作成され、その中に設定ファイルが作成されるので、それを編集します。
表示項目
「~/.byobu/status」でステータスバーの表示項目を設定します。
- 「tmux_left」が左側、「tmux_right」が右側の表示項目です。
- 項目名の前に「#」を付けると、コメントアウトされて表示されなくなります。
今回は何も表示したくなかったので全てコメントアウトしました。
得にWSLの場合、「LOGO」を表示すると画面が乱れるので、必ずコメントアウトしてください。
~/.byobu/status
tmux_left="#logo #distro #release #arch #session" tmux_right="#network #disk_io #custom #entropy #raid #reboot_required #updates_available #apport #services #mail #users #uptime #ec2_cost #rcs_cost #fan_speed #cpu_temp #battery #wifi_quality #processes #load_average #cpu_count #cpu_freq #memory #swap #disk #whoami #hostname ip_address #time_utc #date #time"
「Ctrl+a」キーバインド解除
Byobuはデフォルトでは、「Ctrl+a」をキー割り当てで使うのですが、シェルの割当とバッティングするので解除しておきます。
- Byobuを起動
- 「byobu-ctrl-a」と入力
- 「2」を選択して解除
Byobuの使い方
- タブ追加:F2
- タブ切り替え:Alt+→,Alt+←
「exit」でシェルを終了するとタブも閉じます。全てのタブを閉じるとByobuも終了します。
残念ながらByobuを使うと、マウスホイールで画面スクロールができなくなってしまいます。
代わりに画面スクロールするには、「F7」を押してスクロールモードにし、カーソル上下またはPageUp・Downでスクロールさせます。
スクロールモードから通常モードに戻るには「Enter」を押します。
感想など
「screen」は知っていたのですが、「Byobu」は知りませんでした。しかもデフォルトで入ってるし…。
CUIのアプリなので、SSHでアクセスした場合でも使えます。
覚えるキーは「F2」「F7」「Alt+左右矢印」だけなので、導入の心理的ハードルも低いです。
いつもは複数ターミナルを立ち上げているので、メイン作業で使うことはなさそうなのですが、Byobuを使って、docker-composeのログをタブにまとめて表示しようかなぁと考え中です。