新しいことにはウェルカム

技術 | 電子工作 | ガジェット | ゲーム のメモ書き

LinuxのシェルをChromeみたいにタブで切り替えられるようにしてみる

普段Linuxで作業する時は、ターミナルを複数立ち上げています。

それで特に不自由していないのですが、1つのCUIターミナル内で複数のシェルを起動して、それらをChromeみたいにタブで切り替えられないかなぁと思って調べていました。

すると、イメージしていた通りのアプリ「Byobu」がありました!

linuxfan.info

詳しくは上記記事を参照頂くとして、ここではタブ利用に絞った簡単な使い方と、WSLで使う場合の注意を記載しました。

Byobuとは?

百聞は一見にしかず。例えば、シェルを4つ開いてタブで切り替えると下記のような感じになります。(一番下に表示されているのがタブです)

LinuxのシェルをChromeみたいにタブで切り替えられるようにしてみる

画面分割もできるのですが、タブで切り替えたかっただけなので、ここでは説明は割愛します。

実際の複数シェルの処理は「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」をキー割り当てで使うのですが、シェルの割当とバッティングするので解除しておきます。

  1. Byobuを起動
  2. 「byobu-ctrl-a」と入力
  3. 「2」を選択して解除

Byobuの使い方

  • タブ追加:F2
  • タブ切り替え:Alt+→,Alt+←

「exit」でシェルを終了するとタブも閉じます。全てのタブを閉じるとByobuも終了します。

残念ながらByobuを使うと、マウスホイールで画面スクロールができなくなってしまいます。

代わりに画面スクロールするには、「F7」を押してスクロールモードにし、カーソル上下またはPageUp・Downでスクロールさせます。

スクロールモードから通常モードに戻るには「Enter」を押します。

感想など

「screen」は知っていたのですが、「Byobu」は知りませんでした。しかもデフォルトで入ってるし…。

CUIのアプリなので、SSHでアクセスした場合でも使えます。

覚えるキーは「F2」「F7」「Alt+左右矢印」だけなので、導入の心理的ハードルも低いです。

いつもは複数ターミナルを立ち上げているので、メイン作業で使うことはなさそうなのですが、Byobuを使って、docker-composeのログをタブにまとめて表示しようかなぁと考え中です。

参考記事