DOS入門
MS-DOS/PC DOS入門は、マイクロソフト社製のMS-DOS、IBM社製のPC DOSおよびそのほかのDOSに関する解説である。
MS-DOS、PC DOSとは?[編集]
MS-DOS、PC DOSは、パーソナルコンピュータ(PC)において、グラフィカルユーザインターフェイス(GUI)が普及するまでかなり用いられたキャラクタインターフェイス(w:CUI)オペレーティングシステムである。詳しくは、姉妹プロジェクトのウィキペディアのMS-DOSを参照。
MS-DOS、PC DOSの歴史[編集]
IBMが初代IBM PC用のOSの開発を米国マイクロソフト本社に委託し、PC DOSが開発された。その後、PC DOSをベースにマイクロソフトが他社にOEM供給したものは、MS-DOSとされた。
DOSの変遷[編集]
- MS-DOS
- バージョン1からバージョン6(Windows 95/98のDOS部分はバージョン7とされる)
- PC DOS
- バージョン1からバージョン7(バージョン7に若干の改修を加えたPC DOS 2000も存在する)
- DR DOS
- バージョン3.31からバージョン7.03 (バージョン8.1はGPL違反により消滅)
現代のDOS[編集]
MS-DOS、PC DOSは、オペレーティングシステムとしてはほとんど使われなくなったが、Microsoft Windowsのコマンドプロンプトとして、また、WindowsVistaから(WindowsXPからインストール可能)は、コマンドプロンプトの他にWindows PowerShellが標準に追加され、そのコマンド体系は残っている。
その他、有志によって「自由なDOS」を作る計画が始まってFreeDOSが生まれた。
DOSの概念[編集]
ディスク・ファイル[編集]
- ディスクドライブ (A, B, C, D, ... Z)
- ディスクドライブには「ドライブレター」というアルファベットのドライブ文字が割り当てられ、「Aドライブ」などと呼ぶ。PC/ATアーキテクチャではフロッピーディスクドライブにはAまたはBの文字が、ハードディスクドライブやCD-ROMドライブにはC以降の文字が割り当てられる。PC-98アーキテクチャでは、フロッピーディスク、ハードディスクを問わず起動ドライブがAドライブとなり、その後B、C、Dと順番に割り当てられていく。CONFIG.SYSのLASTDRIVEで上限を設定できる。
なお、現代のパソコンで内蔵ドライブの多くがCドライブになるのは、このMS-DOSの設定で、A・Bドライブがフロッピーディスクドライブ、更に詳しく書くと、AドライブがMS-DOSのフロッピーディスク用のドライブ、Bドライブがその他のフロッピーディスク用のドライブ用で、Cドライブがハードディスクドライブ用と割り振られているからである。決してCドライブの"C"は「computer」の"C"ではない。コンピューターの記憶装置として普及したフロッピーディスクから順番に割り振っていったらハードディスクのドライブレターが"C"になったということにすぎない。なお、フロッピーディスクドライブがA・Bと二つ割り振られているのは、当時、AドライブでMS-DOSを読み込みながらBドライブのフロッピーディスクの作業をしていたからである。
また、SSDはハードディスクドライブの代替であるから、ハードディスクドライブと同じCドライブである。 - カレントドライブ
- カレントドライブとは、対象となっているドライブのことである。カレントディレクトリとともに操作対象のディレクトリを指定する。「C:」や「D:」などのコマンドで変更できる。
- ディレクトリ
- ファイルを階層化して管理する概念としてディレクトリと呼ばれるものがある。バージョン1には、ディレクトリの概念がない。なおWindowsではフォルダと呼ぶ。
- カレントディレクトリ
- カレントディレクトリとは、対象となっているディレクトリのことである。各ドライブごとに存在し、それぞれを内部コマンドのCDで変更できる。
- ファイルシステム
- FAT (File Allocation Table) を用いる。FATはWindows 95でファイル名の長さ制限を256バイトにしたVFATに拡張された。なお、VFATをDOS/Vフォーマット、IBMフォーマットなどと呼ぶこともある。[要出典]
- またNTFSなどのパーティションにアクセスするためのドライバも販売されていた。
起動プロセス[編集]
次の順にファイルを読み込む。
- IO.SYS (必須)
- MSDOS.SYS (必須)
- CONFIG.SYS
- COMMAND.COM (変更可)
- AUTOEXEC.BAT
IO.SYS | → | MSDOS.SYS | → | CONFIG.SYS (省略可) |
→ | シェル (省略時COMMAND.COM) |
→ | AUTOEXEC.BAT (省略可) |
IBMBIO.COM | → | IBMDOS.COM | → |
なお、PC DOSまたはDR DOSの場合にはIO.SYSはIBMBIO.COMに,MSDOS.SYSはIBMDOS.COM となる。また、AUTOEXEC.BATはCOMMAND.COMから呼び出されるため、CONFIG.SYSにおいてSHELL変数をCOMMAND.COM以外を指定した場合には読み込まれない。
環境設定[編集]
CONFIG.SYSとAUTOEXEC.BATを書き換えることで行う。 MS-DOSバージョン7では、MSDOS.SYSも用いる。
CONFIG.SYS[編集]
デバイスドライバ[編集]
DEVICE、DEVICEHIGH文によって組み込む。 主なデバイスドライバには次のものがある。
- メモリ管理ドライバ
- マウスドライバ (MOUSE.SYS)
- NEC PC-98シリーズ版MS-DOSでのみ提供されている
- PC/AT互換機用のDOSでは常駐プログラムとしてMOUSE.COMが提供されている
- 日本語フロントエンドプロセッサ (FEP)
具体的には
- DEVICE=C:\DOS\HIMEM.SYS
などのように記述する。
なお、DEVICEHIGH文を用いる場合には、Upper Memory Blocksを使用するため、HIMEM.SYSまたはそれに準ずるドライバをDEVICE文で読み込んだ後に使用しなければならない。
常駐プログラムの読み込み[編集]
日本語FEPやマウスドライバなどの常駐プログラムをCONFIG.SYSから読み込む場合には、 INSTALL文またはINSTALLHIGH文を使う 。 INSTALL文を使うことで、 AUTOEXEC.BATを使わずに設定ファイルを構成することもできるが、 歴史的経緯からINSTALL文はあまり使われない。
なお、 DEVICE文におけるDEVICEHIGH文と同じく、 Upper Memory Blocksを使う関係上HIMEM.SYSの読み込みよりも後にINSTALLHIGHを使わなければならない。
- 例
- INSTALL=C:\DOS\MOUSE.COM
シェル設定[編集]
SHELL文によって設定する。 通常は標準シェルであるCOMMAND.COMを使用する。
具体的には
- SHELL=C:\COMMAND.COM /P
などのように記述する。
なお、末尾の/Pは必須。
その他[編集]
- DOS文
システムの一部をHigh Memory AreaやUpper Memory Blocksに読み込む際に使用する。- HIGH ... High Memory Areaに読み込む
- UMB ... Upper Memory Blocksに読み込む
- 例
- DOS=HIGH,UMB
- DOSDATA文
PC DOS 7.0以降のみ使用可能。
- 例
- DOSDATA=UMB
AUTOEXEC.BAT[編集]
AUTOEXEC.BATはCOMMAND.COMが起動時に必ず読み込むファイルである。 実体は通常のバッチファイルになっている。
このファイルには常駐プログラムやDOSの起動時に自動的に実行させたいアプリケーションを書きこむ。
主に使われる用途としては次のようなものがある。
- ディスクキャッシュ
- CD-ROMドライブ名の割り当て
- DOSでCD-ROMドライブを使うためには、デバイスドライバの読み込みだけではなく、MSCDEX.EXEなどの常駐ソフトウェアが必要になる
- Windowsを起動させる (Windows 3.xまで)
記述方法は絶対パスもしくは相対パスで行う。 具体的には
- A:\WINDOWS\WIN.COM
- .\WINDOWS\WIN.COM
などのように記述する。
なお、常駐ソフトウェアを読み込む際にはCONFIG.SYSのDEVICE文に対するDEVICEHIGH文のように、 High Memory Areaに常駐させるためのLOADHIGH文 (省略記法: LH) が用意されている。
MSDOS.SYS[編集]
MSDOS.SYSはCONFIG.SYS、AUTOEXEC.BATと違い、編集できる場所が限られている。もし、編集してはならない場所を編集した場合、MS-DOSが起動できなくなるケースが多い。
主に以下の用途で使われる。
- デフォルトシェル
- 起動ドライブ
- インストールディレクトリ
- Windows起動中のロゴを表示させる。(Windows9x)
コマンド[編集]
DOSのコマンドは、 内部コマンドと外部コマンド に大別される。 内部コマンドとは標準シェルCOMMAND.COMの内蔵コマンドである。 外部コマンドとはCOMMAND.COMに内蔵されていない、 .COM形式あるいは.EXE形式で提供されているコマンドである。 .BAT形式を使うと、一度に複数のコマンドを実行できる。
基本コマンド[編集]
DIRについて[編集]
ディレクトリの内容を表示するための内部コマンド (UNIXのlsに相当)。 ディレクトリの中身を知りたい場合によく使われる。
(詳しく知りたい場合は、DIR /?とコマンドの後に/?)
サンプル出力 (全てBochs上のFreeDOSより)
DIR[編集]
C:\>dir Volume in drive C is FREEDOS Volume Serial Number is 4228-11FA Directory of C:\ KERNEL SYS 41,293 08-04-02 11:32a COMMAND COM 86,413 07-30-02 12:17a DOS <DIR> 11-14-02 10:43a FDCONFIG SYS 263 11-14-02 11:05a EDIT EXE 62,277 08-11-04 7:38p EDIT HLP 29,452 04-28-04 1:22a 5 file(s) 219,698 bytes 1 dir(s) 5,402,624 bytes free C:\>
DIR /W[編集]
例1:
C:\>dir /w Volume in drive C is FREEDOS Volume Serial Number is 4228-11FA Directory of C:\ KERNEL.SYS COMMAND.COM [DOS] FDCONFIG.SYS EDIT.EXE EDIT.HLP 5 file(s) 219,698 bytes 1 dir(s) 5,402,624 bytes free C:\>
例2:
Directory of C:\DOS\BIN [.] [..] RIPCORD.COM ASSIGN.COM ATTRIB.COM CHOICE.EXE CMDXSWP.COM COMMAND.COM KSSF.COM PTCHSIZE.EXE VSPAWN.COM COMP.COM DEBUG.COM DISKCOMP.EXE DISKCOPY.EXE DISKCOPY.INI DELTREE.COM DELTREE2.COM EDIT.EXE EDIT.HLP EMM386.EXE HIMEM.EXE EXE2BIN.COM FC.EXE FDISK.EXE FDISK.INI FDISKPT.INI FDISKB.EXE FDXMS.SYS FDXMST.SYS FDXXMS.SYS FDXXMST.SYS XMSTEST.EXE FDXM286T.SYS FDXMS286.SYS XMS2TEST.EXE FIND.EXE FORMAT.EXE FASTHELP.BAT FDHELP.EXE [FILES] HELP.EXE HELP.HTM LABEL.EXE MEM.EXE [MKEYB] MIRROR.EXE MODE.COM MORE.EXE MOVE.EXE NANSI.SYS PRINT.COM PRINTQ.EXE 28MON.COM 2CMON.COM API28.COM API28I16.COM REPLACE.EXE SCANDISK.EXE SHARE.EXE CDCACHER.EXE CDHDREAD.EXE KLUDGE0.EXE NBSTAT.EXE SHSUCDHD.EXE SHSUCDN.EXE SHSUCDX.EXE SHSUDRVX.EXE SHSUSERV.EXE SORT.EXE JOIN.EXE SUBST.EXE SWSUBST.EXE SYS.COM BITDISK.EXE TDSK.EXE TREE.COM UNDELETE.EXE UNFORMAT.EXE XCOPY.EXE [KEY] KEYB.BAT KEYMAN.EXE LISTXDEF.EXE SCANKBD.EXE XKEYB.EXE XKEYBRES.EXE 82 file(s) 1,872,278 bytes 5 dir(s) 5,402,624 bytes free C:\DOS\BIN>
場合によっては、DIRコマンドを入力しても、長すぎて全てを見られないときがある。
例:
SHSUCDX EXE 15,726 10-20-00 3:34p SHSUDRVX EXE 12,849 10-20-00 3:19p SHSUSERV EXE 113,520 05-09-96 8:12p SORT EXE 14,816 01-24-95 3:20p JOIN EXE 54,096 08-05-00 4:07p SUBST EXE 54,096 08-05-00 4:07p SWSUBST EXE 54,096 01-26-97 11:35p SYS COM 10,687 08-16-02 11:29p BITDISK EXE 10,311 06-22-95 1:10a TDSK EXE 18,183 12-12-95 2:30a TREE COM 9,893 07-07-01 12:33p UNDELETE EXE 9,103 08-30-02 11:30p UNFORMAT EXE 36,231 03-24-99 8:31p XCOPY EXE 15,102 09-07-01 12:10a KEY <DIR> 11-14-02 11:03a KEYB BAT 23 08-17-01 4:55a KEYMAN EXE 6,202 04-14-02 2:09p LISTXDEF EXE 3,366 04-14-02 2:09p SCANKBD EXE 6,627 04-14-02 2:09p XKEYB EXE 12,657 07-27-02 6:57p XKEYBRES EXE 5,986 07-27-02 6:57p 82 file(s) 1,872,278 bytes 5 dir(s) 5,402,624 bytes free C:\DOS\BIN>
そのような場合は、
DIR /P[編集]
コマンドを使用する。 このコマンドを使用すると『次の頁を見るためには、何かキーを押してください』と表示されるので、次の頁を見たい場合は、何かキー(Enter等)を押す。
Volume in drive C is FREEDOS Volume Serial Number is 4228-11FA Directory of C:\DOS\BIN . <DIR> 11-14-02 10:44a .. <DIR> 11-14-02 10:44a RIPCORD COM 5,805 09-04-02 7:20a ASSIGN COM 13,867 01-27-97 12:46a ATTRIB COM 7,136 08-01-02 2:00a CHOICE EXE 12,032 08-31-02 4:20p CMDXSWP COM 88,043 07-29-02 10:38p COMMAND COM 86,413 07-29-02 10:42p KSSF COM 828 07-29-02 10:42p PTCHSIZE EXE 13,104 07-29-02 10:42p VSPAWN COM 953 07-29-02 10:42p COMP COM 1,285 11-27-94 3:48p DEBUG COM 19,606 11-24-01 7:55p DISKCOMP EXE 18,688 05-01-01 9:48p DISKCOPY EXE 46,176 07-15-01 2:17p DISKCOPY INI 512 07-15-01 2:05p DELTREE COM 4,210 04-24-00 1:02a DELTREE2 COM 3,858 04-24-00 1:02a EDIT EXE 336,449 06-23-01 2:03p Press any key to continue . . .
CD (CHDIR) について[編集]
カレントディレクトリを変更する際に使用するコマンドである。
CD[編集]
ディスクA:\BINからの一つ上のフォルダに移動したい時には、
A:\BIN>cd .. A:\>
.(ピリオド)はカレントディレクトリを表す。 上記の場合、連続してピリオドを記述しているが、これは1階層上のディレクトリを指定した事になる。
コマンドリファレンス[編集]
- ATTRIB
- ファイル属性の変更。+R/-R(読みとり専用属性)、+H/-H(隠しファイル属性)、+S/-S(システムファイル属性)、+A/-A(アーカイブ属性)の内操作したい物を記述し、その後に対象のファイル名を指定する。
- CLS
- 画面に表示されている情報を消去する。
- COLOR
- 文字色・背景色を設定できる。
- COMMAND
- COMMAND.COMを起動する。プロンプトから呼び出しても、意味がない。
- COPY
- ファイルをコピーする。コピー元のファイルと、コピー先(別ドライブや別ディレクトリを指定したり、別の名前でコピーを作ったりできる)を指定する。2つ以上のファイルを結合しながらコピーすることもできる。
- DEL
- ファイルの削除。削除対象のファイル名を指定する。
- DELTREE
- 指定のディレクトリ以下を全て削除する。
- EXIT
- COMMAND.COMを終了する。ほかのソフトウェアから呼び出された場合、そのソフトウェアに戻るが、それ以外の場合は何も起こらない。
NEC PC9800シリーズの場合はハードディスクのアクセスアームを元に戻す機能を備えているため、 実行して電源を落とさないとハードディスクのデータが破壊される可能性がある。
- FC
- ファイル比較
- FDISK
- パーティーションの管理を行う。下手に操作すると、データを失うので、慣れるまでパーティーションの編集はしない。
- FORMAT
- ディスクのフォーマットを行う。
- INTERLINK
- DOSレベルで2台のPCをP2P接続するためのソフトウエア。接続にはRS-232Cかパラレルプリンターポートを使う。ホストとなるマシンのHDがゲストとなるPCで操作できるようになる。
- LABEL
- ドライブのボリュームラベルを変更する。ドライブを指定しその後に新しいボリュームラベルを指定するか、もしくはドライブ名だけ指定してコマンドが出すプロンプトで新しいボリュームラベルを指定する。
- MD(MKDIR)
- ディレクトリを作成する。作成するディレクトリを指定する。
- MEM
- メモリーの使用状況などを確認できる。
- MODE
- デバイスの設定を行う。画面のサイズも変更できる。
- MORE
- 1画面毎にキー入力を待つ表示。"<"の後に表示するファイルを指定するか、もしくは他のコマンドの後に"| MORE"を付ける。Windowsでは、ファイル名をパラメーターにすることができる。
- MOVE
- ファイルの移動。RENと異なり、ディレクトリやドライブを超えた移動ができる。
- PROMPT
- プロンプト( C:\> など)を変更する。
- RD(RMDIR)
- ディレクトリの削除。削除するディレクトリを指定するが、そのディレクトリは空でなければならない。
- REN
- ファイル名の変更。変更したいファイルの場所と、新しい名前を指定する。
- SCANDISK
- ディスクのエラーを検査する。
- SET
- 環境変数の設定。例えばSET TEMP=C:\TEMPなどとして設定し、その後COPY FILENAME %TEMP%と実行するとあたかもCOPY FILENAME C:\TEMPと実行したかのように振舞われる。
- SYS
- DOSシステムの転送。IO.SYS, MSDOS.SYS, COMMAND.COMなどを指定ドライブへコピーするが、バージョンによって転送するファイルに若干の違いがある。
- TIME/DATE
- マシンの日付及び時刻を設定する。
- TREE
- ディレクトリ構造を表示する。
- TYPE
- テキストファイルの中身を表示する。
- VER
- DOSのバージョン番号を表示する。
- XCOPY
- 拡張されたCOPYコマンド。ファイルだけではなく、ディレクトリのコピーを行うことができる。
参考文献[編集]
- 「MS-DOSってなんどすか?」 粟野邦夫著 (1987/01) ISBN 4-89369-014-0