CUIのためのウィンドウマネージャ


概要

GUIのウィンドウ・マネージャはいろいろあるが、これをコンソールでも同じような働きをさせることができるコマンド。 通常、対話型のシェルは ssh 等のコネクションを切断すると終了してしまうが、 実行時間の長い処理をさせたい場合や、バックグラウンドで処理を続けていたい場合には コネクションを維持しなければならず、常に起動しておく必要があるなど端末側の負担が大きい。

このため、仮想的な端末を通して表示やキー入力を行い、その仮想端末の接続と切断を自由に することで端末側の負担を減らすことができる。

コンソールで操作することのメリットとして、ローカル側のIMEを使えることもありがたい。

セッションとウィンドウとリージョン

  1. 実端末から screen コマンドを起動すると「セッション」ができる
  2. 仮想端末から screen コマンドを起動すると「ウィンドウ」ができる
  3. 仮想端末から画面を分割すると「リージョン」ができる

アタッチとデタッチ

  1. 仮想端末を実端末で操作している状態を「アタッチ」
  2. 仮想端末と実端末を切り離して仮想端末上のソフトがバックグラウンドで動作している状態が「デタッチ」

Tips

実端末から

内容コマンド
セッション一覧screen -ls
セッションに接続screen -r
アタッチされているセッションでも強制接続screen -d -r

仮想端末内のキー割り当て

内容キー割り当て
セッションをデタッチC-a C-d
履歴コピーモードに入るC-a ESC
履歴コピーモードを出るESC
リージョン作成(水平分割)C-a S
リージョン作成(垂直分割)C-a |
現在のリージョン以外を削除C-a Q
ハードコピーC-a h
ファイルへログC-a H

問題点

  1. ハードコピーを取ると日本語の部分が化ける
  2. プロンプトにscreenのセッション名やウィンドウ番号が出ているとうれしい
    • $STY や $WINDOW といった変数がセットされるので、プロンプトに出せばよい?
    • $HOME/.screenrc に hardstatus on ... を書いておくと、実端末ソフトのタイトルに出る
  3. セッションやウィンドウをあらかじめ決まった方法で一括作成させたい
    • $HOME/.screenrc に書いておく
  4. C-a c コマンドで新しいウィンドウを作っても hardstatus に出ない
  5. 仮想コンソール上でさらに仮想コンソールにつないでしまった場合、デタッチが困難
    • 別のshellから強制デタッチすれば復帰できるが面倒
  6. Sakuraのレンタルサーバーの方にも screen コマンドがあればうれしいのだが、入っていないようだ

リファレンス

リンク


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-05 (木) 09:48:11 (3332d)