cygwin
cygwinのメモ
Table of Contents |
日本語の打ち方
Alt-半角/全角。
正確にはコマンドプロンプトでの日本語の打ち方。
インストール
とりあえず複数の .jp ドメインを選択する(Ctrlキーを押しながらクリック)。 1つだけだと、欲しいソフトが配布されていないことがある。
○ボタンのようなものを押して、All Default から All Install に変更する。 デフォルトでは gcc などがインストールされないようだ。
ホームディレクトリの変更
Windows の環境変数を設定。HOME を作成し、Windows パスを指定。
デフォルトシェルの変更
cygwin を起動する cygwin.bat で
bash --login -i
となっているので、ここを変えないといけない。
zsh --login -i
Linux のように chsh とか passwd とかのコマンドで変更するわけではない。
windows のパスに cd
最近は windows のパスをそのまま指定できるようだ。
cd 'C:\Program Files\' vim 'C:\Program Files\hoge'
昔
cygpath -w 'C:\Program Files\' | xargs cd
explorer を開く
cygwin ウィンドウから
explorer .
でカレントディレクトリを explorer で開ける。 #いつから windows の環境変数 PATH を cygwin でも利用してくれるようになったので、特に設定がいらなくなった。
explorer hoge/hoge
だと explorer が / を認識できないので、hoge\hoge なのだが、cygwin が \ をエスケープシーケンスと認識するので hoge\\hoge。めんどくさいので cd してから explorer . がいいだろう。
X
startx
だけでは、DISPLAY が設定されない?
alias Xinit='startx & export DISPLAY=:0.0'
と設定しておき、
Xinit
を使用している。
.bash_profile
.bash_profile を作成。
$ touch ~/.bash_profile
.bash_profile を修正
export PATH=~/usr/bin:$PATH alias e='explorer' alias ls='ls -F --show-control-chars' alias emacs='/cygdrive/c/Program\ Files/ntemacs23/bin/runemacs.exe' alias sakura='/cygdrive/c/Program\ Files/sakura/sakura.exe' export PS1="\u@\H \w\n$ " # ntemacs の M-x shell で色エスケープシーケンスが解釈されないため
マウント
http://www.mars.dti.ne.jp/~sohda/cygwin/faq.html
:Q.6: Windows の X ドライブにアクセスしたい (X = A,B,C,...) |A.6: デフォルトでは /cygdrive/X (X はドライブ名) でアクセスできます。
ls /cygdrive/c
cygdrive と入れるのが長くて嫌だという人は、
mount --change-cygdrive-prefix /drv
として、すべての Cygwin アプリケーション(サービスも含む)を終了させてから、
ls /drv/c
とアクセスできるようになります。今、どうやってアクセスできるか(= cygdrive prefix)は
mount -p
で、確認できます。
mount [OPTION] [<win32path> <posixpath>] mount "D:" /d
まず普通に ls "C:\WINNT" などは可能。\ がエスケープシーケンスになってしまうので、C:/WINNT でも可能
mount -f //192.168.0.1/home/ /home
mount //192.168.0.1 だとできなかった。
NFS サーバーたててマウントももちろんできる。
mount 192.168.0.1:/home /home
のように。
シームレスX
startxwin.bat で X を起動すると少しシームレス。 中で XWin -multiwindow と -multiwindow オプションをつけているので。 bat なら普通にショートカットから起動もできるし。 .xinitrc 読み込まないです。XWin は。
日本語キーボードになっていないので、日本語キーボードのレイアウトファイルを もってきて、.Xmodmap という名前にして、
run xmodmap %HOME%\.Xmodmap
みたいな。を追加。%HOME% が cygwin の HOME と一致していれば。あれ?だめ?
kterm インストして、xterm の部分を
run kterm -sb -title kterm -geometry +300+300 -e sh -c 'cd; exec bash'
に変えると吉。
なんだかんだで、
run xwinclip & run cannaserver run xmodmap %HOME%\.Xmodmap run xrdb -load %HOME%\.Xresources run kinput2 -canna -cannafile %HOME%\.canna &
みたいな でもうまくいかないなぁ。%HOME% が。 消極的解決策
run kterm -sb -title kterm -e sh -c 'cd; xmodmap .Xmodmap; xrdb -load .Xresources; exec bash
PATH は上のほうで
SET PATH=.;%CYGWIN_ROOT%\bin;%CYGWIN_ROOT%\usr\X11R6\bin;%PATH%
となっているはず。
- http://www.on.cs.keio.ac.jp/~maru/cygwin-xfree-jp-supplement/
- http://www.mars.dti.ne.jp/~sohda/cygwin/compiled.html
[#v12ee7a1]
- http://web.sfc.keio.ac.jp/~s95898ym/comp/cygwin.html
[#u3f68bca]
結局 ASTEC 使ってますが。
@echo off SET DISPLAY=127.0.0.1:0.0 SET CYGWIN_ROOT=\cygwin SET PATH=.;%CYGWIN_ROOT%\bin;%CYGWIN_ROOT%\usr\X11R6\bin;%PATH% run kterm -sb -title kterm -e sh -c 'cd; exec bash'
セキュリティの項から xauth を有効にしたりするように。 「ホストアクセス制御」(xhost)のチェックをはずすとどこからでも接続できるようになってしまうので、そのままで、 「ユーザーアクセス制御」(xauth) のほうで .Xauthority 指定して xauth を使う デフォルトだと cygwin から利用できない。 さらに DISPLAY=localhost:0.0 に設定しておかないといけない。
updatedb
updatedb --prunepaths='/cygdrive /home'
ssh server
ssh-host-config
privilege separation ってやつを no にしてやった。root アクセスになるのだろう。書いてある通り
cygrunsrv -S sshd
でWindowsサービスに追加。じゃねーや。ssh-host-config が追加するから、今すぐ起動したければ、だ。 その前にLinux 的に
/etc/rc.d/init.d/sshd restart
でも試してみてエラーがでるようなら対処。lock 作成ディレクトリがないとかいわれた。
アンインストールに失敗して残ったサービスのエントリを消去したい
http://www.monyo.com/technical/windows/31.html
cygwin コマンドバッチファイル
最初から入っている startx.bat などを見ればわかるはずだ。
D:\cygwin\usr\X11R6\bin\run.exe -p /usr/X11R6/bin rxvt -display 127.0.0.1:0.0
run.exe が肝ですな。これ X 用? cygwin.bat 見りゃいいじゃん。
@echo off D: chdir D:\cygwin\bin bash --login -i
bash -c "/usr/bin/ssh -l root kuro-box 'ls'"