*コマンドプロンプトの使い方 [#w961680a]
ここでは Windows XP 限定の話をします。

#contents

**コマンドプロンプトって? [#zac89758]
Windowsっぽいプログラムを書くためには本来ウィンドウを作成するところからコードを書かないといけません。
ところがそれは面倒いです。

そこで登場するのがコマンドプロンプトです。
コマンドプロンプトは、プログラム自体が独自のウィンドウを作成する代わりに、
文字を入力・出力する機構を提供してくれます。

C/C++だのJavaだのrubyだのというプログラミング言語で、
初心者向けに解説されているようなプログラムは、
コマンドプロンプトでしか動きません。

**起動しよう [#na07acbe]
  画面左下[スタート]→[全てのプログラム]→[アクセサリ]→[コマンドプロンプト]

で起動できます。

なお、今後何度も起動することになると思われるので、スタートメニューの中の「コマンド プロンプト」の上で右クリック→[送る]→[デスクトップ(ショートカットの作成)]などをしておくと便利です。

ちなみに[ファイル名を指定して実行]→「cmd」と入力して起動することもできます

**作業ディレクトリを変えよう [#q6833917]
起動直後には、カーソル左側に C:\Documents and Settings\○○> と表示されています。
これは [マイコンピュータ]→[Windows XP (C:)]→[Documents and Setting]→[○○] というフォルダ(ディレクトリ)を
開いているということを意味します。試しに

  dir
 dir

と入力してEnterキーを押してください。すると C:\Documents and Settings\○○ の中にあるファイルの
リストが表示されますね。

では別のフォルダを開いてみましょう。cd[スペース]と打ってから、
エクスプローラから開きたいフォルダを黒い画面にD&Dしてください。

  cd "C:\Documents and Settings\○○\My Documents\エロ画像"
 cd "C:\Documents and Settings\○○\My Documents\エロ画像"

などと表示されるはずです。Enterキーを押しましょう。するとカーソル左側の表示が

  C:\Documents and Settings\○○\My Documents\エロ画像>
 C:\Documents and Settings\○○\My Documents\エロ画像>

に変わるはずです。これでフォルダを開くことができました。

  dir
 dir

と入力しましょう。エロ画像のリストが表示されますね。

なお、今開いているフォルダの中にあるサブフォルダを開きたいときは、
そのサブフォルダ名を直接タイプしてもよいです。

  cd Rainbow (「エロ画像」フォルダ内に「Rainbow」サブフォルダがあるとき)
 cd Rainbow (「エロ画像」フォルダ内に「Rainbow」サブフォルダがあるとき)

などなど。打つのが面倒なときは

  cd [Tabキー]
 cd [Tabキー]

と入力すれば候補が次々現れます。漢字を入力したいときは、[Alt] + [半角/全角] を押してください。

  ひとつ上のフォルダに移動するには特別のコマンドがあります。

  cd ..
 cd ..

です。".." はひとつ上のフォルダを指します。なお、現在のフォルダを指す "." というのも存在します。

cd と dir の2つはよく使いますので覚えてください。

プログラムをコンパイルしたり実行したりするときは、
ソースファイルがあるフォルダを開いている状態でないとダメですので注意しましょう。

**リダイレクト・パイプ [#w3d088c8]
ファイル数が多いフォルダで dir を打つと、どんどん行が流れていきます。
そういう場合

  dir | more ( | は[^~へ]キーの右にあるキーをシフトと一緒に押す)
 dir | more ( | は[^~へ]キーの右にあるキーをシフトと一緒に押す)

と打つとよろしい感じです。more は入力された文字を徐々に表示するコマンドです。
dir の出力を more へまわしているわけですね。これを「パイプ」といいます。

dir の出力をファイルに保存して後からじっくり見たいこともありますね。
そういう時は

  dir > file.txt
 dir > file.txt

と打ちます。こうすると画面には何も表示されませんが、
その代わり表示されるはずだった出力が file.txt に保存されます。
これを(標準出力の)「リダイレクト」といいます。

直前の例では file.txt は上書きされますが、上書きでなくて「追記」にして欲しいときがあります。
そういう時は

  dir >> file.txt
 dir >> file.txt

と打ちます。

標準出力(画面への出力)のリダイレクトがあるなら標準入力(画面からの入力)のリダイレクトもあるんじゃね?
と思ったあなた、正しいです。

  (コマンド名) < file.txt
 (コマンド名) < file.txt

と打ちます。これで画面からキーボードで入力する代わりに file.txt の内容を使えます。
が、これは使わないほうが得策です。代わりに file.txt の内容をコピーしてコマンドプロンプトへ
ペーストするほうがいろいろと楽です。なおペーストする際は Ctrl+V ではなくて右クリックを使いましょう。

**EXEを起動しよう [#ee8999a7]
EXEファイルを起動する方法は、コマンドを実行するときと全く同じにできます。
たとえば jane2ch.exe を起動するには、Jane の入っているフォルダに cd して

  jane2ch
 jane2ch

と打てばよいです。末尾の exe はいりません(つけてもよいです)。

ところで今どのフォルダを開いていてもよいので

  explorer .  ("." は現在のフォルダを指す)
 explorer .  ("." は現在のフォルダを指す)

と打ってください。エクスプローラが立ち上がりますね。では

  dir
 dir

と打ってください。explorer.exe は見つかりましたか?
多分ないはずです。そこで

  echo %path%
 echo %path%

と打ってください。フォルダのパス文字列が沢山表示されますね。
実は explorer.exe はこの中のどこかに入っています。

**困ったときは [#c4d33169]
cd, dir以外のいろんなコマンドを知りたいときは

  help
 help

と打ちましょう。いろんなコマンドが表示されます。コマンドの詳細なヘルプが欲しいときは

  (コマンド名) /?
 (コマンド名) /?

と打ちましょう。但し、del(ファイル消去)とか rd(ディレクトリ消去)とかの命令には注意しましょう。
ミスタイプして必要なファイルが消えてしまうかもしれません。
**UNIXに慣れている人 [#g56e3b4d]
dirをlsと打ってしまう人はlsのWindows版を探しましょう。ベクターに転がっています。~
ls[http://www.vector.co.jp/soft/winnt/util/se253843.html]

*用語集 [#we5c26e9]

ここでは前章で取り上げられなかった用語を説明します。
前章を読み終えたことを前提にしたいのでお願いします。

**カレントディレクトリ [#t12b02b5]

コマンドプロンプトで、今開いているフォルダです。
カーソルの左側に表示される奴です。

**パス (path) [#xfa40193]

パスには絶対パスと相対パスがあります。

***絶対パス [#o7ae3c73]

パスとは、マイコンピュータから目的のファイルやフォルダへたどり着くまでに、
クリックするファイル・フォルダ名を並べたものです。

  [マイコンピュータ]→[Windows XP(C:)]→[Documents and Settings]→[usr]→[My Documents]→[My Pictures]→[無題.jpg]

とやって 無題.jpg へたどり着いたなら、無題.jpg の絶対パスは

  C:\Documents and Settings\usr\My Documents\My Pictures\無題.jpg

になります。区切り文字には \ を使います。この記号は、日本語環境では &yen; です。
アメリカ人は円など使わないので、同じ文字番号にバックスラッシュ(\)を割り当てているため
文字化けしているかもしれません。

アメリカ人に言わせれば日本の &yen; のほうが文字化けなのでその辺は怒ってはいけません。

C 言語をやっている人は、パスをプログラム中に埋め込むときには、 \ を2回重ねましょう
(意味がわからないときは、エスケープシーケンスでググると幸せになれます)

なお、マイコンピュータに表示される「○○のドキュメント」からたどるのはダメです。
必ず A: とか C: とかからたどってください。

***相対パス [#efba6bf9]

相対パスとは、今開いている(着目している)フォルダから、目的のファイル・フォルダへたどり着くまでに
クリックするファイル・フォルダ名を並べたものです。
エクスプローラの[上へ]ボタンを使ったときは、".." を入れます。

C:\Documents and Settings\usr\My Documents\My Pictures に着目しているとき

  C:\Documents and Settings\usr\My Documents\My Music\無題.mp3

へたどり着くには、[上へ]→[My Music]→[無題.mp3] とクリックしていけばいいですね。
ですからこのファイルの相対パスは

  ..\My Music\無題.mp3

となります。

***注意事項 [#a325cd93]

今開いているフォルダとボリューム(A: とか C: とか)が同じなら、絶対パスのボリューム名を省略できます。

  \Documents and Settings\usr\My Documents\My Pictures\無題.jpg

などなど。このときは先頭に \ を必ず入れます。

このほか、UNC などという面倒なのもあります:

  \\?\C:\Documents and Settings\usr\My Documents\My Pictures\無題.jpg

などと書きます。これは Windows 9x にはない書き方で、超長いファイルパスを使ってもエラーにならない(ことがある)という効能があります。
但し、コマンドプロンプトはもちろんエクスプローラでもこの書き方はサポートされていません。
もしプログラム中で使うときは、そのプログラミング言語がユニコードで動いているかどうか確かめてから使いましょう。

警告しておきますが、UNC パスを用いて糞長いパスのファイルを作ると、エクスプローラで消去できなくなります。

**環境変数 [#zff87123]

環境変数というのは、コマンドプロンプトに記憶させてある文字列のことです。

  set yome=suiseiseki
 set yome=suiseiseki

と打ち込んでみてください。そうすると、%yome% という名前で suiseiseki という文字列を参照することができます。

  echo %yome%
 echo %yome%

などと打ってみるとよいです。

「EXE を起動しよう」の項でも説明しましたが

  echo %path%
 echo %path%

と打つと、%path% という名前で記憶されている文字列が表示されます。……あれ? set path=~ なんて打ち込んだ覚えはありませんね?

こういうのはコントロールパネルで設定しておいたものが、コマンドプロンプト起動時に自動的に読み込まれるのです。

set コマンドで作ったり変更したりした環境変数は、コマンドプロンプトを閉じると無効になりますから、恐れずにいろいろやってみましょう。たとえば

  set path=
 set path=

と打ってみると面白いかもしれません。

**便利な機能 [#n96d941e]
"ファイル名を指定して実行"から起動するときに"cmd /f:on"と入力するとファイルとディレクトリの名前に対して補完機能が働くようになります。~
Ctrl + D でディレクトリ、Ctrl + F でファイル(ディレクトリも含む)の名前が補完されます。~
 C:\>
となっている状態で、
 C:\>Doc
まで入力し、Ctrl + Dを押すと
 C:\>"Documents and Settings"
と自動で入力されます。~
補完キーを押すたびに次の候補に移るので、覚えておくと非常に便利です。

*加筆と修正おながいします [#o132e87d]
Shell Scriptとかどうするんだよ・・・・。適当に書いたから加筆お願いね



Mac OS Xならば、ターミナルを起動。他のUnix系は・・・いじるくらいだから知ってるでしょ?

**権限 [#caeb9059]
shだとかbashだとかいろいろある

**コマンド [#r8811924]
/usr/bin/ln -s <filename1> <filename2>

filename1のシムリンクをfilename2に作製するコマンド。
「/usr/bin/ln」にOSに合わせてコンパイルされたlnのバイナリが必要
lnのパスが通っていれば「ln -s <filename1> <filename2>」で実行出来る。

%%各コマンドは「;」で区切る。%%

;で区切ってもいいけど、&&で区切ったり||で区切ったりする方が多いと思う。

&&→前のコマンドが成功したときに次のコマンドを実行する

例: (ls -laF) && ls

||→前のコマンドが失敗したときに次のコマンドを実行する

**ファイルに記述 [#m1e02e4c]
/test.sh -<引数>

きっちりtest.shのパーミッションを設定する必要がある。
test.sh実行中に出力された内容はコマンドでの引数取得方法が使用出来る。

**スーパーユーザで実行 [#p7674047]

強権を振るいたい時やムシャクシャした時はこれで。
冒頭にsudo を付けるか、root権限を有するユーザーでloginする
>login root

Password: vip


ちなみにubuntuではデフォルトでrootのパスワードが存在しないので

$sudo passwd root

とやってパスワードを作ってやる

**パイプ [#sa63c7a4]

「|」を使えば結果を渡せる。
<処理1> | grep <処理2>

などとしてよく使う