DOS入門

MS-DOS/PC DOS入門は、マイクロソフト社製のMS-DOS、IBM社製のPC DOSおよびそのほかのDOSに関する解説である。
MS-DOS、PC DOSは、パーソナルコンピュータ(PC)において、グラフィカルユーザインターフェイス(GUI)が普及するまで用いられたIntel 8086(x86)アーキテクチャ用キャラクタインターフェイス(w:CUI)オペレーティングシステムである。詳しくは、姉妹プロジェクトのウィキペディアのMS-DOSを参照。
IBMが初代IBM PC用のOSの開発を米国マイクロソフト本社に委託し、PC DOSが開発された。その後、PC DOSをベースにマイクロソフトが他社にOEM供給したものは、MS-DOSとされた。 また、Microsoftに許諾を取った上でIBM PC(後のPC/ATアーキテクチャ)以外の多くのアーキテクチャ向けに他社が移植を行っている。(PC-9800シリーズなど)
バージョン6以降、MS-DOS、PC DOSの次世代CUI OSとしてMS OS/2,IBM OS/2が開発されたが、Windowsの登場によりあまり普及しなかった。
MS-DOS、PC DOSは、オペレーティングシステムとしてはほとんど使われなくなったが、Microsoft Windowsのコマンドプロンプトとして、また、WindowsVistaから(WindowsXPからインストール可能)は、コマンドプロンプトの他にWindows PowerShellが標準に追加され、そのコマンド体系は残っている。なお、Windows11でいう「ターミナル」アプリで実行されるアプリは規定ではPowerShellである(なお、ターミナルのvボタンで出てくるプルダウンメニューを使えばコマンドプロンプトなど別アプリにも変えられる)。
その他、有志によってFreeDOSやDOSBOX等、MS-DOSの互換OSが生まれた。
DOSは、Disk Operating Systemの略称であることからもわかるように、基本的にフロッピーディスク・ハードディスク上で運用しその記憶媒体上のデータを操作することにより使用する。
次の順にファイルを読み込む。
なお、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も用いる。
DEVICE、DEVICEHIGH文によって組み込む。 主なデバイスドライバには次のものがある。
具体的には
などのように記述する。
なお、DEVICEHIGH文を用いる場合には、Upper Memory Blocksを使用するため、HIMEM.SYSまたはそれに準ずるドライバをDEVICE文で読み込んだ後に使用しなければならない。
日本語FEPやマウスドライバなどの常駐プログラムをCONFIG.SYSから読み込む場合には、 INSTALL文またはINSTALLHIGH文を使う 。 INSTALL文を使うことで、 AUTOEXEC.BATを使わずに設定ファイルを構成することもできるが、 歴史的経緯からINSTALL文はあまり使われない。
なお、 DEVICE文におけるDEVICEHIGH文と同じく、 Upper Memory Blocksを使う関係上HIMEM.SYSの読み込みよりも後にINSTALLHIGHを使わなければならない。
SHELL文によって設定する。 通常は標準シェルであるCOMMAND.COMを使用する。
具体的には
などのように記述する。
なお、末尾の/Pは必須。
AUTOEXEC.BATはCOMMAND.COMが起動時に必ず読み込むファイルである。 実体は通常のバッチファイルになっている。
このファイルには常駐プログラムやDOSの起動時に自動的に実行させたいアプリケーションを書きこむ。
主に使われる用途としては次のようなものがある。
記述方法は絶対パスもしくは相対パスで行う。 具体的には
などのように記述する。
なお、常駐ソフトウェアを読み込む際にはCONFIG.SYSのDEVICE文に対するDEVICEHIGH文のように、 High Memory Areaに常駐させるためのLOADHIGH文 (省略記法: LH) が用意されている。
MSDOS.SYSはCONFIG.SYS、AUTOEXEC.BATと違い、編集できる場所が限られている。もし、編集してはならない場所を編集した場合、MS-DOSが起動できなくなるケースが多い。
主に以下の用途で使われる。
DOSのコマンドは、 内部コマンドと外部コマンド に大別される。 内部コマンドとは標準シェルCOMMAND.COMの内蔵コマンドである。 外部コマンドとはCOMMAND.COMに内蔵されていない、 .COM形式あるいは.EXE形式で提供されているコマンドである。 .BAT形式を使うと、一度に複数のコマンドを実行できる。
下記のコマンドは基本的に「コマンドプロンプト」で用いることができる。 ただし Power Shell では使えないコマンドもあるので、都度、確認のこと。
ディレクトリの内容を表示するための内部コマンド (UNIXのlsに相当)。 ディレクトリの中身を知りたい場合によく使われる。
(詳しく知りたい場合は、DIR /?とコマンドの後に/?)
サンプル出力 (全てBochs上のFreeDOSより)
Powershellでも問題なく使える。(ただし表示は上記とは異なる。)
例1:
例2:
場合によっては、DIRコマンドを入力しても、長すぎて全てを見られないときがある。
例:
そのような場合は、
コマンドを使用する。 このコマンドを使用すると『次の頁を見るためには、何かキーを押してください』と表示されるので、次の頁を見たい場合は、何かキー(Enter等)を押す。

カレントディレクトリを変更する際に使用するコマンドである。Powwershellでも問題なく使える。
ディスクA:\BINからの一つ上のフォルダに移動したい時には、

.(ピリオド)はカレントディレクトリを表す。 上記の場合、連続してピリオドを記述しているが、これは1階層上のディレクトリを指定した事になる。
なお、たとえばGドライブに移動したい場合、cd /d g: になる。/dオプションが必要。
Powershellの場合、オプション無しでも cd g: というコマンドだけで移動できる。
※ 最近のwindowsの場合、ホームフォルダやその周辺のディレクトリがクラウド用に処理されている等の理由もあって、従来とは実験結果が異なる場合もある。もしその場合、外付けHDDなどを追加してGドライブやHドライブなどといった外部ドライブなどに移動して実験すれば、簡単であろう。
MS-DOSのコマンドには、内部コマンドと外部コマンドが存在することは前述の通りである。 そのため、以下で外部コマンドとしたものについては、.COM/.EXE のファイルが無ければ使用できないので注意されたし。 以下内部コマンドにはnとつける。
NEC PC-9800シリーズの場合はハードディスクのアクセスアームを元に戻す機能を備えているため、 実行(CTRL+C または STOP キー)して電源を落とさないとハードディスクのデータが破壊される可能性がある。
以下は、NEC PC-9800シリーズ用MS-DOSに付属する外部コマンドである。特定バージョンにのみ付属するもの、同名でもバージョンにより大きく異なる動作をするものについてはその旨併記している。 スイッチ等をつけずに起動すると独自のウィザード・操作メニューが表示される事が多い。(以下mで表記)