文件系统实验-DOS-- (1)
- 格式:doc
- 大小:72.50 KB
- 文档页数:7
DoS 与DDoS实验(一)DoS测试实验目的:了解DoS原理及过程实验设备:四台PC、交换机、DNS服务器软件、DoS 的三款软件实验人员:PC1 袁宇 1231150160 (DNS端:192.168.0.106)PC2 何永刚 1223150267 (被控端:192.168.0.108)PC3 赵龙 1223150284 (傀儡端:192.168.0.103)PC4 吕飞乐 1223150283 (傀儡端:192.168.0.102)实验步骤:1、PC2(被控端)打开黑风,并将压缩文件:zl.zip、yy.zip、lfl.zip跟黑风放在同一文件夹里。
(zl、yy、lfl为组员姓名首字母缩写)2、PC1打开DNS服务器,并设域名,IP为被控端IP。
3、交换机相连完毕后,两个傀儡端PC3与PC4分别ping PC2(被控端),以确保连通完好:4、此时查看CPU的使用率5、两个傀儡端分别打开软件,并填好要恶意下载的压缩文件,自由设定攻击次数。
6、再次查看CPU使用率可以看到有明显的上升比例:结论:此时要想打开 ,网页就迟迟难以打开。
其原理就是,一些攻击端恶意不停下载目标主机资源,以此来消耗目标主机的CPU空闲,使得它不能为正常访问主页的客户主机提供服务。
(二)DDoS测试实验目的:了解DDoS原理及过程实验设备:四台PC,公云(动态域名申请与设置),DDoS三款软件实验人员:PC1 吕飞乐 1223150283 (控制端:192.168.0.102)PC2 何永刚 1223150267 (被控端:192.168.0.108)PC3 赵龙 1223150284 (傀儡端:192.168.0.103)PC4 袁宇 1231150160 (傀儡端:192.168.0.106)注:因为电脑ping问题更换了几个人的PC端实验步骤:1、控制端PC1设置公云动态域名与IP: =192.108.0.102(lvfeile为PC1吕飞乐名字)2、被控端PC2设置公云动态域名与IP: =192.108.0.1082、两台傀儡机PC3与PC4分别改写kongzhiji.ini 记事本内容为控制端域名:,并对文件“配置文件格式:域名及端口”中的记事本做相同操作:3、PC3与PC4打开攻击软件,并观察各台PC的不同变化:控制端:两台傀儡机:被攻击端:结论:两台傀儡机(PC3与PC4)在PC1(控制端)的控制下交替攻击PC2(被攻击端),每秒攻击2两次,说明攻击机越多攻击力越强,这就叫DDoS,实验成功!。
DOS操作系统实验报告(1)班级_____________姓名_____________学号_____________一、DOS基本概念1、DOS的全称是Disk Operating System。
2、DOS规定组成文件名的字符中不能出现\/ |”?*:<>等字符。
3、扩展名是EXE的是可执行程序文件,扩展名是TXT的是文本文件,扩展名是BAT的是可执行批处理文件,扩展名是DA T的是数据文件。
4、文件名通配符中,“*”代表其位置开始的若干个字符,“?”代表任意一个字符。
5、文件标识符的一般格式是[盘符: ][路径]主文件名[.扩展名]。
6、路径是指从根目录或当前目录到所要找的文件、目录,须经过的全部子目录的顺序组合。
7、绝对路径是指从根目录开始(以“\”开头)的路径。
8、相对路径是指从当前目录开始的路径。
9、在新建的子目录中会自动形成两个特殊的目录项.和..。
10、改变当前工作盘的方法是盘符:。
二、DOS命令根据此树形结构图,上机完成以下题目。
1、绝对路径和相对路径(1)当前目录是D:\ ,表示f1.txt文件的绝对路径:\a\f1.txt(2)当前目录是D:\b,表示f1.txt文件的绝对路径:\a\f1.txt(3)当前目录是D:\a\c,表示f2.txt文件的相对路径:f2.txt(4)当前目录是D:\b\d,表示f3.txt文件的相对路径:f3.txt(5)当前目录是D:\a\c\f,表示f4.txt文件的绝对路径:\b\e\f4.txt2、dir命令设当前目录是C:\(1)分屏显示C盘windows子目录中的全部文件:C:\>dir windows /p(2)宽行显示C盘Program Files子目录中的所有文件:C:\>dir progra~1 /w(3)宽行显示C盘根目录中的文件及子目录名称:C:\>dir /w(4)显示C盘中的C字母开头的所有文件:C:\>dir C*(5)显示C盘中第三个字母是B的所有文件:C:\>dir ??B*(6)显示C盘windows子目录中第三个字母是B的所有文件C:\> dir windows\??B*3、cd命令(1)从D盘根目录进入c目录:D:\>cd a\c(2)从c目录进入b目录:D:\a\c>cd \b(3)从b目录进入f目录:D:\b>cd \a\c\f(4)从f目录进入d目录:D:\a\c\f>cd \b\d(5)从d目录进入e目录:D:\b\d>cd \b\e(6)从e目录进入a目录:D:\b\e>cd \a(7)从a目录进入b目录:D:\a>cd \b(8)从b目录进入f目录:D:\b>cd \a\c\f4、md命令(1)设当前处于C盘根目录,在D盘的根目录下建立一个名为zhang的子目录:C:\>md d:\zhang(2)设当前处于D盘根目录下的a子目录,在此目录下建立一个名为dai的下级子目录:D:\a>md dai(3)设当前处于c子目录,在D盘根目录下建立一个名为dat的子目录:D:\a\c>md \dat(4)设当前处于D盘根目录,在D盘的a和b子目录下分别建立一个名为doc 的下级子目录:D:\>md a\docD:\>md b\doc5、rd命令(1)设当前处于C盘根目录,删除D盘上的f目录:C:\>rd d:\a\c\f(2)设当前处于D盘根目录,删除D盘上的f目录:D:\>rd a\c\f6、综合练习设当前目录是D:\(1)建立如下图所示的目录结构,写出相关命令txtdatdocexeD:\batcombaksysD:\>md txtD:\>md docD:\>md batD:\>md bakD:\>md doc\datD:\>md doc\exeD:\>md bak\comD:\>md bak\sys(2)逐条进行下列操作,要求写出相关命令和显示结果(注意当前目录的位置)①显示C盘windows目录中所有以A开头的文件目录信息相关命令:D:\>dir c:\windows\A*显示结果:3个文件,2个目录②分屏显示D盘上所有文件目录信息相关命令:D:\>dir /p显示结果:x个文件,x个目录③宽行显示D盘上所有文件目录信息相关命令:D:\>dir /w显示结果:x个文件,x个目录④进入doc子目录相关命令:D:\>cd doc显示结果:D:\doc>⑤进入当前目录的下一级子目录dat相关命令:D:\doc>cd dat显示结果:D:\doc\dat>⑥进入子目录com相关命令:D:\doc\dat>cd \bak\com显示结果:D:\bak\com>⑦使当前目录为dat相关命令:D:\bak\com>cd \doc\dat显示结果:D:\doc\dat>⑧把当前目录的上一级目录作为当前目录相关命令:D:\doc\dat>cd ..显示结果:D:\doc>⑨转到doc下的exe目录相关命令:D:\doc>cd exe显示结果:D:\doc\exe>⑩删除doc目录相关命令:D:\doc\exe>cd \D:\>rd doc\datD:\>rd doc\exeD:\>rd doc显示结果:D:\>。
实验一 DOS常用命令及8086指令使用实验目的:通过实验掌握下列知识:1、DOS命令: DIR,DEL,RENAME,FORMAT,COPY。
2、8088指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG3、DEBUG命令: A,D,E,F,H,R,T,U。
4、BCD码,ASCII码及用16进制数表示二进制码的方法。
5、8088寄存器: AX,BX,CX,DX,F,IP。
内容及步骤:一、DOS常用命令练习:1、打命令 COPY c:\masm5\*.* h: 将糸统盘上全部文件拷到你的盘上。
2、用DIR命令查看盘上文件。
3、用命令 COPY c:\windows\ h:\bug 复制一个文件。
4、用命令 RENAME h:\BUG h:BG.exe 将BUG 文件改为BG。
5、用命令 DEL BG.exe 将文件BG删除。
在操作时要注意提示信息,并按提示操作。
二、DEBUG 命令使用:1、打 DEBUG 进入 DEBUG 控制,显示提示符 '_ '。
2、用命令 F 100 10F 'A' 将'A'的ASCII码填入内存。
3、用命令 D 100 10F 观察内存中的16进制码及屏幕右边的ASCII字符。
4、用命令 F 110 11F 41 重复上二项实验,观察结果并比较。
5、用命令 E 100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的16进制数是什么字符的ASCII码?6、用H命令检查下列各组16进制数加减结果并和你的手算结果比较:(1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758,347FH7、用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。
8、用R命令将AX,BX内容改写为1050H及23A8H。
DOS命令实验1.进入dos系统左键单击开始-〉运行,在跳出的空白栏中敲入:cmd,即可进入dos 系统。
2.常用dos命令a)显示目录命令dir格式:dir [盘符] 目录路径功能:显示该目录的子目录给文件夹如dir E:\04或者dir [盘符] [目录路径] 文件名功能:查找文件,当文件在该路径中存在,显示文件大小和生成日期基本信息,不存在则报不存在. 如: dir E:\04\HOME\ROOM1\temp.txt注: []表示可选。
不指名驱动器名,表示为当前驱动器;不指名目录,表示为当前目录。
b)创建目录(make directory) md格式: md 目录名功能:在当前目录下建立一个子目录。
c)删除目录(remove directory)rd格式: rd 目录名功能:删除当前目录下的子目录注:1.要删除的目录里不能有子目录2.要删除的目录内不能有任何文件3.不能删除当前目录4.根目录不能被删除d)复制文件copy格式:copy 源文件名目的文件名注:无论源文件还是目的文件1.如果不指名驱动器名,即为当前驱动器2.如果不指名目录,则为当前目录3.如果不指名文件名,则为相同的文件名e)删除文件del格式: del [盘符][目录路径] 文件名功能:要删除当前目录或制定目录中的某个文件f)文件重命名ren格式: ren源文件名目的文件名注: 源文件名和目的文件名在同一个目录内。
g)显示文件内容type格式: type [盘符][目录路径] 文件名h)显示子目录树tree格式:tree [目录路经]注: 缺省给显示当前目录下的所有子目录结构I ) PING命令J) ipconfig命令三.实验内容及操作步骤1. 验证DOS命令a) 用DOS命令建立以下目录结构,并用tree命令验证注:开始-〉运行,键入cmd,回车,进入dos。
>e: 进入e盘。
>md 04 建立e盘子目录04。
汇编语言实验报告实验一 DOS环境下的汇编语言编程环境使用(基础与验证型)班级:姓名:学号:实验日期:实验一 DOS 环境下的汇编语言编程环境使用(基础与验证型)一、实验要求和目的1、掌握汇编语言程序设计的基本流程和学会上机开发简单程序;2、熟练掌握宏汇编程序MASM 的使用;3、熟练掌握连接程序LINK 的使用;4、熟练掌握DEBUG 的使用;二、软硬件环境1、硬件环境:计算机系统windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。
三、实验涉及的主要知识汇编语言程序设计上机开发过程如图1.1 所示。
1、汇编语言源程序的汇编过程汇编语言源程序的汇编过程是是利用汇编程序(MASM)对已编辑好的源程序文件(.ASM)进行汇编,将源程序文件中以ASCII 码表示的助记符指令逐条翻译成机器码指令,并完成源程序中的伪指令所指出的各种操作,最后可以建立3 个文件:扩展名为 .OBJ 的目标文件、扩展名为 .LST 的列表文件和扩展名为 .CRF 的交叉索引文件。
目标文件是必须建立的,它包含了程序中所有的机器码指令和伪指令指出的各种有关信息,但该文件中的操作数地址还不是内存的绝对地址,只是一个可浮动的相对地址。
列表文件(.LST)中包含了源程序的全部信息(包括注释)和汇编后的目标程序,列表文件可以打印输出,可供调试检查用。
交叉索引文件(.CRF)是用来了解源程序中各符号的定义和引用情况的。
.LST 和.CRF 两个文件不是必须建立的,可有有无,可以通过汇编时的命令加以选择。
在对源程序文件(ASM 文件)汇编时,汇编程序将对ASM 文件进行两遍扫描,若程序文件中有语法错误,则结束汇编,汇编程序将指出源程序中存在的错误,这时应返回编辑环境修改源程序中的错误,再经过汇编,直到最后得到无错误的目标程序,即OBJ 文件。
因此,汇编程序的主要功能可以概括为以下三点: (1) 检查源程序中的语法错误,并给出错误信息;(2) 产生目标程序文件(OBJ 文件),并可给出列表文件(.LST 文件);(3) 展开宏指令。
6.1 二级目录文件系统设计6.1.1 目的和要求本实验的目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能和内部实现。
6.1.2 实验内容为DOS系统设计一个简单的二级文件系统。
要求做到以下几点:(1)可以实现下列几条命令LOGIN 用户登陆DIR 列文件目录CREATE 创建文件DELETE 删除文件OPEN 打开文件CLOSE 关闭文件READ 读文件WRITE 写文件(2)列目录时要列出文件名,物理地址,保护码和文件长度。
(3)源文件可以进行读写保护。
6.1.3 实验环境(1)PC兼容机(2)Windows、DOS系统(3)TC语言6.1.4 实验提示(1)首先应确定文件系统的数据结构:主目录、子目录及活动文件等。
主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。
(2)用户创建的文件,可以编号存储于磁盘上。
如:file0,file1,file2…并以编号作为物理地址,在目录中进行登记。
6.1.5 实验参考代码参考程序见下(本程序需要在c:下建一个名为osfile的目录及一个名为file的子目录):#include "stdio.h"#include "string.h"#include "conio.h"#include "stdlib.h"#define MAXNAME 25 /*the largest length of mfdname,ufdname,filename*/#define MAXCHILD 50 /*the largest child*/#define MAX (MAXCHILD*MAXCHILD) /*the size of fpaddrno*/typedef struct /*the structure of OSFILE*/{int fpaddr; /*file physical address*/int flength; /*file length*/int fmode; /*file mode:0-Read Only;1-Write Only;2-Read and Write(default);*/ char fname[MAXNAME]; /*file name*/} OSFILE;typedef struct /*the structure of OSUFD*/{char ufdname[MAXNAME]; /*ufd name*/OSFILE ufdfile[MAXCHILD]; /*ufd own file*/}OSUFD;typedef struct /*the structure of OSUFD'LOGIN*/{char ufdname[MAXNAME]; /*ufd name*/char ufdpword[8]; /*ufd password*/} OSUFD_LOGIN;typedef struct /*file open mode*/{int ifopen; /*ifopen:0-close,1-open*/int openmode; /*0-read only,1-write only,2-read and write,3-initial*/}OSUFD_OPENMODE;OSUFD *ufd[MAXCHILD]; /*ufd and ufd own files*/OSUFD_LOGIN ufd_lp;int ucount=0; /*the count of mfd's ufds*/int fcount[MAXCHILD]; /*the count of ufd's files*/int loginsuc=0; /*whether login successfully*/char username[MAXNAME]; /*record login user's name22*/char dirname[MAXNAME];/*record current directory*/int fpaddrno[MAX]; /*record file physical address num*/OSUFD_OPENMODE ifopen[MAXCHILD][MAXCHILD]; /*record file open/close*/ int wgetchar; /*whether getchar()*/FILE *fp_mfd,*fp_ufd,*fp_file_p,*fp_file;void main(){int i,j,choice1;char choice[50]; /*choice operation:dir,create,delete,open,delete,modify,read,write*/ int choiceend=1; /*whether choice end*/char *rtrim(char *str); /*remove the trailing blanks.*/char *ltrim(char *str); /*remove the heading blanks.*/void LoginF(); /*LOGIN FileSystem*/void DirF(); /*Dir FileSystem*/void CdF(); /*Change Dir*/void CreateF(); /*Create File*/void DeleteF(); /*Delete File*/void ModifyFM(); /*Modify FileMode*/void OpenF(); /*Open File*/void CloseF(); /*Close File*/void ReadF(); /*Read File*/void WriteF(); /*Write File*/void QuitF(); /*Quit FileSystem*/void help();if((fp_mfd=fopen("c:\\osfile\\mfd","rb"))==NULL){fp_mfd=fopen("c:\\osfile\\mfd","wb");fclose(fp_mfd);}for(i=0;i<MAX;i++) fpaddrno[i]=0;// textattr(BLACK*16|WHITE);system("cls");// clrscr(); /*clear screen*/LoginF(); /*user login*///clrscr();system("cls");if(loginsuc==1) /*Login Successfully*/{while (1){wgetchar=0;if (choiceend==1){printf("\n\nC:\\%s>",strupr(dirname));} //strupr将所有小写字母转换成大写else printf("Bad command or file name.\nC:\\%s>",strupr(username));gets(choice);strcpy(choice,ltrim(rtrim(strlwr(choice)))); //strlwr将所有大写字母转换成小写if (strcmp(choice,"dir")==0) choice1=1;else if(strcmp(choice,"creat")==0) choice1=2;else if(strcmp(choice,"delete")==0) choice1=3;else if(strcmp(choice,"attrib")==0) choice1=4;else if(strcmp(choice,"open")==0) choice1=5;else if(strcmp(choice,"close")==0) choice1=6;else if(strcmp(choice,"read")==0) choice1=7;else if(strcmp(choice,"modify")==0) choice1=8;else if(strcmp(choice,"exit")==0) choice1=9;else if(strcmp(choice,"cls")==0) choice1=10;else if(strcmp(choice,"cd")==0) choice1=11;else if(strcmp(choice,"help")==0) choice1=20;else choice1=12;switch(choice1){case 1:DirF();choiceend=1;break;case 2:CreateF();choiceend=1;if(!wgetchar) getchar();break;case 3:DeleteF();choiceend=1;if(!wgetchar)getchar();break;case 4:ModifyFM();choiceend=1;if(!wgetchar) getchar();break;case 5:choiceend=1;OpenF();if (!wgetchar) getchar();break;case 6:choiceend=1;CloseF();if (!wgetchar) getchar();break;case 7:choiceend=1;ReadF();if (!wgetchar) getchar();break;case 8:choiceend=1;WriteF();if (!wgetchar) getchar();break;case 9:printf("\nYou have exited this system.");QuitF();exit(0);break;case 10:choiceend=1; system("cls"); /*clrscr();*/break;case 11:CdF();choiceend=1;break;case 20:help();choiceend=1;break;default:choiceend=0;}}}else printf("\nAccess denied.");}void help(void){printf("\nThe Command List\n");printf("\nCd Attrib Creat Modify Read Open Cls Delete Exit Close\n"); }char *rtrim(char *str) /*remove the trailing blanks.*/{int n=strlen(str)-1;while(n>=0){if(*(str+n)!=' '){*(str+n+1)='\0';break;}else n--;}if (n<0) str[0]='\0';return str;}char *ltrim(char *str) /*remove the heading blanks.*/{char *rtrim(char *str);strrev(str); //将所有字母反向排列rtrim(str);strrev(str);return str;}void LoginF() /*LOGIN FileSystem*/{char loginame[MAXNAME],loginpw[9],logincpw[9],str[50];int i,j,flag=1;char a[25];int findout; /*login user not exist*/char *rtrim(char *str); /*remove the trailing blanks.*/char *ltrim(char *str); /*remove the heading blanks.*/void InputPW(char *password); /*input password,use '*' replace*/void SetPANo(int RorW); /*Set physical address num*/while(1){findout=0;printf("\n\nLogin Name:");gets(loginame);ltrim(rtrim(loginame));fp_mfd=fopen("c:\\osfile\\mfd","rb");for(i=0;fread(&ufd_lp,sizeof(OSUFD_LOGIN),1,fp_mfd)!=0;i++)if (strcmp(strupr(ufd_lp.ufdname),strupr(loginame))==0){findout=1;strcpy(logincpw,ufd_lp.ufdpword);}fclose(fp_mfd);if (findout==1) /*user exist*/{printf("Login Password:");InputPW(loginpw); /*input password,use '*' replace*/if (strcmp(loginpw,logincpw)==0){strcpy(username,strupr(loginame));strcpy(dirname,username);fp_mfd=fopen("c:\\osfile\\mfd","rb");for(j=0;fread(&ufd_lp,sizeof(OSUFD_LOGIN),1,fp_mfd)!=0;j++){strcpy(str,"c:\\osfile\\");strcat(str,ufd_lp.ufdname); //strcat字符串连接函数ufd[j]=(OSUFD*)malloc(sizeof(OSUFD));strcpy(ufd[j]->ufdname,strupr(ufd_lp.ufdname));fp_ufd=fopen(str,"rb");fcount[j]=0;for(i=0;fread(&ufd[j]->ufdfile[i],sizeof(OSFILE),1,fp_ufd)!=0;i++,fcount[j]++){ifopen[j][i].ifopen=0;ifopen[j][i].openmode=4;}fclose(fp_ufd);}fclose(fp_mfd);ucount=j;SetPANo(0);printf("\n\nLogin successful! Welcome to this FileSystem\n\n");loginsuc=1;return;}else{printf("\n\n");flag=1;while(flag){printf("Login Failed! Password Error. Try Again(Y/N):");gets(a);ltrim(rtrim(a));if (strcmp(strupr(a),"Y")==0) {loginsuc=0;flag=0;}else if(strcmp(strupr(a),"N")==0){loginsuc=0;flag=0;return;}}}}else{printf("New Password(<=8):");InputPW(loginpw); /*input new password,use '*' replace*/printf("\nConfirm Password(<=8):"); /*input new password,use '*' replace*/ InputPW(logincpw);if (strcmp(loginpw,logincpw)==0){strcpy(ufd_lp.ufdname,strupr(loginame));strcpy(ufd_lp.ufdpword,loginpw);fp_mfd=fopen("c:\\osfile\\mfd","ab");fwrite(&ufd_lp,sizeof(OSUFD_LOGIN),1,fp_mfd);fclose(fp_mfd);strcpy(username,strupr(loginame));strcpy(dirname,loginame);strcpy(str,"c:\\osfile\\");strcat(str,username);if((fp_ufd=fopen(str,"rb"))==NULL){fp_ufd=fopen(str,"wb");fclose(fp_ufd);}fp_mfd=fopen("c:\\osfile\\mfd","rb");for(j=0;fread(&ufd_lp,sizeof(OSUFD_LOGIN),1,fp_mfd)!=0;j++) {strcpy(str,"c:\\osfile\\");strcat(str,ufd_lp.ufdname);ufd[j]=(OSUFD*)malloc(sizeof(OSUFD));strcpy(ufd[j]->ufdname,strupr(ufd_lp.ufdname));fp_ufd=fopen(str,"rb");for(i=0;fread(&ufd[j]->ufdfile[i],sizeof(OSFILE),1,fp_ufd)!=0;i++,fcount[j]++){ifopen[j][i].ifopen=0;ifopen[j][i].openmode=4;}fclose(fp_ufd);}fclose(fp_mfd);ucount=j;SetPANo(0);printf("\n\nLogin Successful! Welcome to this System\n\n");loginsuc=1;return;}else{printf("\n\n");flag=1;while(flag){printf("Login Failed! Password Error. Try Again(Y/N):");gets(a);ltrim(rtrim(a));if (strcmp(strupr(a),"Y")==0) {loginsuc=0;flag=0;}else if(strcmp(strupr(a),"N")==0){loginsuc=0;flag=0;return;}}}}}}void SetPANo(int RorW) /*Set physical address num,0-read,1-write*/{int i,j;if (RorW==0){if((fp_file_p=fopen("c:\\osfile\\file\\file_p","rb"))==NULL){fp_file_p=fopen("c:\\osfile\\file\\file_p","wb");fclose(fp_file_p);}fp_file_p=fopen("c:\\osfile\\file\\file_p","rb");for(i=0;fread(&j,sizeof(int),1,fp_file_p)!=0;i++)fpaddrno[j]=1;/*for(i=1;i<MAX;i++)if ((i%13)==0) fpaddrno[i]=1;*/}else{fp_file_p=fopen("c:\\osfile\\file\\file_p","wb");/*for(i=1;i<MAX;i++)if((i%13)==0) fpaddrno[i]=0;*/for(i=0;i<MAX;i++)if (fpaddrno[i]==1)fwrite(&i,sizeof(int),1,fp_file_p);}fclose(fp_file_p);}void InputPW(char *password) /*input password,use '*' replace*/{int j;for(j=0;j<=7;j++){password[j]=getch();if ((int)(password[j])!=13){if((int)(password[j])!=8)putchar('*');else{if (j>0){j--;j--;putchar('\b');putchar(' ');putchar('\b');}else j--;}}else{password[j]='\0';break;}}password[j]='\0';}void DirF() /*Dir FileSystem*/{int i,j,count=0;char sfmode[25],sfpaddr[25],str[25];int ExistD(char *dirname); /*Whether DirName Exist,Exist-i,Not Exist-0*///clrscr();system("cls");if (strcmp(strupr(ltrim(rtrim(dirname))),"")!=0){printf("\n\nC:\\%s>dir\n",dirname);printf("\n%14s%16s%14s%10s%18s\n","FileName","FileAddress","FileLength","Type","FileMode"); j=ExistD(dirname);for(i=0;i<fcount[j];i++){if ((i%16==0)&&(i!=0)){printf("\nPress any key to continue..");getch();//clrscr();system("cls");printf("\n%14s%16s%14s%10s%18s\n","FileName","FileAddress","FileLength","Type","FileMode");}itoa(ufd[j]->ufdfile[i].fpaddr,str,10);strcpy(sfpaddr,"file");strcat(sfpaddr,str);if (ufd[j]->ufdfile[i].fmode==0) strcpy(sfmode,"Read Only");else if(ufd[j]->ufdfile[i].fmode==1) strcpy(sfmode,"Write Only");else if(ufd[j]->ufdfile[i].fmode==2)strcpy(sfmode,"Read And Write");else strcpy(sfmode,"Protect");printf("%14s%16s%14d%10s%18s\n",ufd[j]->ufdfile[i].fname,sfpaddr,ufd[j]->ufdfile[i].flength," <FILE>",sfmode);}printf("\n %3d file(s)\n",fcount[j]);}else{printf("\n\nC:\\>dir\n");printf("\n%14s%18s%8s\n","DirName","OwnFileCount","Type");for(i=0;i<ucount;i++){if ((i%16==0)&&(i!=0)){printf("\nPress any key to continue...");getch();// clrscr();system("cls");printf("\n%14s%18s%8s\n","DirName","OwnFileCount","Type");}printf("%14s%18d%8s\n",ufd[i]->ufdname,fcount[i],"<UFD>");count=count+fcount[i];}printf("\n %3d dir(s),%5d file(s)\n",ucount,count);}}int ExistD(char *dirname) /*Whether DirName Exist,Exist-i,Not Exist-0*/{int i;int exist=0;for(i=0;i<ucount;i++)if (strcmp(strupr(ufd[i]->ufdname),strupr(dirname))==0){exist=1;break;}if (exist) return(i);else return(-1);}void CdF() /*Exchange Dir*/{char dname[MAXNAME];char *rtrim(char *str); /*remove the trailing blanks.*/char *ltrim(char *str); /*remove the heading blanks.*/int ExistD(char *filename); /*Whether FileName Exist,Exist-i,Not Exist-0*/printf("\nPlease input DirName (cd..-Previous dir; DirNAME-cd [DirNAME]):");gets(dname);ltrim(rtrim(dname));if (ExistD(dname)>=0) strcpy(dirname,strupr(dname));else if(strcmp(strupr(dname),"CD..")==0) strcpy(ltrim(rtrim(dirname)),"");else printf("\nError.\'%s\' does not exist.\n",dname);}void CreateF() /*Create File*/{int fpaddrno,flag=1,i;char fname[MAXNAME],str[50],str1[50],strtext[255],a[25];char fmode[25];char *rtrim(char *str); /*remove the trailing blanks.*/char *ltrim(char *str); /*remove the heading blanks.*/int FindPANo(); /*find out physical address num*/int WriteF1(); /*write file*/int ExistF(char *filename); /*Whether FileName Exist,Exist-i,Not Exist-0*/int ExistD(char *dirname);if (strcmp(strupr(dirname),strupr(username))!=0){printf("\nError. You must create file in your own dir.\n");wgetchar=1;}else{printf("\nPlease input FileName:");gets(fname);ltrim(rtrim(fname));if (ExistF(fname)>=0){printf("\nError. Name \'%s\' has already existed.\n",fname);wgetchar=1;}else{printf("Please input FileMode(0-Read Only, 1-Write Only, 2-Read and Write, 3-Protect):");gets(fmode);ltrim(rtrim(fmode));if((strcmp(fmode,"0")==0)||(strcmp(fmode,"1")==0)||(strcmp(fmode,"2")==0)||(strcmp(fmode,"3") ==0)){fpaddrno=FindPANo();if (fpaddrno>=0){i=ExistD(username);strcpy(ufd[i]->ufdfile[fcount[i]].fname,fname);ufd[i]->ufdfile[fcount[i]].fpaddr=fpaddrno;ufd[i]->ufdfile[fcount[i]].fmode=atoi(fmode);ifopen[i][fcount[i]].ifopen=0;ifopen[i][fcount[i]].openmode=4;strcpy(str,"c:\\osfile\\file\\file");itoa(fpaddrno,str1,10);strcat(str,str1);fp_file=fopen(str,"wb");fclose(fp_file);fcount[i]++;while(flag){printf("Input text now(Y/N):");gets(a);ltrim(rtrim(a));ufd[i]->ufdfile[fcount[i]-1].flength=0;if(strcmp(strupr(a),"Y")==0){fp_file=fopen(str,"wb+");ufd[i]->ufdfile[fcount[i]-1].flength=WriteF1();flag=0;}else if(strcmp(strupr(a),"N")==0){flag=0;wgetchar=1;}}printf("\n\'%s\' has been created successfully!\n",fname);}else{printf("\nFail!No Disk Space. Please format your disk.\n");wgetchar=1;} }else {printf("\nError. FileMode\'s Range is 0-3\n");wgetchar=1;} }}}int ExistF(char *filename) /*Whether FileName Exist,Exist-i,Not Exist-0*/ {int i,j;int exist=0;int ExistD(char *dirname);j=ExistD(dirname);for(i=0;i<fcount[j];i++)if (strcmp(strupr(ufd[j]->ufdfile[i].fname),strupr(filename))==0) {exist=1;break;}if (exist) return(i);else return(-1);}int FindPANo() /*find out physical address num*/{int i;for(i=0;i<MAX;i++)if (fpaddrno[i]==0) {fpaddrno[i]=1;break;}if (i<MAX) return(i);else return(-1);}int WriteF1() /*write file*/{int length=0;char c;printf("Please input text(\'#\' stands for end):\n");while((c=getchar())!='#'){fprintf(fp_file,"%c",c);if (c!='\n') length++;}fprintf(fp_file,"\n");fclose(fp_file);return(length);}void DeleteF() /*Delete File*/{char fname[MAXNAME];char str[50],str1[50];int i,j,k,flag=1;char a[25]; /*whether delete*/char *rtrim(char *str); /*remove the trailing blanks.*/char *ltrim(char *str); /*remove the heading blanks.*/int ExistF(char *filename); /*Whether FileName Exist,Exist-i,Not Exist-0*/ int ExistD(char *dirname);if (strcmp(strupr(dirname),strupr(username))!=0){printf("\nError. You can only delete file in your own dir.\n");wgetchar=1;} else{printf("\nPlease input FileName:");gets(fname);ltrim(rtrim(fname));i=ExistF(fname);if (i>=0){k=ExistD(username);if(ifopen[k][i].ifopen==1){printf("\nError. \'%s\' is in open status. Close it before delete.\n",fname);wgetchar=1;} else{while(flag){printf("\'%s\' will be deleted. Are you sure(Y/N):",fname);gets(a);ltrim(rtrim(a));if(strcmp(strupr(a),"Y")==0){fpaddrno[ufd[k]->ufdfile[i].fpaddr]=0;itoa(ufd[k]->ufdfile[i].fpaddr,str,10);for(j=i;j<fcount[k]-1;j++){strcpy(ufd[k]->ufdfile[j].fname,ufd[k]->ufdfile[j+1].fname);ufd[k]->ufdfile[j].fpaddr=ufd[k]->ufdfile[j+1].fpaddr;ufd[k]->ufdfile[j].flength=ufd[k]->ufdfile[j+1].flength;ufd[k]->ufdfile[j].fmode=ufd[k]->ufdfile[j+1].fmode;ifopen[k][j]=ifopen[k][j+1];}fcount[k]--;strcpy(str1,"c:\\osfile\\file\\file");strcat(str1,str);remove(str1);flag=0;printf("\n\'%s\' has been deleted successfully.\n",fname);wgetchar=1;}else if(strcmp(strupr(a),"N")==0){printf("\nError. \'%s\' hasn\'t been deleted.\n",fname);wgetchar=1;flag=0;}}}}else{printf("\nError. \'%s\' does not exist.\n",fname);wgetchar=1;}}}void ModifyFM() /*Modify FileMode*/{char fname[MAXNAME],str[50];int i,j,k,flag;char fmode[25]; /*whether delete*/char *rtrim(char *str); /*remove the trailing blanks.*/char *ltrim(char *str); /*remove the heading blanks.*/void InputPW(char *password); /*input password,use '*' replace*/void SetPANo(int RorW); /*Set physical address num*/int ExistF(char *filename); /*Whether FileName Exist,Exist-i,Not Exist-0*/int ExistD(char *dirname);if (strcmp(strupr(dirname),strupr(username))!=0) {printf("\nError.You can only modify filemode in yourself dir.\n");wgetchar=1;}else{ printf("\nPlease input FileName:");gets(fname);ltrim(rtrim(fname));i=ExistF(fname);if (i>=0){k=ExistD(username);if(ifopen[k][i].ifopen==1){printf("\nError.\'%s\' is in open status. Close it before modify.\n",fname);wgetchar=1;}else{if(ufd[k]->ufdfile[i].fmode==0) strcpy(str,"read only"); /*FileMode*/else if(ufd[k]->ufdfile[i].fmode==1) strcpy(str,"write only");else if(ufd[k]->ufdfile[i].fmode==2) strcpy(str,"read and write");else strcpy(str,"Protect");printf("\'%s\' filemode is %s.\n",fname,strupr(str));printf("Modify to(0-read only,1-write only,2-read and write,3-Protect):");gets(fmode);ltrim(rtrim(fmode));if(strcmp(fmode,"0")==0){ufd[k]->ufdfile[i].fmode=0;printf("\n\'%s\' has been modified to READ ONLY mode successfully.\n",fname);wgetchar=1;}else if(strcmp(fmode,"1")==0){ufd[k]->ufdfile[i].fmode=1;printf("\n\'%s\' has been modified to WRITE ONLY mode successfully.\n",fname);wgetchar=1;}else if(strcmp(fmode,"2")==0){ufd[k]->ufdfile[i].fmode=2;printf("\n\'%s\' has been modified to READ AND WRITE mode successfully.\n",fname);wgetchar=1;}else if(strcmp(fmode,"3")==0){ufd[k]->ufdfile[i].fmode=3;printf("\n\'%s\' has been modified to FORBID mode successfully.\n",fname);wgetchar=1;}else {printf("\nError.\'%s\' is not modified.\n",fname);wgetchar=1;}}}else{printf("\nError. \'%s\' dose not exist.\n",fname);wgetchar=1;}}}void OpenF() /*Open File*/{char fname[MAXNAME];char str[25],str1[25],fmode[25];int i,k;char *rtrim(char *str); /*remove the trailing blanks.*/char *ltrim(char *str); /*remove the heading blanks.*/int ExistF(char *filename); /*Whether FileName Exist,Exist-i,Not Exist-0*/int ExistD(char *dirname);if (strcmp(strupr(ltrim(rtrim(dirname))),"")==0){printf("\nError. Please change to ufd dir before open.\n");wgetchar=1;return;}printf("\nPlease input FileName:");gets(fname);ltrim(rtrim(fname));i=ExistF(fname);if (i>=0){k=ExistD(dirname);if(!ifopen[k][i].ifopen){if (ufd[k]->ufdfile[i].fmode==3){printf("\nError. The file\'s mode is FORBID. Can not open.\n");wgetchar=1;}else{printf("Please input FileOpenMode(0-Read Only,1-Write Only,2-Read and Write):");gets(fmode);ltrim(rtrim(fmode));if((strcmp(fmode,"0")==0)||(strcmp(fmode,"1")==0)||(strcmp(fmode,"2")==0)){if(fmode[0]=='0') /*open file with read only mode*/{strcpy(str,"read only");if((ufd[k]->ufdfile[i].fmode==0)||(ufd[k]->ufdfile[i].fmode==2)) ifopen[k][i].ifopen=1;}else if(fmode[0]=='1') /*open file with write only mode*/{strcpy(str,"write only");if((ufd[k]->ufdfile[i].fmode==1)||(ufd[k]->ufdfile[i].fmode==2)) ifopen[k][i].ifopen=1;}else if(fmode[0]=='2') /*open file with read and write mode*/{strcpy(str,"read and write");if(ufd[k]->ufdfile[i].fmode==2) ifopen[k][i].ifopen=1;}if(ufd[k]->ufdfile[i].fmode==0) strcpy(str1,"read only"); /*FileMode*/else if(ufd[k]->ufdfile[i].fmode==1) strcpy(str1,"write only");else if(ufd[k]->ufdfile[i].fmode==2) strcpy(str1,"read and write");if(ifopen[k][i].ifopen==1){ifopen[k][i].openmode=atoi(fmode);if (ifopen[k][i].openmode==0) strcpy(str,"read only");else if(ifopen[k][i].openmode==1) strcpy(str,"write only");else if(ifopen[k][i].openmode==2) strcpy(str,"read and write");printf("\n\'%s\' has been opened. OpenMode is %s,FileModeis %s\n",fname,strupr(str),strupr(str1));wgetchar=1;}else{printf("\nError. \'%s\' hasn\'t been opened. OpenMode Error. OpenMode is %s,but FileMode is %s\n",fname,strupr(str),strupr(str1));wgetchar=1;}}else {printf("\nError. FileOpenMode\'s Range is 0-2\n");wgetchar=1;}}}else {printf("\nError. \'%s\' is in open status.\n",fname);wgetchar=1;}}else{printf("\nError. \'%s\' does not exist.\n",fname);wgetchar=1;}}void CloseF() /*Close File*/{int i,k,n=0;char fname[MAXNAME];char *rtrim(char *str); /*remove the trailing blanks.*/char *ltrim(char *str); /*remove the heading blanks.*/int ExistF(char *filename); /*Whether FileName Exist,Exist-i,Not Exist-0*/int ExistD(char *dirname);if (strcmp(strupr(ltrim(rtrim(dirname))),"")==0){printf("\nError. Please convert to ufd dir before close.\n");wgetchar=1;return;}k=ExistD(dirname);printf("\nOpen File(s) In This Ufd:\n");/*display openned file*/for(i=0;i<fcount[k];i++){if (ifopen[k][i].ifopen==1) {printf("%15s",ufd[k]->ufdfile[i].fname);n++;}if((n%4==0)&&(n!=0)) printf("\n");}printf("\n%d files openned.\n",n);if (n==0) wgetchar=1;if(n!=0){printf("\nPlease input FileName:");gets(fname);ltrim(rtrim(fname));i=ExistF(fname);if(i>=0){if(ifopen[k][i].ifopen==1){ifopen[k][i].ifopen=0;ifopen[k][i].openmode=4;printf("\n\'%s\' has been closed successfully.\n",fname);wgetchar=1;}else {printf("\nError.\'%s\' is in closing status.\n",fname);wgetchar=1;}}else {printf("\nError. \'%s\' is not exist.\n",fname);wgetchar=1;}}}void ReadF() /*Read File*/{int i,k,n=0;char fname[MAXNAME];char str[255],str1[255],c;char *rtrim(char *str); /*remove the trailing blanks.*/char *ltrim(char *str); /*remove the heading blanks.*/int ExistF(char *filename); /*Whether FileName Exist,Exist-i,Not Exist-0*/int ExistD(char *dirname);if (strcmp(strupr(ltrim(rtrim(dirname))),"")==0) {printf("\nError.Please convert to ufd dir before read.\n");wgetchar=1;return;}printf("\nCaution:Open file first\n");printf("Opened File(s) List:\n");k=ExistD(dirname);for(i=0;i<fcount[k];i++){if (ifopen[k][i].ifopen==1)if ((ifopen[k][i].openmode==0) ||(ifopen[k][i].openmode==2)){printf("%15s",ufd[k]->ufdfile[i].fname);n++;}if((n%4==0)&&(n!=0)) printf("\n");}printf("\n%d files openned.\n",n);if (n==0) wgetchar=1;if(n!=0){printf("\nPlease input FileName:");gets(fname);ltrim(rtrim(fname));i=ExistF(fname);if(i>=0){if(ifopen[k][i].ifopen==1){if((ifopen[k][i].openmode==0) ||(ifopen[k][i].openmode==2)){itoa(ufd[k]->ufdfile[i].fpaddr,str,10);strcpy(str1,"file");strcat(str1,str);strcpy(str,"c:\\osfile\\file\\");strcat(str,str1);fp_file=fopen(str,"rb");fseek(fp_file,0,0);printf("\nThe text is:\n\n");printf(" ");while(fscanf(fp_file,"%c",&c)!=EOF)if (c=='\n') printf("\n ");else printf("%c",c);printf("\n\n%d Length.\n",ufd[k]->ufdfile[i].flength);fclose(fp_file);wgetchar=1;}else{printf("\nError.\'%s\' has been opened with WRITE ONLY mode. It isn\'tread.\n",fname);wgetchar=1;}}else {printf("\nError.\'%s\' is in closing status. Please open it before read\n",fname);wgetchar=1;} }else {printf("\nError. \'%s\' does not exist.\n",fname);wgetchar=1;}}}void WriteF() /*Write File*/{int i,k,n=0;char fname[MAXNAME];char str[50],str1[50],a[50];char *rtrim(char *str); /*remove the trailing blanks.*/char *ltrim(char *str); /*remove the heading blanks.*/int ExistF(char *filename); /*Whether FileName Exist,Exist-i,Not Exist-0*/int ExistD(char *dirname);int WriteF1(); /*write file*/if (strcmp(strupr(ltrim(rtrim(dirname))),"")==0) {printf("\nError. Please convert to ufd dir before write.\n");wgetchar=1;return;}k=ExistD(dirname);printf("\nOpen File(s) with write only mode or read and write mode:\n");/*display openned files with writable mode*/for(i=0;i<fcount[k];i++){if (ifopen[k][i].ifopen==1)if ((ifopen[k][i].openmode==1) ||(ifopen[k][i].openmode==2)){printf("%15s",ufd[k]->ufdfile[i].fname);n++;}if((n%4==0)&&(n!=0)) printf("\n");}。
LIS《保密与信息安全》课程报告网络信息查询常用DOS命令的实验操作2013年5月17日zhaomengjuNankai universityLISDos实验命令报告一、实验目的通过实验掌握常用的dos命令进行网络信息的查询,熟悉命令的功能和使用方法,主要是ping命令、ipconfig/all命令、netstat命令、arp命令、tracert命令。
二、实验的系统环境Win7 PC ,dos命令三、实验操作过程1、ping命令在”运行”内输入cmd,打开cmd.exe,输入ping,回车Ping 127.0.0.1,127.0.0.1 回送地址,测试环回地址通过,表明本地的TCP/IP协议已设置好。
查找本地IP开始ping我的IP地址Ping本网网关或本网IP地址,正常ping通,说明默认网关正常运行,本地网络物理连接正常。
2、Ipconfig /all参数查询命令输入“ipconfig/all”,回车,查看windows IP 配置、无线网络连接,本地连接等信息。
主机名:南开大学物理地址:EC-9A-74-4B-72-8A3、netstat命令在命令提示符下输入“netstat”后回车,显示当前正在活动的网络连接信息。
其中:TIME-WAIT表示等待足够的时间以确保远程TCP接收到连接中断请求的确认CLOSE-WAIT表示等待从本地用户发来的连接中断请求ESTABLISHED表示一个打开的连接输入“netstat/n,回车,显示所有已建立的有效连接。
4、arp命令输入“arp/a”,回车。
用于查看高速缓存中的所有项目arp -a分别显示两块网卡的ARP高速缓存5、Tracert命令输入“tracert 10.22.51.219”查看到达我的IP地址所经过的路径最终到达目标地址,并显示“跟踪完成”,说明该条线是畅通的。
四、实验心得:1、本次实验,首先我是感慨电脑里还有这种有用的程序(我是电脑盲),虽然听老师讲了一遍,但自己操作起来对其的理解加深了,也懂得了其方法原理。
西安郵電學院计算机导论实验报告题目:DOS常用命令的使用院系名称:计算机学院专业名称:网络工程班级:网络工程1101 班内序号:学生姓名:指导教师:刘建元、贾晖DOS常用命令的使用一、实验目的掌握Windows环境下DOS命令的操作方法,熟练使用DOS的常用命令。
二、实验要求1、掌握Windows环境与DOS命令操作的切换方式。
2、了解Windows的长文件名与DOS的短文件名的不同要求及转换方式。
3、分清文件、目录与路径,掌握文件名中通配符的使用。
4、掌握DIR、COPY、DEL、TYPE、REN等文件命令和MD、RD、CD等目录命令的使用。
三、实验内容及步骤(一)Windows与DOS的切换在Windows环境下,选择单击【开始】→【程序】→【附件】→【命令提示符】即可进入到DOS命令操作方式下;在DOS方式下,输入“exit”后按“回车”键,或者用鼠标单击窗口的关闭按钮,即可回到Windows环境下。
(二)Windows长文件名与Dos短文件名的不同要求Dos方式下文件名由主文件名和扩展名两部分组成。
其中主文件名占8个字符,是以字母开头的字母和数字的组合,并且中间不允许有空格;扩展名占3个字符,用户可以任意指定,但是有些系统特定的扩展名有其特殊的意义。
Windows方式下文件名的命名规则比较灵活,可以使用任意的ASCⅡ字符,并且以什么字符开头都可以,中间可以有空格。
(三)DOS常用命令操作1、DIR命令该命令用于显示磁盘上全部或部分文件目录清单,共由五部分组成:DIR [盘符][路径][文件名] [命令参数]①②③④⑤部分①是命令关键字,不可缺少,也不能拼写错误。
部分②是指定命令所操作的磁盘,可以缺少,若缺少时命令对当前磁盘进行操作。
DOS规定盘符的书写格式为单个字母+“:”,如“A:”。
部分③是指定命令所操作的目录,可以缺少,若缺少时命令对当前目录进行操作。
DOS规定目录与目录之间用“\”符号分隔。
微型计算机原理与接口技术实验报告张谦机械设计081 0840*******实验一(一) DOS常用命令一实验目的通过实验,掌握以下知识:1 DOS命令:DIR,DEL,RENAME,FORMTA,COPY。
二实验内容及步骤一 DOS常用命令练习二 DEBUG命令使用:1 打开“开始”→“运行”→输入“cmd”→“debug”。
2 用命令f100 10f ‘A’将A的ASCII码填入内存。
3 用d100 10f指令查看内存中十六进制码及右边ASCII码。
实验结果:-f100 10f 'A'-d100 10f1386:0100 41 41 41 41 41 41 41 41-41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA结果分析:该操作命令的作用是将内存单元100到10f完全填充A的ASCII码数值,并用D100 10f 命令查看。
A的ASCII码为十进制的65,转化为十六进制为65=4×16+1×1,所以,对应ASCII码十六进制为41,结论正确。
4 用命令f110 11f 41 重复上述实验,分析结果。
实验结果:-f110 11f 41-d110 11f1386:0110 41 41 41 41 41 41 41 41-41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA5 用e100 31 32 33…命令将30到3F填入地址为100开始的内存单元,用D命令观察结果。
看输入的16进制数是什么字符的ASCII码。
实验结果:-e100 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f-d1001386:0100 30 31 32 33 34 35 36 37-38 39 3A 3B 3C 3D 3E 3F 0123456789:;<=>?1386:0110 41 41 41 41 41 41 41 41-41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA1386:0120 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................1386:0130 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................1386:0140 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................1386:0150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................1386:0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................1386:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................6 用H命令计算下列16进制数据和差,并与手算结果比较(1)34H,22H (2)56H,78H (3)A5H,79H (4) 1284H,5678H (5)A758H,347FH实验结果:-h34,220056 0012-h56,7800CE FFDE-ha5,79011E 002C-h1284,567868FC BC0C-ha758,347fDBD7 72D9,与手算结果一致。
实验六DOS命令操作与文件系统实验【实验目的】(1)了解操作系统在计算机中的地位和作用,了解DOS操作系统;(2)掌握DOS工作环境的调用,了解DOS命令的一般格式;(3)操作系统中的路径表示,熟悉DOS操作系统的常用DOS命令;(4)深入理解文件与目录的概念、操作系统的工作原理及程序的调用方法;【预备知识】一、操作系统概述只要我们打开计算机,计算机就开始运行程序,进入工作状态。
计算机运行的第一个程序就是操作系统。
为什么首先运行操作系统,而不直接运行像QQ、Word这样的应用程序呢?操作系统是应用程序与计算机硬件的"中间人",没有操作系统的统一安排和管理,计算机硬件没有办法执行应用程序的命令。
操作系统为计算机硬件和应用程序提供了一个交互的界面,为计算机硬件选择要运行的应用程序,并指挥计算机的各部分硬件的基本工作。
如图1所示:最初的计算机采用的都是DOS操作系统,后来,微软公司开发了Windows操作系统,又叫做Windows操作平台。
由于Windows操作平台简单易学,不必记忆大量的英文命令,而且功能也越来越完善,所以特别受大家的欢迎。
DOS最突出的特征也是优势恰恰是其处于系统的底层,一旦用户不能进入Windows桌面环境,解决问题的唯一途径就是回到DOS。
因为DOS的门槛低,进入了DOS就接近了问题的所在,就有可能利用DOS特有的底层操作来完成Windows中无法完成的功能。
在DOS环境下,可以使用磁盘命令管理磁盘、使用网络命令解决网络故障、使用系统维护命令解决系统疑难问题等功能。
可见DOS操作系统在现代操作系统中仍然具有重要的作用,所以DOS操作系统也是计算机专业学生必须学习必须了解的。
二、DOS简介DOS是Disk Operating System的英文缩写,意思是磁盘操作系统。
它在PC电脑的发展过程中占有非常重要的作用,曾几乎一统天下,在世界上有众多的使用者与爱好者。
DOS 有很多版本也有很多种,其中最常用的是MS-DOS。
最实用的是MS-DOS 7.10,MS-DOS 的最高版本是8.0(它可以用来运行Windows 9x或ME),最自由开放的则是FreeDOS。
一个计算机系统的各部分要协调工作,充分发挥其效率,需要有一个管理者来合理地调度它的各种资源---硬件和软件资源,DOS操作系统就是这样一个管理者。
计算机系统中的资源通常分为四类:处理器(CPU)、存储器,外部设备和信息。
DOS操作系统具有这四大资源的管理功能。
三、DOS的构成DOS主要由三个基本文件和一些外部命令组成,外部命令的概念我们将在后面讲解,这里主要说明三个基本文件。
这三个基本文件是MSDOS.SYS、IO.SYS和。
其中,MSDOS.SYS称为DOS的内核,它主要用来管理和启动系统的各个部件,为DOS的引导做好准备工作;IO.SYS主要负责系统的基本输入和输出,即DOS 于各个部件的联系;文件是DOS与用户的接口,它主要提供了一些DOS 的内部命令。
磁盘是否具有启动DOS的能力,就看它是否具有这三个文件,具有这三个文件的磁盘称为引导盘。
而除此之外还包含许多DOS外部命令的磁盘称为系统盘。
四、什么叫DOS通配符一般情况下,一条DOS命令一次处理一个文件,但是如果使用了通配符,就可以一次处理一组文件。
而且在用户记不准文件名时,通配符也会给以帮助。
顾名思义,通配符就是代替一组文件名的符号。
(1) 通配符“*”――――――可以表示任意多个任意字符请看下面一组文件名:FORMA 它们的扩展名都是COM,可以用“*.COM”来表示他们。
事实上,“*.COM”代表了所有以COM为扩展名的文件。
再看下面的一组文件名:DBLSPACE.BIN DEBUG.EXE DOSSHELL.TXT DOSSHELL.INI DELTREE.EXE它们的共同点是有一个相同的字母D位于基本名的开头,文件名“D*.*”可以代表它们。
在DOS的命令行中,一条DOS命令对文件“D*.*”进行处理,就会同时处理这四个文件。
所有文件可以用“*.*”来表示。
读到这里您一定了解了通配符“*”的作用,它可以代替一组字符,表示任意多个任意字符。
(2)通配符“?”――――一-可以表示任意的一个字符通配符“?”比“*”更加精确,它提供一对一的匹配,只能代替它所在位的一个字符。
例如:C:\>dir diskco??.com这个命令是要求DOS显示所有基本名由七个或八个字符组成,前六位为diskco,扩展名为COM的文件。
两个问号分别代替两个字符。
DOS支持的通配符只有星号和问号两个,大部分DOS命令都识别并承认通配符。
五、文件及目录的概念1、什么是文件?为什么要给文件取文件名?DOS操作系统把相关的信息放在一起,给它起一个名字,就形成了一个文件。
比如,给一段计算等比数列的和的小程序起一个名字叫"DB",以后提起它,就可以直接说"文件DB"。
这就好比我们写一篇文章,也要给它起个名字一样。
DOS用文件的形式来管理计算机内的大量信息。
文件是计算机操作系统管理信息的基本单位。
平时,文件储存在磁盘中。
文件名是决不能重复的,计算机把文件名相同的文件视为同一文件。
为了方便记忆,给文件起名时要注意体现文件的内容特点。
2、文件名的命名规则在DOS中,一个文件名由文件基本名和文件扩展名组成,中间用点“.”隔开,文件基本名由不超过8个英文字母或数字组成(Windows操作系统中文件名不超过255个字符),文件扩展名由不超过三个英文字母或数字组成,文件基本名必须有,扩展名可以没有。
后缀为exe、com或bat的文件都是可以直接执行的。
以exe为后缀的文件叫可执行文件;以com为后缀的文件叫命令文件;以bat为后缀的文件叫批处理文件。
批处理:一次可以执行多条命令。
看下面的文件名:小黑点前面的部分就是文件名的基本名部分(COMMAND),后面是文件名的扩展名部分(COM)。
DOS规定,文件基本名可以由1到8个字符组成,扩展名可以由1到3个字符组成。
可用的字符包括英文26个字母,数字0到9,以及如下符号:~ ! @ # $ ^ & ( ) _ - ' { }3、怎样根据文件的扩展名判断文件类型文件基本名要尽可能体现文件的内容特点,以便于记忆和查找。
文件的扩展名就像我们的姓氏表示我们的家族渊源一样表明文件的属性和类型,它的种类大致是确定的。
下表列出了一些常用的扩展名类型:文件扩展名文件类型文件扩展名文件类型EXE 可执行文件DOC WORD文档文件SYS DOS系统文件TXT 文本文件BMP 贴图文件MP3 MP3声音文件WA V 声音文件BAT 批处理文件FLI 动画文件COM 命令文件4、什么叫目录现在我们接触到了又一个非常重要的概念--目录。
计算机系统是一个非常复杂而又格外有序的系统。
在这个系统中,明白规则的人可以随心所欲,一无所知的人可能就什么也干不成。
目录就像“抽屉”一样,里面可以包含很多“东西”,这些“东西”就是文件或目录。
文件有文件名,目录也有目录名,就好像文件柜中抽屉上的标签一样。
目录名的规则与文件名一样,只不过说起目录名不需要扩展名。
“抽屉”里面可以包含许多“小抽屉”,这些“小抽屉”就是目录的子目录,也就是目录的下一级分枝。
在文件数量极多,分类又很细致的情况下,目录的等级数是可以根据用户的需要无穷多的。
任意一个目录的下一级目录都是它的子目录。
六、DOS常用命令的一般格式敲入DOS命令的方法都一样,就是命令+回车。
我们敲入不同的DOS命令机器就执行不同的功能。
DOS命令的一般格式为(命令名后面后空格):命令名[参数或选项] [路径]命令名[路径] [文件名]七、如何进入Window XP操作系统的虚拟DOS系统八、DOS常用命令介绍注意:DOS中所有命令不区分大小写(1)DIR命令:显示目录和文件,可以把目录里面的文件名或目录名都呈现出来。
其后可跟参数(/P)(/W)(/A)等,最简单的使用方法是在当前目录下直接输入DIR和回车。
如下所示:C:\>DIR //屏幕将显示当前目录下的文件列表信息。
DIR命名后跟参数的含义如下:/P:显示一屏后,暂停,按任意键继续。
/W:宽行显示。
/A:显示所有文件,包含隐藏文件也显示。
/S:其下所有子目录内容也显示。
DIR也可用与查找文件或文件夹,如:C:\>DIR WINDOWS\SYSTEM/S //显示当前路径下所WINDOWS目录下的SYSTEM子目录中的所有文件信息C:\>DIR MOUSE.DRV/S//当前路径前查找并列出名为MOUSE.DRV的文件(2)CD命令:改变当前目录,意即改变目录,使用格式为“CD 目录”。
如:CD C:\ >windwows //将从当前目录进入到C盘根目录下的windows子目录。
CD命令与父目录表示符“..”连用,可以回退到当前目录的父目录(即返回上一级目录),如当前目录为C:\windows\system,那么使用“CD..”命令就相当于“CD C:\windows “,使操作简单。
CD\代表直接回退到根目录,如当前目录为C:\windows\system,“CD\”代表直接回退到根目录,相当于“C:\”。
(3)MD命令:Make Directory的缩写,意思是建立子目录,如:D:\>MD ljh //在当前目录下建立名为ljh的子目录D:\>MD C:\ljh在C:盘根目录下建立名为ljh的子目录在建立目录时要注意,目录名不要与所指路径下的文件名重复。
(4)RD命令:删除指定路径下的一个子目录格式:RD(RMDIR)[<d:>][<路径\>]<子目录名>说明:a.被删除的目录必须是空目录 b.必须在被删目录之外进行操作例:C:\>RD D:\ljh//删除D盘下的目录ljh,只有当ljh为空目录时才能删除。
(5)COPY命令:拷贝文件命令。
COPY命令的作用是用来生成一个和源文件内容完全相同的目标文件,它的使用格式为“COPY 源文件目标文件/V /B”,格式中的源文件和目标文件均可以带有路径标识,如果目标文件和源文件的名称不同,还可以起到改名的作用,如DOS提示符下键“COPY C:\windows\ NOTEPAD.EXE D:\LJH.EXE”,将把C:\ windows 中的NOTEPAD.EXE拷贝到D:\中,并改名为LJH.EXE。
(6)DEL命令:删除文件命令。
DEL是DELETE的缩写,删除“意即”,主要用于删除一些过时或废弃的文件,节省磁盘空间。
它的使用格式为“DEL 文件名”,如DEL ADC.EXE,将删除当前目录中的ADC.EXE文件。