最終更新日 2003/07/24(Thu)

Cygwin メモ


はじめに

このページでは、 Cygwin の使い方のメモを載せています。

Cygwin は、 Windows 上で利用可能な UNIX ライクな環境です。 Cygwin DLL で UNIX 上の API をエミュレートすることにより、 UNIX 上のツールを Windows 上で動作可能にしたものです。

改行コードの変換

Windows でのテキストファイルは改行コードが CRLF(=0x0d,0x0a) なのに対し、 UNIX では LF (=0x0a) です。 Cygwin で処理したテキストファイルを Windows アプリで読み込む際に、 この違いによる問題が発生することがあります。 Cygwin には改行コードの変換を行なうツール unix2dos が存在します。

unix2dos [file]     # UNIX 形式から Windows(DOS) 形式に
dos2unix [file]     # Windows(DOS) 形式から UNIX 形式に

実際にやってみるとこんな感じです。

$ file foo.txt      # まず、UNIX 形式のファイルであることを確認。
foo.txt: ASCII text
$ unix2dos foo.txt       # UNIX 形式から Windows 形式に変換
foo.txt: done.
$ file foo.txt      # Windows 形式に変換されているかどうか確認。
foo.txt: ASCII text, with CRLF line terminators

クリップボードの利用

Windows のクリップボードを Cygwin で利用するには、 getclip, putclip を使います。

getclip # Windows クリップボードの内容を標準出力に出力する。
putclip # 標準入力の内容を Windows クリップボードに格納する。

実際にやってみるとこんな感じです。

$ echo "clipboard test" | putclip     # クリップボードに格納
$ getclip                             # クリップボードの内容を出力
clipboard test

実行例

便利な使いかたの例として、 簡単なコマンドのコピー&ペーストによる実行の例を挙げておきます。

まずは、コマンドが書いてあるテキストをクリップボードにコピーしておいて、

$ eval $(getclip)

とすると、そのコマンドが実行できます。

漢字コード変換

Cygwin に含まれるコマンドには Shift JIS コードを含むテキストファイルを上手く扱えないものが多く存在します。 Shift JIS コードを含むテキストファイルを処理したい場合は、 一旦 EUC コード等に変換しなければならなかったりします。
漢字コードの変換には、 NKF ( http://sourceforge.jp/projects/nkf/ ) を使いましょう。

$ cat sjis.txt | nkf -e > euc.txt        # EUC に変換する。

更新履歴

2003.7.25
nkf について追加。
2003.7.12
作成。