gnu screenで端末を多重化する

はじめに

こんにちは、野村です。

今回紹介するのは、「gnu screen」という端末多重ソフトです。
あえて簡単に説明するならば、端末をタブ化させるものです。

Webブラウザで考えてみると想像しやすいかも知れません。
表示するページごとにWebブラウザを起動させることはあまりないですよね。
同じように、接続する数だけ端末を起動すると画面が散らかってしまいます。

「端末自体にタブ機能があるから必要ない」という人もいるかも知れないけど、僕の場合、仮想コンソールで作業することも多かったので習得は必須でした。

tmuxとの比較

「gnu screen」と競合するソフトウェアに「tmux」というものがあります。
tmuxは、はっきりいって gnu screen よりも多機能です。

でも、tmux上でw3mを使うと、gnu screenと比較してレイアウトが崩れやすいのですよ。

また、ショートカットキーにクセがある気がして(プレフィックスキーを押したあと、Ctrlキーを押したまま次のキーを押しても無効になる)、僕はあまりtmuxを利用していません。

↓gnu screenでw3mを使うとこう見える。

↓tmuxでは、よく見ると余計な文字が表示されていたり、行頭の位置がズレていたりする。

インストール

管理ユーザになって以下のコマンドを実行します(debian系の場合)。

# apt install screen

設定

~/.screenrc

ホームデレクトリの中に「.screenrc」というファイルを作成し、以下のように書き込みます。

vbell off
defkanji utf-8
defencoding utf-8
encoding utf-8 utf-8
cjkwidth on
 
escape ^]v
hardstatus on
hardstatus alwayslastline "screen | %w | %u %= %m/%d %D %c"
 
defmonitor off
activity off
 
maptimeout 0

[7行目] デフォルトのプレフィックス・キーは、「Ctrl+a」ですが、僕は「Ctrl+]」に設定しています。

~/.bashrc

ホームデレクトリ上の「.bashrc」に以下の一行を追記します。

alias screen='screen -U -q'

使い方

起動

起動するときのコマンドは、「screen」です。

$ screen

端末の接続が切れた場合や、gnu screenが異常終了した場合は、オプション「-r」をつけて再度起動すると、セッションが復帰する場合があります。

$ screen -r

ショートカットキー

デフォルトのプレフィックス・キーは「Ctrl+a」になります。

ウィンドウ関連

・プレフィックス+c:ウィンドウを追加
・プレフィックス+p:ウィンドウを移動(次)
・プレフィックス+n:ウィンドウを移動(前)
・プレフィックス+プレフィックス:ウィンドウを移動(以前)
(Ctrl+dでシェルを終了させることでウィンドウも閉ざすことができます)

画面分割関連

・プレフィックス+|:左右分割
・プレフィックス+S:上下分割
・プレフィックス+Tab:画面を移動
・プレフィックス+X:画面を閉じる
(分割によって新規作成された領域には、何も表示されていません。その領域に移動し、「プレフィックス+c」を押してウィンドウを追加する必要があります)

最後に

今回は、端末多重ソフト「gnu screen」を紹介しました。

実はこの gnu screen、どういうわけか、現状の Bash on Ubuntu on Windows では、使えないのですよ。
なので、使えるようにする方法を以下の記事に書いておきました。

Bash on Ubuntu on Windows で screen を使用可能に
今回は、Bash on Ubuntu on Windowsでgnu screenを使う方法です。2017年11月4日現在、screenを起動しようとするとエラーが出るのです。それをなんとかしてみます。

というわけで、今回はこれにて。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

野村 野村のプロフィール
メインPCはWindows10のVirtualBox上のFreeBSD。Linux/Unixの小ネタを求めて日々右往左往してたりする。