インフラエンジニアbacchiのわかったことまとめ

bacchi.me

Linux Mac

作業がグッと楽になる screen を使おう!

更新日:

作業がグッと楽になる screen を紹介したいと思います。

screen は1つのウィンドウ(端末)に、
複数の仮想端末を起動して使うことができる画面管理ソフトです。

ぱっと思い浮かぶだけでも以下のメリットが挙げられますねー

  • 1つのウィンドウで仮想端末を複数立ち上げられる
    • バカみたいにウインドウを開けなくてすむ。
    • 目当てのウインドウを求めて彷徨う必要がなくなる
  • 開いていた端末の状態を保持しておける
    • セッション切れたりしても無駄に慌てなくてすむ
    • 精神衛生によいです
  • 1つのウィンドウで追加したbushを分割表示できる
    • 複数端末でログ監視したいときなど超便利
    • ログ吐かせながら設定ファイルいじれたりもできちゃう
    • でも縦分割ができないのは激烈に不満!

そんなクッソ便利なscreenの導入から使い方までをまとめましたd(ツ)b

インストール

Macだと標準でver.4.0.3が入ってます。(2015/02/23 現在、MacOS 10.10)

Linuxへのインストールは以下のコマンドをしばけばOK

  • UbuntuなどのDebian系

  • CentOSなどのRHEL系

設定のカスタマイズ

ホームディレクトリで.screenrc(設定ファイル)を作成し、   
文字エンコードやキーバインドの設定をカスタマイズできます。

私は以下のような設定にしています。

最大のポイントはショートカットキーをCtrl + aからCtrl + jに変更していることです。  
Ctrl + aはターミナルのショートカットキー(行頭へ移動)とかぶるからよろしくない。

デフォルトではscrollback bufferサイズが100しかないので、  
設定を変更して十分な大きさにしています。

autodetachを有効にすることでscreenがいきなり  
お亡くなりになられても、その時のプロセスは生きて残ります。

また、画面下部に色付きで、左からscreenを立ち上げたホスト名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 内でデタッチ状態で動いている仮想端末に戻る(アタッチ)

デタッチせずに 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

Sponsor Link

スポンサーリンク

Sponsor Link

スポンサーリンク

-Linux, Mac

Copyright© bacchi.me , 2018 AllRights Reserved.