<<トップページへ

<<目次へ

Cygwinで快適Windows生活



 Cygwin("シィグウィン"と読みます)とはUNIX(WindowsやMacintoshとは違うOSがあるのです)の環境をWindows上で体験できるアプリケーションです。Windowsにもこれと同じようなアプリケーションがあって、それをコマンドプロントといいます。これは[スタート]->[すべてのプログラム]->[アクセサリ]->[コマンドプロント]と順にクリックしていくだけで起動させることができます。

 WindowsはGUI("グラフィカル・ユーザー・インターフェイス"の略です)といって、マウスでポインタ(画面上にある矢印のことです)を動かし、特定のアイコンをクリックすることによって、様々なアプリケーションを起動させることができます。これに対して、GNU("グニュ"と読みます)といって、マウスで操作するのではなく、キーボードでコマンドすることによって特定のアプリケーションを起動させるのがCygwinの特徴です(コマンドプロントからでも同じようなことが出来ます)。

 ではなぜそのようなことをする必要があるのかというと、1つはコンピュータの知識を増やすためです。実際、多くのパソコンユーザーはマウスでカチカチと操作していくだけ非常に多くのことが出来てしまいます。そのため、コンピュータに関する基本的な知識なしでも操作できてしまうようになり、とにかく便利なモノとしてその中身はブラックボックスになってしまいます。もう1つは作業を高速化させるということです。Cygwinやコマンドプロントを用いないにしても、キーボードのショートカットキーを多用することによって、パソコンの操作が劇的に速くなります。

 最初は慣れないので、「こんな面倒なこと・・・」と思うでしょうが、少し我慢して操作して慣れていくと、私のいったことが少しずつ「あっ、たしかに。」と分かってくると思います。ただ、おそらく、コマンドによる操作を「カッコイイ」とか「プロっぽい」と思えるような人でないと、長続きしないと思います(^_^;)



Cygwinのインストール

 [Cygwin インストール]というキーワードでgoogle(検索エンジンGoogleで検索することを"googleする"といいます)すれば、自力でインストールすることも可能でしょう。しかし、もっと正確に、かつ系統的にCygwinについて知りたいのであれば、これに関する書籍を1冊購入してみるとよいでしょう。例えば、

小川淳一「Windowsで使えるUNIX環境 Cygwin徹底入門」ソーテック社

などがあります。詳しくはAmazonなどで[Cygwin]というキーワード検索すればよいです。

 一応、簡単な説明だけはここでもしておきます。

1) http://cygwin.com/へ行って、Install or update now(using setup.exe)という部分をクリックします。すると、setup.exeというファイルがダウンロードできます。

2) ダウンロードできたsetup.exeというアイコンをクリックします。すると、セットアッププログラムが起動します。

3) [Cygwin Setup]では[次へ]をクリック。

4) [Disable Virus Scanner?]では[Leave Virus scanner alone]を選択して[次へ]をクリック。ただし、この画面は表示されないこともあります(環境によって異なります)。

5) [Choose Installation Type]では[Install from internet]を選択して[次へ]をクリック。

6) [Choose Installation Directory]ではRoot DirectoryをC:\cygwin、Install ForをAll Users、Default Text File TypeをUnixにして[次へ]をクリック。なお、\はバックスラッシュで表示されている場合もありますが、\もバックスラッシュも同じです。

7) インストールの準備が始まります。

8) [Select Packages]の画面が出てきたら、1番上の + All Default の部分を1度だけクリックしてください。しばらく何も反応がありませんが、何もせずそのまま待っていてください。5分から10分くらいそのまま動きませんが、いずれDefaultがInstallに変わりますので、それまで待ちましょう。

9) DefaultがInstallに変わったら[次へ]をクリックします。

10) インストールが開始されます。かなり時間がかかるので、何もせず待つしかありません。

11) インストールが完了すると、[Create Icons]という画面が現われます。そのまま[完了]をクリックしてください。すると、しばらく黒い画面が出たり消えたりしますが、そのまま待ちましょう。

12) インストールが完全に完了すると、最後に[Cygwin Setup]ダイアログボックスが表示され、"Installation Complete"と書かれているので、[OK]をクリックします。これで完了です(デスクトップにCygwinのアイコンが追加されているはずです)。



ファイル操作

 まず最初に$が表示されており、四角い点が点滅している状態になっていると思います。これはCygwin側が「命令してくれ」とユーザーが何か命令をコマンドするのを待っている状態です。試しに

$ pwd

とコマンドしてみましょう(pwdと入力して、Enterを押します)。すると、/home/***/と表示されます(***はユーザー名なので人によって違うでしょう)。これはカレントディレクトリといって、現在作業中のディレクトリにいることを示しています。ディレクトリというのはフォルダのことだと考えて問題ありません。

 そこで、このカレントディレクトリ(現在作業中のディレクトリ)のなかにどういったファイルが存在しているのかを観覧してみましょう。そのためには、次のようにコマンドします。

$ ls -aF

 すると、フォルダ内のファイルが表示されます。実をいうと、フォルダの中身を見るだけであれば、

$ ls

とコマンドするだけもO.K.です。lsの後に続く-aFというのはオプションと呼ばれるもので、このオプションは1度に複数指定することもできます。今回の場合はaというオプションとFというオプションを指定したということになります。

 さて、ここまでで

ということをマスターしました。次はディレクトリを自由に移動する方法を解説します。

 さて、ディレクトリの移動を学ぶ前にルートディレクトリとホームディレクトリについて知っておく必要があります。ルートディレクトリというのは、最上層のディレクトリのことで、WindowsでいえばCドライブ、Dドライブがこれにあたります。UNIX環境(cygwin)においては、Windowsとは違ってCドライブやDドライブが存在しないので、ルートディレクトリは/で現されます。/の下に/bin、/home、/usr、/tmpというディレクトリが存在しているわけです。WindowsではCの下にProgram FilesやDocuments and Settingsというディレクトリが存在しています。

#UNIX環境

/
|- /bin
|- /etc
|  |- /X11
|
|- /home
|  |- /***
|
|- /lib
#Windows環境

C/
|- /Program Files
|  |- /Adobe
|  |- /google
|  |- /Microsoft Office
|
|- /Documents and Settings
|  |- /All Users
|  |- /***

 一方でホームディレクトリというのは、分かりやすくいえば(多少、語弊がありますが)「あるプログラムを起動させたときに、最初にカレントディレクトリとなっているディレクトリのこと」です。例えば、Cygwinを起動させたとき、最初のカレントディレクトリとなっているディレクトリは、最初に試したように、

$ pwd

で確認できます。このコマンドを実行すると、/home/***/と表示されたのでしたね。cygwinを起動させた時点で、この/home/***/というディレクトリにいるので、これをホームディレクトリといいます。

 少し混乱してしまったかもしれませんが、分からなければあまり難しく考えなくてもよいです。とりあえず、いずれにしてもディレクトリを移動する方法を紹介しておきます。まず、ディレクトリの移動において、2つの方法があります。1つは、1つずつ階層を移動していく方法です。

 現在のカレントディレクトリは/home/***/ですから、1つ上の階層である/homeへ移動してみます。

$ cd ..

 これで/homeへ移動できました。確認するためには

$ pwd

とすればよいわけです。すると/homeと表示されるはずです。さらに上の階層へ移動してみましょう。

$ cd ..

 これでルートディレクトリである/へ移動することができました。確認するためには

$ pwd

とします。確かに/にいることが確認できます。ここで、またホームディレクトリ(/home/***/)へ移動してみましょう。そのためには次のようにコマンドします。

$ cd home

 これに続いて、

$ cd ***

とコマンドすれば、ホームディレクトリに移動することができたはずです。しかし、実際には、ホームディレクトリへ移動するためには、

$ cd

とコマンドするだけでホームディレクトリへ戻ることができます。試しにどこかへ移動して、このようにコマンドしてみてください。

 ところで、1つ1つ階層を移動しなくても、一気に指定した階層へ移動することもできます。例えば、lib/perl5/5.8.0/Mathというディレクトリへいきたい場合は、素直に

$ cd lib/perl5/5.8.0/Math

とコマンドすればよいのです。繰り返しますが、移動できたかどうかを確認するためにはpwdコマンドを使えば良いですし、ホームディレクトリに戻りたければcdとだけコマンドすれば良いです。

 これで

わけです。しかし、Windowsを主として使っているわけですから、Windows上のフォルダ(Cドライブやそれの下層フォルダ)にアクセスしたいこともあるでしょう。仮にC:\WINDOWS\Debugというディレクトリに移動したいとしましょう。

$ cd /cygdrive/c/windows/dbug

 これで移動できます。なお、Cygwin上、あるいはコマンドプロント上では大文字と小文字の区別がありません。また、ここでdebugのフォルダの中身を見てみましょう。

$ ls -aF

 この中にある、NetSetup.LOGというファイルを観覧してみます。そのためには、catコマンドを使用します。

$ cat NetSetup.LOG

 これでファイルの中身が表示されます。ただし、これはあくまでファイルの中身を表示されるためのものですので、編集したりすることはできません。編集したい場合はEmacsというテキストエディタを使います(これについては後ほど説明します)。

 これで

わけです。続いてディレクトリ(フォルダ)の新規作成と削除の方法を紹介します。Windows上では右クリックで[新規作成]->[フォルダ]とすればよいのでした。cygwinではmkdirというコマンドを用います。

 まずホームディレクトリ(/home/***/)に移動しておき、***(ユーザー名の付いたフォルダ)のなかにsample1とsample2という名前のフォルダを作成してみます。

$ mkdir sample1

 同じようにして、

$ mkdir sample2

とします。これでsample1とsample2という名前のフォルダが新しく2つ追加されたわけです。しかし、複数のフォルダを一気に作ることができるので、この2つに追加してsample3, sample4, sample5という3つのフォルダを作成してみます。

$ mkdir sample3 sample4 sample5

 これで合計5つのフォルダが作成されたことになります。また、1度にいくつかの階層を持ったフォルダを作りたい場合は次のようにします。

$ mkdir -p sample6/one/two/three

 -pというオプションはいくつかの階層をもったフォルダを作成するためのおまじないだと思えばよいでしょう。また、作成したフォルダを削除するためには次のようにします。

$ rmdir sample1 sample2 sample3 sample4 sample5

 ところで、rmdirコマンドを使って、sample6を消そうとすると「rmdir: `sample6': Directory not empty」というエラーメッセージが表示されます。これは削除しようとしているフォルダ内にファイルかフォルダが残っているため、削除できませんよという警告です。rmdirでフォルダを削除する場合、そのフォルダの中身が空っぽである空のフォルダでなければ削除することができません。もし、削除したい場合は、

$ rm -r sample6

とすればよいのです。しかし、Windowsの場合はフォルダないしはファイルを削除しても、一旦、ゴミ箱へ移動されますが、UNIX環境下(Cygwin)では削除すると元に戻すことはできません。だから、rmコマンドの-rオプションを使って削除するのには注意が必要です。

 ここまでをまとめると、次のことをマスターしました。

 次は、ファイルのコピー、削除、移動について解説します。


 まず準備をします。ホームディレクトリ(/home/***/)にsampleというフォルダを作成してください。そのためには、

$ mkdir sample

とするのでした。次にテキストファイル(拡張子が.txtであるファイル)を作成するのですが、これはとりあえずWindowsのテキストエディタを使って作成します。[スタート]->[すべてのプログラム]->[アクセサリ]->[メモ帳]の順にクリックしていきます。

 テキストエディタを起動させたら、テキトーに「これはサンプルです。」といったような文章を打ち込んで先ほど作成したフォルダ(/home/***/sample/)に保存してください。Windows的に表現すれば、C:\cygwin\home/***/sample/という場所です。保存する際のファイル名は"test.txt"とでもしておきましょう。

 Cygwin上から、実際にそういったファイルが保存されているかどうか確認してみます。

$ cd sample
$ ls

 test.txtというファイルを確認できたら、このファイルをホームディレクトリ(/home/***/)にコピーしてみます。そのためには次のようにコマンドします。

$ cp -i test.txt /home/***/

 ファイルをコピーするのにはcpコマンドを使用します。cpコマンドは必ず、第1の引数にコピーするファイル名(今回はtest.txtだった)、第2の引数にコピー先のディレクトリ(今回は/home/***/だった)を指定しなければなりません。なお、-iというオプションは、同名のファイルが存在していた場合に「上書きしますか?」というメッセージを促すものです。同名のファイルがない場合はそのままコピーされます。

 つづいてファイルの削除方法を解説します。先ほどホームディレクトリにコピーしたtest.txtを削除してみましょう。

$ rm -i test.txt

と、このように打ち込むと「rm: remove `test.txt'?」というメッセージが表示されますが、これは「本当に削除しても良いですか?」と聞いてきているわけです。削除する場合は[Y]を入力して[Enter]を押します。キャンセルする場合は[N]を入力します。

 最後にファイル名の変更と移動の仕方を覚えましょう。ここでは/home/***/sample/にあるtest.txtをtest_01.txtという名前に変更し、このファイルをホームディレクトリに移動させてみましょう。

$ cd sample
$ ls
$ mv -i test.txt test_01.txt
$ ls

 この改名されたファイルtest_01.txtをホームディレクトリに移動させます。

$ mv -i test_01.txt /home/***/test_01.txt
$ ls
$ cd ..
$ ls

 以上、ファイル名を変更し、そのファイルを移動する、ということを1度にやってしまうことも可能です。

$ mv -i test_01.txt /home/***/sample/test.txt
$ cd sample
$ ls



おまけ −CygwinからRを起動させてみる−

 Rをインストールしている人限定の話になってしまいます。

 私はRを C:\usr\Rというフォルダにインストールしています。実際にWindowsのデスクトップアイコンをクリックして起動させている実行ファイル(拡張子.exeとなっているファイル)はC:\usr\R\R-2.7.0/binというフォルダの中にある、Rguiというプログラムです。これをCygwin上から起動させてみます。

$ cd /cygdrive/C/usr/R/R-2.7.0/bin
$ ls -aF
$ ./Rgui.exe

 ここで注意しなければならないのは、実行ファイルを指定する際に、そのファイル名の前に ./ を指定しなければなりません。これはWindowsのCドライブより下層のフォルダにパスが通っていないためです。

 それはともかくとして、先ほどls -aFでフォルダの中身を表示させたとき、Rgui.exeとは別にR.exeという実行ファイルもあったでしょう?これを起動させてみましょう。

$ ./R.exe

 すると、どうでしょう。Cygwinの画面上にRが現われたでしょう?Rgui.exeはWindows上で動くGUIに対応したWindowsアプリケーションといえます。これに対してR.exeはGUIに対応していないプログラムだということです。そのため、R.exeを実行してもマウスでの操作は一切できないわけです。しかし、できることはどちらも全く同じです。

 ただ、より厳密にいえば、R.exeを実行させると、同ディレクトリにあるRterm.exeというプログラムが実行されます。これは、R.exeを実行させると、このプログラムが「Rterm.exeを実行させなさい」という命令を下しているからだと考えれば良いでしょう。

 このように見ていくと、今まで「クリックすれば開く」だけのアプリケーションも実は色んなファイルがコンピュータの中で働いて起動しているのだと、感覚的にでも分かるでしょう?もし、こういうのが「面白い」と思わない人は、あまり深入りしない方が良いです(できたからといって、大して得をするわけでもないのでね)。



テキストエディタ

 話は戻りますが、/home/***/sample/というディレクトリには、まだtest.txtというファイルが残っています。このテキストファイルの中身を観覧するだけなら、このディレクトリに移動して、

$ cat test.txt

とコマンドするだけです。しかし、これでは中身を編集することはできません。テキストファイルの中身を編集するためには、viやEmacsというテキストエディタを使用します。

$ vi test.txt
$ Emacs test.txt

 最初は日本語で書かれた文字は、文字化けしてその通りに表示されません。実際、Unixユーザでもなければ、これらのテキストエディタを使って編集することもないので、特には説明しません。