2.3 全面认识DOS系统
在使用DOS时,还会经常听到MS-DOS与PC-DOS,对初学者来说,可以认为二者没有区别。事实上,MS-DOS由Microsoft(微软)公司出品,而PC-DOS则由IBM公司对MS-DOS略加改动而推出。由于微软公司在计算机业界的垄断性地位,其产品MS-DOS成为主流操作系统。DOS主要由MSDOS.SYS、IO.SYS和COMMAND.COM这三个基本文件和一些外部命令组成。
2.3.1 DOS系统的功能
DOS系统实际上是一组控制计算机工作的程序,专门用来管理计算机中的各种软、硬件资源,负责监视和控制计算机的全部工作过程。它不仅向用户提供了一整套使用计算机系统的命令和方法,还向用户提供了一套组织和应用磁盘上信息的方法。
DOS系统的功能主要体现在如下5个方面。
1.执行命令和程序(处理器管理)
DOS系统能够执行DOS命令和运行可执行程序。在DOS环境下(即在DOS提示符下),当用户键入合法的命令和文件名后,DOS就会根据文件的存储地址到内存或外存上查找用户所需的程序,并根据用户的要求使CPU运行之;若未找到所需文件,就会出现出错信息,并告诉用户服务。在这里,DOS正是扮演了使用者、计算机、应用程序三者之间的“中间人”。
2.内存管理
DOS系统分配内存空间,保护内存,使任何一个程序所占的内存空间不遭受破坏,同硬件相配合,可以设置一个最佳的操作环境。
3.设备管理
DOS系统为用户提供使用各种输入输出设备(如键盘、磁盘、打印机和显示器等)的操作方法。通过DOS可以方便地实现内存和外存之间的数据传送和存取。
4.文件管理
DOS系统为用户提供一种简便的存取和管理信息方法。通过DOS管理文件目录,为文件分配磁盘存储空间,建立、复制、删除、读/写和检索各类文件等。
5.作业管理
作业是指用户提交给计算机系统的一个独立的计算任务,包括源程序、数据和相关命令。作业管理即对用户提交的诸多作业进行管理,包括作业的组织、控制和调度等。
2.3.2 文件与目录
文件是存储于外存储器中具有名字的一组相关信息集合,在DOS下,所有的程序和数据均以文件形式存入磁盘。自己编制的程序存入磁盘是文件,DOS提供的各种外部命令程序也是文件,执行DOS外部命令就是调用此命令文件的过程。
如果想查看计算机中的文件与目录(即Windows系统下的文件夹),只需在“命令提示符”窗口中运行dir命令,即可看到相应的文件和目录,如图2.3.2-1所示。后面带有<DIR>的是目录(文件夹),没有带的是文件。还可以在文件和目录名前面看到文件和目录的创建时间,以及本盘符的使用空间和剩余空间。
图2.3.2-1
MS-DOS规定文件名由4个部分组成:[<盘符>][<路径>]<文件名>[<..扩展名>]。文件由文件名和文件内容组成。文件名由用户命名或系统指定,用于唯一标识一个文件。
DOS文件名由1~8个字符组成,构成文件名的字符分为如下3类。
● 26个英文字母:a~z或A~Z。
● 10个阿拉伯数字:0~9。
● 一些专用字符:$、#、&、@、!、%、()、{}、-、-。
注意
在文件名中不能使用“<”“>”“\”“//”“[、]”“:”“! ”“+”“=”,以及小于20H的ASCII字符。另外,可根据需要自行命名文件,但不可与DOS命令文件同名。
2.3.3 文件类型与属性
文件类型是文件根据其用途和内容来分的,分别用不同的扩展名表示。文件扩展名由1~3个ASCII字符组成,有些文件扩展名是系统在一定条件下自动形成的,也有一些是用户自己定义的,它和文件名之间用“.”分隔(见表2.3.3-1)。
表2.3.3-1 常见文件类型以及文件类型扩展名
对于DOS系统下的所有磁盘文件,根据其特点和性质分为系统、隐含、只读和存档等4种不同的属性。
这4种属性的作用如下:
1.系统属性(S)
系统属性用于表示文件是系统文件还是非系统文件。具有系统属性的文件,是属于某些专用系统的文件(如DOS的系统文件io.sys和msdos.sys)。其特点是文件本身被隐藏起来,不能用DOS系统命令列出目录清单(DIR不加选择项/a时),也不能删除、拷贝和更名。如果可执行文件被设置为具有系统属性,则不能执行。
2.隐含属性(H)
隐含属性用于阻止文件在列表时显示出来。具有隐含属性的文件,其特点是文件本身被隐藏起来,不能用DOS系统命令列出目录清单(dir不加选择项/a时),也不能删除、拷贝和更名。如果可执行文件被设置为具有隐含属性后,并不影响其正常执行。使用这种属性可以对文件进行保密。
3.只读属性(R)
只读属性用于保护文件不被修改和删除。具有只读属性的文件,其特点是能读入内存,也能拷贝,但不能用DOS系统命令修改,也不能删除。可执行文件被设置为具有只读属性后,并不影响其正常执行。对于一些重要的文件,可设置为具有只读属性,以防止文件被误删。
4.存档属性(A)
存档属性用于表示文件被写入时是否关闭。如果文件具有这种属性,则表明文件写入时被关闭。各种文件生成时,DOS系统均自动将其设置为存档属性。改动了的文件也会被自动设置为存档属性。只有具有存档属性的文件,才可以列目录清单,执行删除、修改、更名、拷贝等操作。
为便于管理和使用计算机系统的资源,DOS把计算机的一些常用外部设备当成文件来处理,这些特殊的文件称为设备文件。设备文件的文件名是DOS为设备命名的专用文件名(又称设备保留名),因此,用户在给磁盘文件起名时,应避免使用与DOS设备保留名相同的名字(见表2.3.3-2)。
表2.3.3-2 DOS系统中的保留设备文件名和设置
当然,在给文件命名时,一定要注意如下几个方面。
1)设备名不能用作文件名。
2)当使用一个设备时,用户必须保证这个设备实际存在。
3)设备文件名可以出现在DOS命令中,用以代替文件名。
4)使用的设备文件名后面可加上“:”,其效果与不加冒号的文件名一定是一个设备,例如“A:”“B:”“C:”“CON”等。
2.3.4 目录与磁盘
在DOS系统中,当前目录就是提示符所显示的目录,如提示符是C:\,表示当前目录即C盘的根目录,这个\(反斜扛)就表示根目录。如果要更改当前目录,则可以用cd命令。如输入“cd Windows”,表示目录为Windows目录;当提示符变成C:\Windows时,表示当前目录变成C盘的Windows目录,如图2.3.4-1所示。
图2.3.4-1
在输入dir命令之后,就可以显示Windows目录中的文件了,这就说明dir命令列出的是当前目录中的内容,如图2.3.4-2所示。此外,当输入可执行文件名时,DOS会在当前目录中寻找该文件,如果没有该文件,则会提示错误信息。
图2.3.4-2
在DOS系统中,目录采用树形结构,其中“C:”表示最上面的一层目录,如DOS、Windows、Tools等;而DOS、Windows目录也有子目录,如DOS下的TEMP目录;Windows目录也有子目录,如Windows下的SYSTEM目录。
因此,可以用cd命令来改变当前目录。输入“cd Windows”,当前目录就变成Windows。将当前目录变为子目录称进入该子目录。如果想进入system子目录,只要输入“cd system”命令就可以了,也可以输入“cd c:\Windows\system”。如果要退出system子目录,则只要键入“cd..”就可以了。
在DOS中,两点(..)表示当前目录的上一层目录,一个点表示当前目录,这时上一级目录为父目录,再输入“cd..”,就返回到C盘的根目录。有时,为了不必多次输入“cd..”,可以直接输入“cd\”命令,“\”表示根目录。在子目录中用dir命令列文件列表时,就可以发现“.”和“..”都算成文件数目,但大小为零。
如果要将当前目录更换到硬盘的其他分区,则可以输入盘符,比如更换到D盘,那么就需要输入“D”命令,现在提示符就变成D:\>,如图2.3.4-3所示。再输入dir命令,就可以看到D盘的文件列表,如图2.3.4-4所示。
图2.3.4-3
图2.3.4-4
2.3.5 命令分类与命令格式
DOS的命令格式为:[<盘符>][<路径>]<命令名>[/<开关>][<参数>]。
各参数说明如下。
● 盘符:表示DOS命令所在的盘符,在DOS中一般省略DOS所在的盘符。
● 路径:表示DOS命令所在的具体位置(相对应的目录下),在DOS中一般省略DOS所在的路径。
● 命令名:表示每一条命令都有一个名字。命令名决定所要执行的功能。命令名是MSDOS命令中不可缺少的部分。
● 参数:在MS-DOS命令中通常需要指定操作的具体对象,即需要在命令名中使用一个或多个参数。例如,显示文件内容的命令type就要求有一个文件名。如“type readme.txt”中的type是命令名,readme.txt是参数。
有些命令则需要多个参数。例如在用于更改文件名的rename(ren)命令中,就必须包括原来的文件名和新文件名,所以需要两个参数。如C:\>ren old_zk.dos new_zk.dos,这条命令中有两个参数,即old_zk.dos和new_zk.dos。执行该命令后,即可将原来的文件名old_zk.dos更改成新文件名new_zk.dos。
还有一些命令(如dir)可以使用参数,也可以不使用参数。而像cls(清除屏幕)这样的命令则不需要使用任何参数。
● 开关:通常是一个字母或数字,用来进一步指定一条命令实施操作的方式。开关之前要使用斜杠“/”。例如,在dir命令中可使用“/P”命令来分屏显示文件列表。
内部命令与外部命令在调用格式上没有区别,不同之处在于:前者的<命令名>是系统规定的保留字,而后者的<命令名>是省略了扩展名的命令文件名。一些常用的指令都归属为内部命令,较少用的指令则归属于外部命令。DOS之所以要把指令分成外部命令与内部命令,主要是为了节省内存。若将一些不常用的命令常驻在内存中,则会降低内存的使用效率。
内部命令隐藏在DOS的io.sys和msdos.sys两个文件中,当以DOS方式启动计算机时,这两个文件就加载并常驻内存中,使得内部命令随时可用,如dir、cd、md、copy、ren、type等都属于内部命令。
外部命令则以档案的方式存放在磁盘上,调用时才从磁盘上将该文件加载至内存中。换言之,外部命令不是随时可用,而是要看该文件是否存在于磁盘中,如format、unformat、sys、deletree、undetree、move、xcopy、diskcopy等都属于外部命令。
当使用者输入一个DOS命令之后,该命令先交由command.com分析。所以command.com被称为命令处理器,其功能就是判断使用者所输入的命令是内部命令还是外部命令。若是内部命令,则交给io.sys或msdos.sys处理;若是外部命令,则到磁盘上找寻该档案,即执行该命令。如果找不到,屏幕上将会出现“Bad Command or filename”这样的错误信息。