日本時間の2000年7月7日8時58分付け。Links2Go Key Resource Award! Third in Unix Tools
Topic.の受賞を知らせるメールが届きました。
メールの文面によると、優れたデザインのページとの評価です。でも人工無能搭載の検索ロボットに選ばれても・・・(バキッ)
やっぱりMS-Windowsでも、UNIXツール使いたい。いや、本当はWindowではなくLinuxとかバークレイが使いたいのだが、MS-Windowsじゃないと…
ソフトウェア製品のサンプルなど、ただで使えるEDAが使えないので仕方無しにMS-Windowsとつきあっている。
そんなあるとき、Cygnus
Cygwin32なるものがあることを知ってしまったのであった。
おお、GCCとか色々ある。これはダウンロードするっきゃない!
てなわけである。
bashが使えるようになって、構造化シェルスクリプトが使えてうれしい。bashはインストール時のデフォルト・シェルになっています。
TERMCAPも付いていて環境変数TERMにターミナルの種類を指定しておけば、Emacsなキーバインドで行編集もできる!
などと、喜んでいたのもつかの間、Ctrl+Pをおしてコマンド履歴を手繰っていったら、俄かに動かなくなった。
ああ、なんてこったい。いったいどうしたんだよ!機嫌直してくれよ。
とか、動揺つつも、ハッと気がついた。
COMMAND.COMでハードプリントがCtrl+Pに割り当てられているのだ。
なんかゾンビのようにCOMMAND.COMのキーバインドが残っている。
うむむむ。おそるべしDOS PROMPTである。 だれか、Ctrl+Pの問題をDOS
PROMPTのところで回避する方法を知っている人は教えてください。
親切な、すずき えいすけ さんからのお便りです。
ちなみに、C-p の 抑制は unix-like-tools の contrib の ctrp を 使うとできます。
・・・・・・
情報提供:PEZ PRODUCTION Web Page[すずきえいすけ@Hi-Hoねっと]さん
ということのようです。
提供された情報にあるCtrl+Pの抑制は、まだ試しておりません。
とりあえず、忘れないうちにメモしておこうモード。
コマンド・シェルはBashの他にもtcsh (chgtcsh80.exe)も付いてくるので、cshなひとも大丈夫。
なお、Cygnus ソリューションはレッドハット社に吸収合併されました。
ここにある情報は、古いβリリースのときに書き起こされて、その後更新されておりません。
現在(2000年7月4日)では、βではなく正式なリリースになったバージョンが、入手できることでしょう。βの時代からくらべてだいぶ手直しした部分があるようですので、ここにある情報と食い違うところが多々あるかもしれません。
悪しからず。
入手方法は、レッドハット社から、CD-ROMなどの製品およびサービスを購入できます。
そのほか、プロジェクト本家のhttp://sources.redhat.com/cygwin/
からもダウンロードできますが、ネットワークの混雑を避けるために、日本からのアクセスは、日本国内にある最寄りのミラーサイトから入手しましょう。
ということで、日本国内からは、RINGサーバを利用するのが便利でしょう。
FTPサイトにFAQなどの簡単なドキュメントが一緒にあるので、それも一緒にダウンロードして読みましょうね。
英語で書いてあるから面倒臭いとは言わずに読んでみましょうね。
そうそう、森
啓介さんのWEBぺーじに、日本語訳のFAQがありますの。
訳者に感謝して読みましょうね。
インストールはダウンロードしたexeファイルをクリックするだけで、始まりますの。
うまくインストールできたら、スタートメニューにCygnus
Solutionsというグループができますの。
ここに、cygwin B20っていう項目がありますの。
これを、ポチットナっていうぐあいに選択しますの。
そうすると、DOS窓が開いて、ユーザインターフェースになるBashというコマンドインタプリタ・シェルが動き出しますの。
ここが始めの一歩ですのよ。
Gnuwin32はBashというコマンドインタプリタ・シェルが標準のユーザインターフェースですの。
このシェルは、MS-DOSのDOSKEYやHuman68kのHISTRYのようなコマンド履歴と行編集を装備していますの。
キーボードの使い方は、GNU
EmacsじゃなくってμEmacsのキー操作とほぼ一緒ですの。
キー操作 | ^ は CTRLキーを押しながら・・・ M-はMetaキー(左のAltキー)を押しながら・・・ またはESCキーを押してから・・・ |
---|---|
機能 | |
^p | 実行履歴を一つ古い方にさかのぼる |
^n | 実行履歴を一つ新しい方にくだる |
^f | カーソルを右に移動 |
^b | カーソルを左に移動 |
M-f | カーソルを次の単語へ移動する |
M-b | カーソルを前の単語へ移動する |
^k | カーソルの位置から行の終りまでを切り取る |
^u | カーソルの位置から行の先頭までを切り取る |
^a | 行頭にカーソルを移動 |
^e | 行末にカーソルを移動 |
^y | 貼り付け |
^w | マークしたところからカーソル位置までを切り取る |
M-SPECE | カーソル位置をマーク |
^i (TABと一緒) |
コマンドラインにおけるファイル名の入力を補完する |
^t | カーソル位置のキャラクタと一つ前の位置にあるキャラクタを入れ替える |
^r | Reverce-i-serch カーソル位置から前方方向に検索。ESCで検索モード終了 |
^l | TERMCAP記述していないエスケープシーケンスなどの影響で、乱れてしまった画面の書き直しをする。 |
コマンドは所謂POSIX系のコマンドの上位互換でありますので、UNIXの入門書のたぐいが参考になります。
コマンド名 | コマンドの機能 |
---|---|
ls | ファイル名のリスト |
cd | ディレクトリの移動。ただ単にcdだけでEnterをたたくと環境変数の$HOMEにあるディレクトリに帰ることができる。 |
pwd | 現在の作業ディレクトリ |
rm | ファイルの削除 |
mv | ファイルの移動 |
mkdir | ディレクトリの作成 |
rmdir | ディレクトリの削除 |
find | ファイルの検索 |
grep | ファイルの中から文字列を検索。検索文字列に正規表現が使える。 |
gcc | GNUのC/C++コンパイラ |
make | Makefileを走らす |
uname | ホストネームやシステムの種類、バージョンなどの表示 |
whoami | 自分のユーザ名と、グループID:ユーザIDの表示 |
wc | ファイルに含まれる文字数や単語の数、行数を数えて表示する |
sh | デフォルトのコマンドシェル |
roff | スクリプト系のワードプロセッサ |
sed | スクリプト系のストリーム・エディタ |
chown | ファイルの所有者を変える |
chmod | ファイルのパーミッションを変える |
diff | ファイルの差分を作る |
patch | diffの差分情報からパッチをあてがう |
nice | 指定したプロセスの優先順位を最低に変える(カーネルの実装に逆転現象がある場合では最も実行時間が長くなる) |
tty | ログインした端末のパス名を表示 |
echo | 文字列のエコー |
cat | ファイルの連結。ファイルの表示 |
split | ファイルの分割 |
cmp | ファイルの比較 |
sync | ディスク・キャッシュのフラッシュ |
tail | ファイルの後尾数行ぐらいだけ出力する |
head | ファイルの頭数行ぐらいだけ出力する。 |
hexdump | ファイルを16進数で表示 |
touch | ファイルのタッチ(ファイルの日付を変える) |
sort | 文字列などの並べ替え |
make | makefileに記述してあるファイルの依存関係から、元となるファイルが更新された(ファイルの日時によって判断する)ときにスクリプトを実行する |
MS-DOSのドライブ概念を隠蔽して、単一のルートディレクトリ
'/'から総てのディス資源にアクセスできるようにできますの。
MS-DOSはドライブがいっぱいあって何処に入れたか判らなくなりやすいですの。
でも、これならば少し改善されますわ。
BASH.EXE2.02$
とか、プロンプトがでているところに・・・
mount
と入力して、Enterキーを押してみてください。
何か印字されましたね。
Device Directory Type Flags d:\etc /etc native text!=binary \\.\tape1: /dev/st1 native text!=binary \\.\tape0: /dev/st0 native text!=binary \\.\b: /dev/fd1 native text!=binary \\.\a: /dev/fd0 native text!=binary d: / native text!=binary
ここで、Deviceとかいてあるところが、MS-DOSのファイルシステムでパスの実態名ですの。
Directoryと書いてあるとことがgnuwin32でアクセスするパスですの。
この場合だと、MS-DOSのD:ドライブのルートがルートディレクトリになっていることをあらわしていますの。
同様にMS-DOSのパスD:\etc\がgnuwin32では/etcということになりますの。
(この画面とあなたのPCでは表示される結果が異なる事があります)
さてさて、実際にマウントしてみますの。
たとえばMS-DOSのE:\ETCというパスがあって、これを/etcにしたい時は・・・
例によって、BASH.EXE2.02$とかプロンプトがでているところで・・・
mount E:\\etc /etc
といった具合に入力してEnterキーを押してみるとマウントが完了しますの。
もういちど、BASH.EXE2.02$
とか、プロンプトがでているところに・・・
mount
と入力して、Enterキーを押してみますと、現在のマウント情報が印字されますの。
マウントしてある場所が気に入らないとか、ディスク・カートリッジを取り外す時とか、気が変わったからマウントする場所を変えたい時は、マウントしてあるパスを開放してあげますの。
BASH.EXE2.02$とかプロンプトがでているところで・・・
mountコマンドでマウント情報を確認しますの。
mount
と入力して、Enterキーを押してみてください。
何か印字されましたね。
Device Directory Type Flags d:\etc /etc native text!=binary \\.\tape1: /dev/st1 native text!=binary \\.\tape0: /dev/st0 native text!=binary \\.\b: /dev/fd1 native text!=binary \\.\a: /dev/fd0 native text!=binaryd: / native text!=binary
たとえば、/etcをアンマウントしたいのならば・・・
BASH.EXE2.02$とかプロンプトがでているところで・・・
umount /etc
とか入力してEnterキーを押しますの。
そうするとアンマウントが完了しますの。
ここでもういちど、BASH.EXE2.02$とかプロンプトがでているところで・・・
mount
とか入力してEnterキーを押して、マウント情報を確認してみましょうね。
Device Directory Type Flags \\.\tape1: /dev/st1 native text!=binary \\.\tape0: /dev/st0 native text!=binary \\.\b: /dev/fd1 native text!=binary \\.\a: /dev/fd0 native text!=binary d: / native text!=binary
/etcがきえましたの。
これで/etcがアンマウントできた事が確認できました。
フロッピーやMOのような頻繁に取り外しをするデーター・カートリッジは、マウントしたりアンマウントするのが、少し面倒臭いですわ。
そこで、マウントしていないディスクドライブのパスにアクセスする方法がありますの。
たとえば、MS-DOSのC:\Windowsというパスにアクセスしたいのならば・・・
//C/Windows/
というふうに書きますの。
様々な人がCygwin32で動くソフトウェアの開発や移植を行っています。
ftp.st.ryukoku.ac.jp/pub2/ms-windows/cygwin-ports/
に、移植されたソフトウェアたちやパッチがミラーしてあります。
著作権
1998年,1999年,2000年 ©大槻昌弥
著作者に無断で新聞雑誌や電子掲示板等への掲載や転載及び複製物の配布や販売などの営利目的へ利用する事を固く禁ずる。