Windows上で開発をするならばCygiwinは必須ツールですが、今日はそんなCygwin独自コマンドを紹介します。

この本を読みました。Cygwin本はいろいろ出ているけれども、今までで一番詳しい解説書だった。オススメ。

Cygwin+CygwinJE-Windowsで動かすUNIX―Cygwin is a UNIX environment for Windows

https://amzn.to/3cDE8Gn

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