「Screen」の版間の差分

提供: Wikinote
移動: 案内検索
(基本設定)
(ウィンドウタイトルをホスト名にする)
行36: 行36:
 
==== ウィンドウタイトルをホスト名にする ====
 
==== ウィンドウタイトルをホスト名にする ====
  
ログインするホストの .bashrc に以下を記載しておく。
+
もし root 権限を持っているなら (そして自由に設定を変更してもよいなら)、
 +
/etc/sysconfig/bash-prompt-screen というファイルをパーミッション 755 で作成し、
 +
上記の 2 行目の echo の部分を記載しておく。
 +
 
 +
# echo 'echo -ne "\033k${LOGNAME}@${HOSTNAME%%.*}\033\\"' > /etc/sysconfig/bash-prompt-screen
 +
# chmod +x /etc/sysconfig/bash-prompt-screen
 +
 
 +
root 権限を持っていなければ、ログインするホストの ~/.bashrc に以下を記載しておく。
  
 
  if [ $TERM = 'screen' ]; then
 
  if [ $TERM = 'screen' ]; then
     echo -ne "\033k${HOSTNAME%%.*}\033\\"
+
     PROMPT_COMMAND='echo -ne "\033k${LOGNAME}@${HOSTNAME%%.*}\033\\"'
 
  fi
 
  fi
  
すると、hardstatus にログインしているホスト名が表示されてわかりやすい。
+
すると、hardstatus にログインしているホスト名とログイン名が表示されてわかりやすい。
  
  0* lab  1 centos38  2 centos47 3 centos52  4 suse103  5 lab
+
  0* hagio@lab  1 hagio@centos38  2 hagio@suse103 3 root@lab

2009年6月23日 (火) 21:26時点における版

意味がなければ screen はない。

覚え書き

  • 設定ファイル (.screenrc) を適用するには、screen を再起動させ… なくても、:source ~/.screenrc で可能。

screen の設定

基本設定

最低限これだけは設定しないと使いものにならない。

escape ^Zz
hardstatus alwayslastline "%w"
defencoding UTF-8
encoding UTF-8
  • escape の ^Z は、Ctrl-Z で screen のコマンドに入るという意味。末尾の z は、Ctrl-Z + z でコマンド文字 (Ctrl-Z 自体) をプロセスに送るという意味 (つまり、プロセスがバックグラウンドに送られる)。
  • hardstatus は "%w" でウィンドウのリストを表示できる。alwayslastline で常に表示する。これが設定されていないと使いにくさが 256 倍になる。これがデフォルトだったら、screen ユーザが今の 256 倍くらいいたと思うのだが…。
  • encoding 系はメインマシンに合わせる。

コマンドでエンコーディングを変更

RHEL 2/3/4/5 全部使うので…。そのうち、自動で切り替わるようにしよう。

bind "u" encoding UTF-8 # Ctrl-Z u でエンコーディングを UTF-8 にする
bind "e" encoding eucJP # Ctrl-Z e でエンコーディングを eucJP にする

認識性の高い hardstatus

色を用いて、現在のウィンドウを認識しやすくしたもの。

hardstatus alwayslastline "%-w%{=b bw}%n %t%{-}%+w"

bash の設定

ウィンドウタイトルをホスト名にする

もし root 権限を持っているなら (そして自由に設定を変更してもよいなら)、 /etc/sysconfig/bash-prompt-screen というファイルをパーミッション 755 で作成し、 上記の 2 行目の echo の部分を記載しておく。

# echo 'echo -ne "\033k${LOGNAME}@${HOSTNAME%%.*}\033\\"' > /etc/sysconfig/bash-prompt-screen
# chmod +x /etc/sysconfig/bash-prompt-screen

root 権限を持っていなければ、ログインするホストの ~/.bashrc に以下を記載しておく。

if [ $TERM = 'screen' ]; then
    PROMPT_COMMAND='echo -ne "\033k${LOGNAME}@${HOSTNAME%%.*}\033\\"'
fi

すると、hardstatus にログインしているホスト名とログイン名が表示されてわかりやすい。

0* hagio@lab  1 hagio@centos38  2 hagio@suse103  3 root@lab