ホストマシンはWindowsだけど、リモートのLinux上で作業するためのリモートシェル環境。
XWindowはまだ未考慮。まぁOracleインストールするときに慌ててXmingw立てるぐらいなもので、あまり頻度がないからまじめに整備する気が起きない。
今回の環境
ホストOS: Windows7 x64
リモートOS: CentOS6.4
達成したい機能
・Windowsからsshでlinuxにリモートログインして、zshで作業。
・ホストOSを一度シャットダウンしても元の作業状態に戻れる。
・ホストOSを一度シャットダウンしても元の作業状態に戻れる。
・画面複数分割
複数台に入って同時並行で作業したい、emacsで手順を参照したりメモしたりしたいときのため。
複数Windowを立ち上げる形式は、個人的に迷子になりがちなので回避。
複数Windowを立ち上げる形式は、個人的に迷子になりがちなので回避。
使用するもの
[Windows]
- cygwin 1.7.1 http://www.cygwin.com/
- putty-gdi http://ice.hotmint.com/putty/ ターミナルエミュレータ。個人的に手に馴染んではいるが、今回の構成での必然性はない。
- cygterm http://www.dd.iij4u.or.jp/~nsym/cygwin/cygterm/ telentリスナーを空けたcygwinを立ち上げて、さらにこれに接続した状態のターミナルエミュレータを起動する。
[CentOS]
- gnu screen 4.1.0 http://www.gnu.org/software/screen/ 画面の分割、作業状態の保存・復元(アタッチ・デタッチ)。こいつはゲストOS側に用意。
手順
[Windows]
1. cygwin
何も考えずに最新(Cygwin1.7)を入れる。
導入パッケージは下記を除いて随意に。
cygtermのビルドに必要なもの。
・tar
・make
・gcc
2. putty
GDIで描画してくれるバージョンを突っ込む。
http://ice.hotmint.com/putty/
Windows x64で使うので、putty/x64の*.exeで、putty/の実行ファイルを上書きする。
続いてcygwin実行時に使用するセッションを作成。
セッション名は"cygterm"で。
その他設定項目は、以下の形で設定。
- セッション>ホスト名: 127.0.0.1
- セッション>接続タイプ: Telnet
- 端末>ローカルエコー: 強制的にオフ
- 端末>ローカルライン編集: 強制的にオフ
- ウィンドウ>変換>文字セット: UTF-8
- 接続>データ>端末タイプを表す文字列 xterm
3. cygterm
http://www.dd.iij4u.or.jp/~nsym/cygwin/cygterm/
tarとgccとmakeが必要。全部cygwinに入ってるからよしなに。 からダウンロード、解凍、make, make install。
tar xvfz cygterm107.tgz cd cygterm make #今回は、cygterm.exeとcygterm.cfgを手動でcygwin/binに移動した。cygterm.cfgの内容
TERM = {puttyをおいた場所}\putty.exe -load "cygterm" telnet://%s:%d/ TERM_TYPE = xterm PORT_START = 20000 PORT_RANGE = 40 SHELL = /bin/zsh -l -i ENV_1 = MAKE_MODE=unix ENV_2 = HOME=/home/{ユーザ名}
[CentOS]
# この辺は事前状態によりけり yum install git yum install autoconf yum install ncurses-devel yum install texinfo
git clone git://git.savannah.gnu.org/screen.git cd screen/src autoconf autoheader
./configure --prefix=/usr/local --enable-colors256 make make install vim ~/.screenrc attrcolor b ".I" term xterm escape ^Zz zombie ^[ altscreen on shell /bin/zsh defscrollback 5000 autodetach on startup_message off logfile "$HOME/.screen/screen-%Y%m%d-%n.log" caption always "%{= Rk} %?%F%{b kr}%? %?%h%:%t (screen #%n)%? %{-}" hardstatus alwayslastline "%{= Gk} %-Lw%40L>%{b kg} %n %t %{-}%+Lw%-040=%{b km} %l %{.b} %Y/%m/%d %C:%s %A " sorendition "= Rk"
※アレー、最新ソースなのにCtrl-Z Vで縦分割でないよでないよー
ってやってたらCtrl-Z | にバインドされてた。恥ずかしい。
[ついで]
puttyの英文はConsolasにしておきたい。
けど、日本語がつぶれるのも困る場合。
ここでは、Consolasの日本を表示をOsaka-等幅にリンクさせる。
まだ日本語が汚いのでどうにかしたいところ。
[ついで]
puttyの英文はConsolasにしておきたい。
けど、日本語がつぶれるのも困る場合。
ここでは、Consolasの日本を表示をOsaka-等幅にリンクさせる。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink 新規>複数行文字列値> "Consolas" 値>665ttc2.ttc,Osaka-等幅
まだ日本語が汚いのでどうにかしたいところ。