※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

インストール

portsでscreenをインストールする。まずはどこにあるか探す。
# cd /usr/ports
# make search name=screen
Port: screen-4.0.3
Path: /usr/ports/sysutils/screen
Info: A multi-screen window manager
Maint: cy@FreeBSD.org
B-deps:
R-deps:
WWW: http://www.gnu.org/software/screen/
色々表示されるが、上記のやつがそれっぽい。早速インストール。
# cd /usr/ports/sysutils/screen
# make install clean

初期設定

screenとタイプするが面倒なので、.zshrcに以下を記述
alias s='screen'
これで単に"s"と打つとscreenが起動する。次に.screenrcを作成し、以下を記述
escape ^t^t
上記の指定は、エスケープキーをCtrl-tにしている。(デフォルトはCtrl-a)
色々Webでscreenの情報を見ていると、Ctrl-zかCtrl-tにしている人が多そうです。自分は当初emacsっぽくCtrl-xにしてみたのですが、Ctrl-tは確かにタイプしやすくて良い感じです。Ctrl-zは私的にはちょっとタイプしずらいです。

基本操作

# screen
でscreenを起動。
# top
でtopコマンドを起動。画面にはtopコマンドが表示されています。ここで
# ctrl-t d
とタイプしてscreenをデタッチ。これで端末がscreenから切り離され、プロンプトが表示されます。ですが、psで確認すると、ちゃんとtopコマンドは動作し続けています。ここで
# screen -r
と-rオプション付きで起動すると、デタッチしていたscreenに再接続されます。再度ctrl-t dでデタッチしてtelnetなりsshで接続していた端末もexitし、再度ホストに接続してscreen -rとしてもちゃんとデタッチしていたscreenに再接続されます。
だからどうした?と言われればそれまでなんですが、screenだと複数のウィンドウも切り替えられますし、実は何気に便利そうなので、暫くscreenを使ってみたいと思います。
他にも色々と高機能らしいのですが、取りあえず以下のようなコマンドもあります。
Ctrl-t c 新たにウィンドウを作成する
Ctrl-t w 画面の最下行にウィンドウ一覧を表示する
Ctrl-t d デタッチ
Ctrl-t p 前のウィンドウに移動する
Ctrl-t n 次のウィンドウに移動する
Ctrl-t " リストからウィンドウを選択する
Ctrl-t [ コピーモード(kjhlで画面上のカーソルを自由に動かせる。戻る場合はエンター2回)
Ctrl-t S ウィンドウ分割
Ctrl-t tab ウィンドウ移動
Ctrl-t Q 分割したウィンドウのうちアクティブなウィンドウ以外を閉じる
Ctrl-t X 分割したウィンドウのうちアクティブなウィンドウを閉じる

TODO
Ctrl-t Sでウィンドウ分割して、Ctrl-t tabで別のウィンドウ移動してもキー入力を受け付けてくれない。とりあえずCtrl-t cで新規にウィンドウを作ればキー入力を受け付けてくれるようになるんだけど、他に既存のウィンドウを使えるようにする方法はないのだろうか?

参考記事