GNU Screen の紹介

Presenter Notes

内容

  • 自己紹介
  • GNU Screen
  • 使い方
  • .screenrc
  • 参考文献

Presenter Notes

自己紹介

  • 飯野卓見 (@troter)
    • 株式会社タイムインターメディア所属
  • Ruby, PHP, GNU Screen(?), Java, Emacs, etc

Presenter Notes

はじめに

  • 社内勉強会用資料です。
  • 入門者向け
  • 対象者
    • GNU Screen を知らない人
    • GNU Screen を使ったことがない人
    • Windowsの上でばっかり開発している人
    • .screenrcが0バイトの人

Presenter Notes

GNU Screen

Presenter Notes

GNU Screenとは

Presenter Notes

端末の操作

GNU Screen を利用しない場合

  • 端末を作業する分だけ立ち上げる
    • 編集用
    • ログ監視用
    • top用

GNU Screen を利用する場合

  • GNU Screen 内で端末の切り替えが可能に
    • 端末は一個で良い
    • 見比べたいときだけ端末を立ち上げれば良い

Presenter Notes

端末の入出力の操作

GNU Screen を利用しない場合

  • 端末のスクロールバーで操作
  • 基本マウスでコピー&ペースト

GNU Screen を利用する場合

  • コマンドラインで操作可能
  • GNU Screenの端末毎にスクロールバック可能
  • 別の端末の出力をコピー&ペーストするのも簡単

Presenter Notes

端末のセッション管理

GNU Screen を利用しない場合

  • 不意に回線が切れたら、今までの作業が無かったことに
    • 手でバッチを実行したら、バッチ終了まで回線が持つのを祈るしかない

GNU Screen を利用する場合

  • 回線が切れても、作業は維持される(オートデタッチ機能)
    • 手でバッチ実行後、セッションをデタッチする事も可能
    • ログアウトして翌日実行結果を確認するのも簡単

Presenter Notes

使い方

Presenter Notes

使い方 - 起動

起動

% screen

セッションに名前を付けて起動

% screen -S [セッション名]

Presenter Notes

使い方 - プレフィックスキー

プレフィックスキー

C-a

プレフィックスキーを入力

C-a a

Presenter Notes

使い方 - 作成と削除

新しい仮想端末を作る

C-a c
C-a C-c

現在の仮想端末を削除

C-a k
C-a C-k

Presenter Notes

使い方 - 移動

次の仮想端末に移動

C-a <SPC>
C-a n
C-a C-n

前の仮想端末に移動

C-a p
C-a C-p
C-a C-h
C-a <BackSpace>

N(0...9)番目の仮想端末に移動

C-a <N>

Presenter Notes

使い方 - コピー&ペースト

コピー/スクロールバックモードに移動

C-a [
C-a C-[
C-a <ESC>

ペースト

C-a ]
C-a C-]

Presenter Notes

使い方 - コピー/スクロールバックモード

コピー/スクロールバックモードでの操作

主なキーバインド
コマンド 効果
<SPC> (一回目) コピー開始位置指定
<SPC> (二回目) コピー終了位置指定 & 通常モードに移行
h, j, k, l 上下左右
0, ^ 行先頭に移動
$ 行末尾に移動
C-b ページダウン
C-f ページアップ
q など割り当てられていないキー 通常モードに移行

Presenter Notes

使い方 - セッション

セッションのデタッチ

C-a d
C-a C-d

セッション一覧を表示

% screen -ls
% screen -list

セッションのアタッチ

% screen -r [セッション名]

Presenter Notes

使い方 - その他

ヘルプの表示

C-a ?

組み込みコマンドの実行

C-a : [コマンド]

# 設定ファイルの再読込
C-a : source $HOME/.screenrc

Presenter Notes

.screenrc

Presenter Notes

.screenrc

GNU Screen の設定ファイル

設置場所

$HOME/.screenrc

Presenter Notes

カスタマイズ

Presenter Notes

簡単に.screenrcを読み込み直す

カスタマイズを行う前に、簡単に設定変更を反映できるようにする

通常の操作での設定ファイルの再読込は次で行う

# 設定ファイルの再読込
C-a : source $HOME/.screenrc

このコマンドを C-a C-r に割り当てる

bind ^r source $HOME/.screenrc

Presenter Notes

プレフィックスキーを変更する

C-a は bashの行先頭に移動するキーバインドと重なる

escape で変更

escape xy

x = [プレフィックスキー]
y = [プレフィックスキーを入力するキー]

プレフィックスキーをC-zに変更

escape ^z^z

プレフィックスキーをC-tに変更

escape ^t^t

プレフィックスキーをC-lに変更

escape ^l^l

Presenter Notes

起動時のメッセージを非表示にする

毎回表示されるのはうざったい

startup_message off

Presenter Notes

UTF-8モードにする

screen起動時に指定する方法も有る

% screen -U

-U を毎回指定するのは大変なので、.screenrcでは次の様に設定する

defencoding utf-8
encoding utf-8 utf-8
setenv LANG ja_JP.UTF-8

Presenter Notes

screenの中の端末の位置を表示する

自分の位置を見失わないように位置を表示させる

caption always "%{= wb} %-w%{=bu dr}%n %t%{-}%+w"

captionの指定はカオスなので、凝ったことをやりたい場合は自分で調べましょう

Presenter Notes

あとは自分で調べてください

Presenter Notes

紹介はここで終わりです

Presenter Notes

が、、

Presenter Notes

一度に覚えることが多すぎるという意見が

Presenter Notes

GNU Screen 超入門

Presenter Notes

GNU Screen 超入門

.screenrc

#escape ^z^z
#escape ^t^t
escape ^l^l

startup_message off

defencoding utf-8
encoding utf-8 utf-8
setenv LANG ja_JP.UTF-8

caption always "%{= wb} %-w%{=bu dr}%n %t%{-}%+w"

起動(& セッションが存在したら自動接続)

% screen -xRR

コマンド

C-l C-c 新規作成
C-l <N> 移動

Presenter Notes

GNU Screen 超入門 終了

Presenter Notes

まとめ

Presenter Notes

GNU Screen は

  • 複数の端末を一度に扱えて便利
  • 安全にリモート接続出来て便利
    • 接続が切れてバッチ失敗とかいいわけにならない
  • 運用を行うエンジニアにとって必要不可欠なツール
    • GNU Screen の利用はもはや義務である

Presenter Notes

参考文献と発展課題

Presenter Notes

質疑応答

Presenter Notes

ご静聴ありがとうございました

Presenter Notes