Mac大流行なのでCygwinに需要ないかもしれないけど。一年間のCygwin体験をまとめてみた。今年1年で一番使ったツールで感謝してる。
CygwinはWindows環境にそのままLinuxのCUIツールを導入できる。もう「コマンドプロンプト」に拘る必要は薄くなりました。
僕は今年1年の一番の収穫はCygwinを使ったこと。
Cygwinを使うことでターミナルを使いこなせるようになった。そしてMacに移行してもターミナルさえあるから困らないと思えるようになりました。
・SSHコマンドでリモートサーバにアクセスしても文字化けする。
・色・フォントがダサくて使い物にならない。
・コマンドが少ない。grep したい。findしたい
- ターミナルが綺麗。
- 文字化け知らず
- Linuxのコマンドはほぼ使える。
- SSHが便利
- Rsyncが便利
- レジストリ読むのが便利。
- 簡単にコマンドが入る。
- javacなくても大丈夫。
- Vimとか便利になる。
- ddコマンドあるよ。
- SambaのNASも簡単よ。
- パス名は適当でいい
- iso作れるよ。
- passwdも変更できる
- 任意のマウントできるよ。
- windowsにもSSHログイン出来るようになる。
書いてたらきりがない。とにかく使ってみて。
一年間のCygwinで楽しんだまとめです。そしてCygwinのお陰でMacターミナルで困らなくなってCygwinには感謝してる。
1つずつ振り返っていく。
とその前に、まずコレだけは知っておくべき。
昔のCygwinはとても面倒臭いイメージがあり敬遠していました。ところが
ターミナルが綺麗。
・半透明Windowが綺麗。Operaは背景。
半透明の設定の細やかさが素敵
・フォントが綺麗。
コマンドプロンプト画面の汚いMSゴシックにバイバイ
写真はM2+ipaフォント。
WindowsVista/7のGlassデザインにもできる
Linuxのコマンドはほぼ使える。
linuxで便利なコマンドは大抵あります。ls / grep / find / xargs /bash / awk / csplit /split /cat /・・・とにかくほとんど使える。足りないものは諦めるしかないけど。基本的なものは全てある。
環境依存で使えなさそうなものも、実は使える
passwdでWindowsパスワードと連携するらしいぞ(使ったこと無いけど)
シェル環境と、文字コードが整ったら、つぎはSSH。これがとてつもなく武器になりました。
- sshがそのまま使えます。
- scpでファイル転送が可能になりました。
- rsyncでファイルも転送できます。
もうPutty・Teraterm/Poderosa要りません。
rsyncでファイル転送できるようになるので、殆どの作業がターミナルで完結するようになった。
レジストリを読み出すだけにとても便利。ちょっとあれどうなってたっけ。って値をREADするだけなのに、regeditだとUAC求められて困る。
でもCygwinなら簡単。読み出し可エントリを順々に読むだけならとても便利。
レジストリがファイルシステムにマウントされてるように扱える。
読み込みは普通のディレクトリをたどるだけ。
Cygwinだとレジストリたどるのがものすごく楽 - ブックマクロ開発に
takuya@letsnote:~$ ls /proc/registry/
HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_PERFORMANCE_DATA
HKEY_CURRENT_CONFIG HKEY_LOCAL_MACHINE HKEY_USERS
ls できるんですよねー
javacなくても大丈夫。
各種コンパイラが付いているのでシンタックスチェックくらいならすぐ出来る。
たとえば、Javaのために大量にインストール面倒くさいし、シンタックスチェックくらいならGCJでできる。
Vimとか便利になる。
ここまでで
・SSH経由でファイルが取得できるようになる。
・ファイル名が化けない。
・文字コードも安心。
・コンパイラやシンタックスチェックが出来る
ここまでとなると、Vimも動かしてgVimがわりに使いたくなる。。コーディング作業しても大丈夫ですよね。
コマンドプロンプトのVimよりは相当綺麗で見やすいです。
Mintty+Vimだけで相当使い込めるVim環境が出来上がる
vimdiff やら vim256 カラーも使えるようになる。色が綺麗とは素晴らしい。
vimはttymouseなどをつけることで、gvimと変わらない性能がWindowsローカル出せるようになる。
ファイルパスの扱いも困らない。
それでもよく聞くのが、ファイルパスの扱い。
「バックスラッシュがねぇbashのエスケープじゃん?」
と言われた。でもそれ実はあまり気にしなくていい。
WindowはC:/Users/takuyaでもC:¥Users¥takuyaでも同じ。
だから困らない。
どうしても必要なときは変換すれば良い。専用のパス変換コマンドも付いている。
cygpathコマンドでWin<->cygのパス変換できる。
takuya@letsnote:~$ cygpath -w /home/takuya
C:\Users\takuya
同じってのを更に詳しく。
そもそもwindowsってシステムディスクのパス名は省略できるので、これらがが同じ
c:\users\takuya
c:/Users/takuya
/users/takuya
も同じなんですよね。Windowsは最初から、パスは柔軟でいいんです。
cygwinのrubyからファイルを開く時は、次のどれでもすべて同じ事になる。
open "/Users/takuya/test.dat"
open "~/test.dat"
open "C:/Users/takuya/test.dat"
open "/cydrive/c/users/takuay/test.dat"
open "C:\\users\\takuay\\test.dat"
これらは、全部 * 同じ * です。
/cygdrive が気持ち悪いなら見ないでいい。便利ですね
くわしくは、
cygpath の便利なオプション - ブックマクロ開発に
SambaのNASも簡単よ。
パスの扱いがとても綺麗なのは、ローカルファイルに限ったわけでなくSambaパスも同じ。
cd //192.168.2.10/share/takuya
すごいねー。
結論、パス名は適当でいいのです。コマンドプロンプトより使いやすいよ。
これを最初に覚えれば捗る→" cygpath -ua "です。
Windowsディレクトリ任意のマウントできるよ。
Linuxのマウントと、Windowsフォルダの関連付けは、べつにデフォルト/cygdrive にこだわらなくてもいい。
LinuxほHomeがいいって僕みたいな、変人は
Cygwinを使ってWindowsのHomeとLinuxっぽくHomeを共有する - ブックマクロ開発に
fstab書いてこんなコトした。
5 C:/Users/ /home/ ntfs override,binary,auto 0 0
6 C:/Users/takuya /home/takuya ntfs override,binary,auto 0 0
これをかけば
/home ====> C:\Users\
/home/takuya ====> C:\Users\takuya
になる。Linuxシェル環境と同じなのでシェルスクリプト使いまわせた
半角スペースのフォルダ名にも悩まされない
fstabでマウントしちゃえば、解決。
僕はmklinkで, c:\Program files ← C:\programfilesにシンボリック・リンクしている。
これで安心ね。
fdiskあるよ。
fdiskコマンドもあります。ダミーファイル作って遊べます。ddと組み合わせて遊べる。
MacのOpenコマンドに負けない
cygstartコマンドがMacのOpenに相当します。
cygstart . #エクスプローラー起動
cygstart test.txt # エディタ起動
alias open=cygstart で超便利。
ただし
コンパイルしちゃいけない。なれないうちはCygwinでコンパイルは辞めたほうがいい。もしやるならCorei7マシンを用意しておくこと。Core2でもかなり時間を無駄にするので絶対にオススメしない。