Windows上で開発をするならばCygiwinは必須ツールですが、今日はそんなCygwin独自コマンドを紹介します。
この本を読みました。Cygwin本はいろいろ出ているけれども、今までで一番詳しい解説書だった。オススメ。
Cygwin+CygwinJE-Windowsで動かすUNIX―Cygwin is a UNIX environment for Windows
cygstart
cygstartは、Windowsでのデフォルト起動プログラムで、指定されたファイルを実行できる。たとえば、テキストファイルがサクラエディタで開くのがデフォルトならば、
cygstart hogehoge.txt
と入力すると、サクラエディタで開かれる。
自分の場合は、aliasを切って、さらに便利にしている。
alias c=‘cygstart’
さらに便利なのが、ディレクトリを指定すると、そのフォルダがエクスプローラで起動される。たとえば、
cygstart .
と入力することで、カレントディレクトリをエクスプローラで表示することができる。
cygcheck
cygcheckはCygwin プログラムの診断を行うユーティリティ。
PROGRAM list library (DLL) dependencies of PROGRAM
-c, -check-setup show installed version of PACKAGE and verify integrity
(or for all installed packages if none specified)
-d, -dump-only just list packages, do not verify (with -c)
-s, -sysinfo produce diagnostic system information (implies -c)
-r, -registry also scan registry for Cygwin settings (with -s)
-k, -keycheck perform a keyboard check session (must be run from a
plain console only, not from a pty/rxvt/xterm)
-f, -find-package find the package to which FILE belongs
-l, -list-package list contents of PACKAGE (or all packages if none given)
-p, -package-query search for REGEXP in the entire cygwin.com package
repository (requires internet connectivity)
-delete-orphaned-installation-keys
Delete installation keys of old, now unused installations from the registry. Requires the right to change the registry.
-enable-unique-object-names Cygwin-DLL
-disable-unique-object-names Cygwin-DLL
-show-unique-object-names Cygwin-DLL
Enable, disable, or show the setting of the "unique object names" setting in the Cygwin DLL given as argument to this option. The DLL path must be given as valid Windows(!) path. See the users guide for more information. If you don't know what this means, don't change it.
-v, -verbose produce more verbose output
-h, -help annotate output with explanatory comments when given
with another command, otherwise print this help
-V, -version print the version of cygcheck and exit
多機能だ。自分が使うのは、もっぱらパージョンコマンド(-c)だ。
[tsu-nera]% cygcheck -c cygwin gcc ruby screen zsh
Cygwin Package Information
Package Version Status
cygwin 1.7.18-1 OK
gcc 3.4.4-999 OK
ruby 1.9.3-p385-2 OK
zsh 5.0.2-1 OK
こんな感じで、コマンドのバージョンが一気に調べられる。
cygpath
これはあまり使わないけど、今回の記事のために調べてみた。
WindowsとCygwinでは、ファイルパスの記述方法がことなる。
- Windows形式のファイルパスは “C:\Users\hogehoge”
- Cygwin形式のファイルパスは"/cygdrive/c/Users/hogehoge"
ファイルパスをWindows形式からCygwin形式に、Cygwin形式からWindows形式に、簡単に変換できるコマンドがcygpathだ。
# Cygwin形式からWindows形式に
[tsu-nera]% cygpath -w /home/TSUNEMICHI/dotfiles
C:\cygwin\home\TSUNEMICHI\dotfiles
# Windoows形式からCygwin形式に
[tsu-nera]% cygpath -u "C:\cygwin\home\TSUNEMICHI\dotfiles"
/home/TSUNEMICHI/dotfiles
getclip
getclipは、Windows上のクリップボードにあるものを標準入力に出すことができるもの。
getclip > hogehoge.txt
などと、リダイレクトすると、ファイルに出力できる。
putclip
putclipはgetclipの逆で、Windows上のクリップボードに、出力をコピーすることができる。通常は、echoまたはcatと、パイプと組み合わせて使う。
echo 'hogehoge' | putclip
cat hogehoge.txt | pugclip
getclip/putclipの文字化け対策
CygwinはUTF-8だが、WindowsはShift-jis。なので、そのまま使うとすると、文字化けしてしまう。
そんなときは、nkfコマンドをうまくつかう。
# utf-8に変換してファイルへ
getclip | nkf -w > hogehoge.txt
# Shift-jisに変換してクリップボードへ
nkf -s < hogehoge.txt | putclip
nkfはCygwinのデフォルトコマンドではないので、以下の記事を参照してください。
Cygwinにnkfをインストールして文字化け攻略する! | Futurismo
apt-cyg
デフォルト内部コマンドではないけれども、Cygwinを使うにおいては必須コマンドがこれ。Linuxのapt-get や yumのように、簡単にツールを導入することが可能となる。通常ならば、setup.exeを利用してツールをいれるのだが、コレさえあれば、setup.exeは不要となる。
これについては、過去記事をごらんください。
setup.exeはもういらん!Cygwinでコマンドラインからインストール/アップデートする[apt-cyg]を試す | Futurismo