作業がグッと楽になる screen を紹介したいと思います。
screen は1つのウィンドウ(端末)に、
複数の仮想端末を起動して使うことができる画面管理ソフトです。
ぱっと思い浮かぶだけでも以下のメリットが挙げられますねー
- 1つのウィンドウで仮想端末を複数立ち上げられる
- バカみたいにウインドウを開けなくてすむ。
- 目当てのウインドウを求めて彷徨う必要がなくなる
- 開いていた端末の状態を保持しておける
- セッション切れたりしても無駄に慌てなくてすむ
- 精神衛生によいです
- 1つのウィンドウで追加したbushを分割表示できる
- 複数端末でログ監視したいときなど超便利
- ログ吐かせながら設定ファイルいじれたりもできちゃう
- でも縦分割ができないのは激烈に不満!
そんなクッソ便利なscreenの導入から使い方までをまとめましたd(ツ)b
インストール
Macだと標準でver.4.0.3が入ってます。(2015/02/23 現在、MacOS 10.10)
$ screen -v
Screen version 4.00.03 (FAU) 23-Oct-06
Linuxへのインストールは以下のコマンドをしばけばOK
- UbuntuなどのDebian系
# apt-get install screen
- CentOSなどのRHEL系
# yum install screen
設定のカスタマイズ
ホームディレクトリで.screenrc(設定ファイル)を作成し、
文字エンコードやキーバインドの設定をカスタマイズできます。
私は以下のような設定にしています。
最大のポイントはショートカットキーをCtrl + a
からCtrl + j
に変更していることです。Ctrl + a
はターミナルのショートカットキー(行頭へ移動)とかぶるからよろしくない。
デフォルトでは scrollback buffer サイズが100しかないので、
設定を変更して十分な大きさにしています。
autodetachを有効にすることでscreenがいきなり
お亡くなりになられても、その時のプロセスは生きて残ります。
また、画面下部に色付きで、左からscreenを立ち上げたホスト名
、screenの名前
、日時
を表示するようにしています。
$ cat ~/.screenrc
# Encoding
defencodig utf-8
# Prefix Key
escape ^Jj
# set scrollback
defscrollback 1000000
# Delete sartt up screen
startup_message off
# Enable Auto detach
autodetach on
# logging
log on
deflog on
logfile "/Users/YourName/screen/log/screen-%Y%m%d-%n.log"
# Show date and screen list
hardstatus alwayslastline "%{= rw} %H %{= wk}%-Lw%{= bw}%n%f* %t%{= wk}%+Lw %{= wk}%=%{= gk} %y/%m/%d %c "
使ってみよう
実際に使って覚えるのが早いです。
これを押さえとけば勝利が約束されたも同然!
なコマンドやキーバインドをまとめましたのでガシガシ使っていきましょう。
上述の通り、独自のショートカットキーの設定に則ったコマンドです。
(adsbygoogle = window.adsbygoogle || []).push({});絶対覚えておくべきコマンド・キーバインド
screen 起動
$ screen
screen 内で新しい仮想端末を開く
[Ctrl + j] + c
現在のウィンドウの名前を変更する
[Ctrl + j] + A
screen 内で動いている仮想端末の一覧表示
[Ctrl + j] + w
screen 内で動いている別の仮想端末に移動する
[Ctrl + j] + n
または [Ctrl + j] + [space]
:昇順移動[Ctrl + j] + p
または [Ctrl + j] + [del]
:降順移動[Ctrl + j] + 数字
:(数字)で示される仮想端末に移動[Ctrl + j] + [Ctrl + j]
:直前に使っていた仮想端末へ戻る
現在開いている仮想端末を閉じる(kill)
[Ctrl + j] + k
現在開いている仮想端末をサスペンド状態にして閉じる(デタッチ)
[Ctrl + j] + d
screen 内でデタッチ状態で動いている仮想端末の一覧表示
$ screen -ls (ここで PID が確認できる)
screen 内でデタッチ状態で動いている仮想端末に戻る(アタッチ)
$ screen -r PID
デタッチせずに screen を終了する
[Ctrl + j] + \
起動中の screen をバックスクロールモードにする
[Ctrl + j] + [
バックスクロールモードでテキストコピー
カーソルを始点に移動させて [space] または [enter]
カーソルを終点に移動させて [space] または [enter]
コピーしたテキストのペースト
[Ctrl + j] + ]
画面を上下2分割
[Ctrl + j] + S
画面を左右2分割
[Ctrl + j] + |
※screenのバージョンが4.01以上の場合
画面分割後にフォーカスする画面を変更
[Ctrl + j] + [tab]
画面分割をやめる
[Ctrl + j] + Q