UNIX实验报告
unix实验报告7

实验七管道pipe和popen通信实验目的1. 掌握无名管道pipe的原理2. 掌握管道的应用及重定向。
3. 熟悉popen创建管道的方式及应用程序设计;实验内容1. (1) 在命令行下执行ls –l |grep .c命令,查看运行结果。
(2)设计一个程序,要求创建一个管道PIPE,复制进程,父进程运行命令“ls -l”,把运行结果写入管道,子进程从管道中读取“ls -l”的结果,把读出的作为输入运行“grep .c”。
即实现“ ls –l |grep .c”功能。
参考课件ch4 P52,54。
程序源代码:#include <>#include<>#include<>#include<>int main () {int fd[2];char buf[1000];pid_t p;if(pipe(fd)<0){printf("创建管道失败");return -1; }p=fork();i f(p<0){ perror("创建子进程失败");exit;}else if (p==0){close(0);dup(fd[0]);execlp("grep","grep",".c",NULL);}else{close(1);dup(fd[1]);execlp("ls","ls","-l",NULL); wait(0);}return 0; }结果截图:2. (1)在命令行下执行 $touch $ls –l >, cat命令查看内容。
(2)设计一个程序,要求利用popen函数,实现“ls –l > ”的重定向功能,在程序中创建。
参考课件ch4 59程序源代码:#include <>#include<>#include<>#include<>int main (){ FILE *fp; int num; char buf[500]; m emset(buf,0,sizeof(buf));p rintf("建立管道……\n");f p=popen("ls -l","r");i f(fp!=NULL){ num=fread(buf,sizeof(char),500,fp);if(num>0){ printf("%s\n",buf); }pclose(fp); }e lse{ printf("用popen创建管道错误\n");return 1; }f p=fopen("","w+");f write(buf,sizeof(char),500,fp);p close(fp);r eturn 0;}运行结果截图:。
Unix第一次实验报告(编程实现程序list.c,列表普通磁盘文件等)

Unix编程实验报告班级:CCCCCCCC学号:XXXXXXX姓名:XXX一、实验目的练习vi,使用UNIX的系统调用和库函数,体会UNIX文件通配符的处理方式以及命令对选项的处理方式。
二、实验要求编程实现程序list.c,列表普通磁盘文件(不考虑目录和设备文件等),列出文件名和文件大小。
a)与ls命令类似,命令行参数可以有0到多个i.0个参数:列出当前目录下所有文件ii.参数为普通文件:列出文件iii.参数为目录:列出目录下所有文件b)实现自定义选项r,a,l,h,m以及--i.r 递归方式列出子目录ii. a 列出文件名第一个字符为圆点的普通文件(默认情况下不列出文件名首字符为圆点的文件,即只显示隐藏文件)iii.l 后跟一整数,限定文件大小的最小值(字节)iv.h 后跟一整数,限定文件大小的最大值(字节)v.m 后跟一整数n,限定文件的最近修改时间必须在n天内vi.-- 显式地终止命令选项分析三、程序源码#include <stdio.h>#include <stdlib.h>#include <dirent.h>#include <errno.h>#include <sys/stat.h>#include <string.h>/*将char[]转换为数字*/int sav(char ch[],int l[]){int i=0;l[0]=0;while(ch[i]!='\0')if(ch[i]<='9'&&ch[i]>='0'){l[0]=10*l[0]+ch[i]-'0';i++;}elsereturn 0;return 1;}main(int argc, char *argv[]){int i,j,k,ret,l=-1,h=-1,m=-1;char path[30],path1[30];struct stat st;DIR *dir; /*定义Dir*/struct dirent * entry; /*定义Dirent entry*/int order[7]; /*各个数字代表含义order[1]->r; [2]->a; [3]->l; [4]->h; [5]->m;[6]->--*/time_t tp; /*当前时间*//*得到当前path*/for(i = 1; i < argc; i++);i--;if(argv[i][0]=='/' && argc!=1){for(j = 0; argv[i][j] != '\0'; j++)path[j] = argv[i][j];path[j]='\0';}else{path[0]='.';path[1]='\0';}/*Get Order*/for(i=1;i<=6;i++)order[i]=0;for(i = 1; i < argc; i++){if(argv[i][0]=='-'){if(argv[i][1]=='r')order[1]=1;elseif(argv[i][1]=='a')order[2]=1;elseif(argv[i][1]=='l'){order[3]=1;i++;if(i<argc)if(sav(argv[i],&l)==0) {printf("Wrong order!\n");return;}}elseif(argv[i][1]=='h'){order[4]=1;i++;if(i<argc)if(sav(argv[i],&h)==0){printf("Wrong order!\n");return;}}elseif(argv[i][1]=='m'){order[5]=1;i++;if(i<argc)if(sav(argv[i],&m)==0){printf("Wrong order!\n"); return;}}elseif(argv[i][1]=='-'){order[6]=1;i=argc+1;}else{printf("Wrong order!\n"); return;}}}/*检查order*/if(order[3]==1 && l==-1){printf("Wrong order!\n");return;}if(order[4]==1 && h==-1){printf("Wrong order!\n");return;}if(order[5]==1 && m==-1){printf("Wrong order!\n");return;}time(&tp);/*获取当前时间*/ret = stat(path, &st);/*获取信息*//*处理order的信息*/if(ret == 0) /*成功读取path信息*/{if(S_ISDIR(st.st_mode)) /*如果是dir*/{dir = opendir(path);if (dir == NULL) /*Unreadable*/{printf("Open directory \"%s\": %s (ERROR %d)\n",path, strerror(errno), errno);return 1;}while ((entry = readdir(dir)) != NULL) /*一直读,直至文件结束*/{strcpy(path1,path);strcat(path1, "/");strcat(path1, entry->d_name);stat(path1, &st);if(order[1]==0) /*不是-r*/{if(order[2]==1) /*-a*/{if(order[3]==1 && order[4]==1) /*-l 和-h*/{if((st.st_size<=h) && (st.st_size>=l))if(order[5]==1){ /*-m*/if(((tp-st.st_mtime)/86400+1)<=m)printf("%s \n", entry->d_name);}else /*no -m*/printf("%s \n", entry->d_name);}else if(order[3]==1 && order[4]==0){if(st.st_size>=l)if(order[5]==1){if(((tp-st.st_mtime)/86400+1)<=m)printf("%s \n", entry->d_name);}elseprintf("%s \n", entry ->d_name);}else if(order[3]==0 && order[4]==1){if(st.st_size<=m)if(order[5]==1){if(((tp-st.st_mtime)/86400+1)<=m)printf("%s \n", entry->d_name);}elseprintf("%s \n", entry->d_name);}else if(order[3]==0 && order[4]==0){if(order[5]==1){if(((tp-st.st_mtime)/86400+1)<=m)printf("%s \n", entry->d_name);}elseprintf("%s \n", entry->d_name); }}else{if(order[3]==1 && order[4]==1){if((st.st_size<=h) && (st.st_size>=l) && entry->d_name[0]!='.')if(order[5]==1){if(((tp-st.st_mtime)/86400+1)<=m)printf("%s \n", entry->d_name);} elseprintf("%s \n", entry->d_name); }else if(order[3]==1 && order[4]==0){if(st.st_size>=l && entry->d_name[0]!='.')if(order[5]==1){if(((tp-st.st_mtime)/86400+1)<=m)printf("%s \n", entry->d_name);}elseprintf("%s \n", entry->d_name);}else if(order[3]==0 && order[4]==1){if(st.st_size<=m && entry->d_name[0]!='.')if(order[5]==1){if(((tp-st.st_mtime)/86400+1)<=m)printf("%s \n", entry->d_name);} elseprintf("%s \n", entry->d_name);}else if(order[3]==0 && order[4]==0){if(entry->d_name[0]!='.')if(order[5]==1){if(((tp-st.st_mtime)/86400+1)<=m)printf("%s \n", entry->d_name);}elseprintf("%s \n", entry->d_name);}}}/*order[1]=0 end*/}/*while*/closedir(dir);}/*is DIR*/else/*not a dir*/{/*Change path into filename*/for(i=0,j=0;path[i]!='\0';i++)if(path[i]=='/')j++;k=j;for(j=0,i=0;j<k;i++)if(path[i]=='/')j++;k=i;for(j=0;path[j+k]!='\0';j++)path[j]=path[j+k];path[j]='\0';/*Deal with the orders, not considering order[1]-->-r*/ if(order[2]==1){if(order[3]==1 && order[4]==1){if((st.st_size<=h) && (st.st_size>=l))if(order[5]==1){if(((tp-st.st_mtime)/86400+1)<=m) printf("%s \n", path);}elseprintf("%s \n", path);}else if(order[3]==1 && order[4]==0){if(st.st_size>=l)if(order[5]==1){if(((tp-st.st_mtime)/86400+1)<=m)printf("%s \n", path);}elseprintf("%s \n", path);}else if(order[3]==0 && order[4]==1){if(st.st_size<=m)if(order[5]==1){if(((tp-st.st_mtime)/86400+1)<=m)printf("%s \n", path);}elseprintf("%s \n", path);}else if(order[3]==0 && order[4]==0){if(order[5]==1){if(((tp-st.st_mtime)/86400+1)<=m)printf("%s \n", path);}elseprintf("%s \n", path);}}else{if(order[3]==1 && order[4]==1){if((st.st_size<=h) && (st.st_size>=l) && path[0]!='.') if(order[5]==1){if(((tp-st.st_mtime)/86400+1)<=m)printf("%s \n", path);}elseprintf("%s \n", path);}else if(order[3]==1 && order[4]==0){if(st.st_size>=l && path[0]!='.')if(order[5]==1){if(((tp-st.st_mtime)/86400+1)<=m)printf("%s \n", path);}elseprintf("%s \n", path);}else if(order[3]==0 && order[4]==1){if(st.st_size<=m && path[0]!='.')if(order[5]==1){if(((tp-st.st_mtime)/86400+1)<=m)printf("%s \n", path);}elseprintf("%s \n", path);}else if(order[3]==0 && order[4]==0){if(path[0]!='.')if(order[5]==1){if(((tp-st.st_mtime)/86400+1)<=m)printf("%s \n", path);}elseprintf("%s \n", path);}}}}/*path 正确*/else{printf("Wrong path.\n");}/*path 错误*/return;}/*main*/四、测试结果(1)./list –l 100 –h 5000 /bin /etc (列出大小在100~5000之间的文件)。
UNIXLinux实验报告 (闪珊珊) 1

院系:计算机科学学院专业:软件工程年级: 10级课程名称: linux操作系统学号: 10065052 姓名:马寄指导教师:夏梦2013年 5 月 2 日2.进入mytest目录cd temp/mytest,将给出的man.config复制到本目录下面输入入命令cd temp/mytestcp /home/rajonma/桌面/man.config /home/rajonma/temp/mytest/man.config4..移动到第58行输入命令:586.将第50行到100行之间的”man”改为”MAN”,并且一个一个查看是否需要修改,如何执行命令?如果在查看过程中一直按y,结果在最后一行出现改变了几个man?键入命令:50,100s/man/MAN/gc Y7.不想修改了,想还原成原始文件,怎么做?8.复制65行到73行的内容,并且粘帖到最后一行之后输入命令:65,73t$9.21到42行的开头为#的这些行都删掉,如何做13.保存后离开,并检查保存是否成功键入命令wq. 保存成功2.root身份下建立开发项目目录/project/app,查看该目录权限,说明两用户apple ,orange 为什么不可以在该目录新建文件4. 实际用两用户测试看看是否可以正常工作,用apple建立文件,用orange修改,是否可以。
如果有问题如何解决。
这次实验目的是熟悉和操作linux环境下创建用户,以及用户权限的使用及其基本操作。
虽然只是简单的操作,但是由于之前一直是在windows环境下使用电脑的,这次在linux 下很不习惯权限的使用,经常是在该root的时候不知道使用。
但是实验做完后还是对linux下用root分配权限给用户有了一定的了解,很有收获。
中国矿业大学unix实验

《UNIX》实验指导实验一、Linux基本命令1.实验目的掌握linux平台下的基本命令(40个)2.实验说明在介绍所有的命令之前,先介绍一下Linux的在线帮助man。
在Linux下,当你要查找一个命令的用法的,你可以通过 man 命令名来源得命令的详细说明。
因为每个Linux都有一份man文档,所以介绍命令的时候我们只是简直介绍一下命令的学用选项。
如果想查看命令的详细说明,请自己看man。
下面是man各小节的内容:1用户命令。
2系统调用。
3库函数。
4特殊文件(设备和网络接口)。
5文件格式。
6游戏和演示。
7系统环境、表格和宏。
8系统管理和相关命令。
3.命令说明略4. 补充说明本次实验很难完成所有命令的操作,建议参考《Linux命令大全(修改版)》,掌握linux 平台下的所有命令。
5.实验结果以下是一些命令的演示截图6. 实验体会通过本次实验,我对linux的命令有了一定的了解,为接下来的shell编程实验打下了一定的基础。
实验二、shell编程1.实验目的熟练掌握Shell Script编程,加深对linux系统的理解2.实验要求1.知道如何执行shell程序2.在shell脚本中要体现条件控制(如if结构和条件分支)3.在shell脚本中要体现循环(for,while和until循环)4.掌握shell程序的调试3.Shell脚本举例1)赶走一些你不希望进入的用户2)一个简单的目录菜单3)函数调用4)Shell脚本的感染5)列出当前目录下的文件数目6)列出当前目录下的C语言文件4. 实验结果1234565. 实验体会通过本次实验,我对Linux系统下的shell编程有了一定的了解和掌握。
实验三、进程控制1. 实验目的了解与进程控制相关的各种系统调用,加深对进程的状态变迁与进程调度的理解。
2. 实验要求1.掌握进程的创建fork系统调用的原理。
2.掌握exec系统调用的原理。
3.掌握exit系统调用的原理。
11061174 - 罗凡 - Unix实验报告

Unix实验报告班级:110616学号:11061174姓名:罗凡一、实验要求用c语言编写一个简单的shell,可以运行不带参数的外部命令,支持标准I/O重定向,可以通过管道连接两个命令。
外部命令的路径可以是固定路径。
每个功能的实现原理,流程图(伪代码),运行结果截图,源代码二、程序流程首先,对输入的命令进行解析,根据shell指令的管道符号“|”划分出每个简单指令。
然后利用fork()函数、execvp()函数创建进程,同时利用pipe()函数创建管道,通过文件操作修改各个进程的文件描述符以实现输入输出流的重定向,并实现管道的连接。
简明流程图如下:三、运行结果3.1 不带参数的外部命令ls、data3.2输出重定向3.3输入重定向3.4管道连接两个命令四、各功能实现原理为了使功能介绍更加清晰,将其具体内容嵌入程序源代码的注释中,如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <fcntl.h>#include <unistd.h>#include <sys/wait.h>#define CMD_LINE 1024#define PIPE_MAX 16#define ARG_MAX 10typedef struct {char *arg[ARG_MAX];char *in;char *out;} cmd_t;extern int parse_token(char *buf, cmd_t cmd[]);extern int parse(char *buf, cmd_t * cmd);extern int test_parse(cmd_t cmd[], int len);int main(int argc, char *argv[]){char buf[CMD_LINE];cmd_t cmd[PIPE_MAX + 1];int fd[PIPE_MAX][2];int j, i;int cmd_len, pipe_len;pid_t pid;while (1) {printf("LuoFan_shell#");fgets(buf, CMD_LINE, stdin);buf[strlen(buf) - 1] = '\0';cmd_len = parse_token(buf, cmd); //解析命令,获得命令并去掉结尾的\0pipe_len = cmd_len - 1;if (pipe_len > PIPE_MAX)continue;for (i = 0; i < pipe_len; ++i)pipe(fd[i]); //创建pipe_len个管道 for (i = 0; i < cmd_len; ++i)if ((pid = fork()) == 0) //创建cmd_len个进程。
操作系统模拟unix文件系统实验报告

操作系统大型实验班级:学号:姓名:一实验介绍……………………………………………………………………1.实验名称2.实验目的3.实验内容及要求二实验环境……………………………………………………………………三实验设计……………………………………………………………………1.数据结构设计2.系统流程设计3.实现命令操作四模块详解……………………………………………………………………1 .文件操作2 .用户操作五实验演示……………………………………………………………………1 .初始化磁盘块2 .用户登录3 .目录操作4 .文件操作六源代码………………………………………………………………………七实验心得体会……………………………………………………………………1.调试中遇到的问题总结2.实验感悟一、实验介绍1.实验名称操作系统大型实验2.实验目的完成一个 UNIX/Linux文件系统的子集的模拟实现,了解Unix文件系统的实现机制。
3.实验内容及要求(1)文件卷结构设计0#块可省略I节点栈及空间为20项块大小为512字节卷盘块数大于100I节点盘块数大于10块(2)I节点结构设计文件大小文件联接计数文件地址文件拥有者文件所属组文件权限及类别文件最后修改时间其中文件地址为六项:四个直接块号,一个一次间址,一个两次间址(3)目录结构用16字节表示,其中14字节为文件名,2字节为I节点号(4)用户及组结构用户信息中包括用户名、口令,所属组,用户打开文件表(5)文件树结构除(4)要求外,适当考虑UNIX本身文件树结构(6)实现功能Ls 显示文件目录Chmod 改变文件权限Chown 改变文件拥有者Chgrp 改变文件所属组Pwd 显示当前目录Cd 改变当前目录Mkdir 创建子目录Rmdir 删除子目录Mv 改变文件名Cp 文件拷贝Rm 文件删除Ln 建立文件联接Cat 连接显示文件内容Vi 文件写入Mk 创建文件umask 查看用户屏蔽码Umask 文件创建屏蔽码Passwd 修改用户口令Ls-l 查看文件类型Login 用户注销Logout 退出系统Help 显示帮助信息二、实验环境实验设备:Microsoft Visual Studio 2010开发语言:c++三、实验设计1.数据结构设计磁盘文件结构设计:用一个名为disk.txt的文件模拟Unix系统磁盘,总共分为200块,每块514个字节(实际可用512个字节,还有2个字节是磁盘分割符‘\n’),使第一块(0#)盘块做为超级块,记录该系统磁盘的使用情况;第二块(1#)盘块——第十三块(12#)盘块作为存储I 结点使用,每个I结点74个字节,所以每个盘块可以存放6个I结点,总共有72个I结点,记录在超级块中;十三块(12#)以后的盘块作为存储文件内容使用,总共187个盘块,用成组连接法记录在超级块中。
UNIX常见命令及vi编辑器实验报告

UNIX常见命令及vi编辑器实验报告《UNI_系统与软件开发》实验报告作者:自律w_yn实验目的学会使用Linu_的常见命令学会用vi编辑器实验环境软件:安装了Linu_的vmware虚拟机硬件:PC机一台实验内容与实验过程及分析^p (写出详细的实验步骤,并分析^p 实验结果)1.useradd命令useradd用于添加用户,用法:useradd [选项] 用户名2.passwd命令passwd命令用于设置账户密码,用法:passwd [选项] 用户名3.su命令su命令用于切换用户,用法:su [选项] [用户名]4.shutdown命令shutdown命令用于关机,用法:shutdown [-t sec] [-arkhncfFHP] time [warning message]5.cp命令cp命令用于拷贝,用法:cp [选项] 文件或目录目标文件或目录6.mv命令mv命令用于移动或更名,用法:mv [选项] 文件或目录目标文件或目录7.rm命令rm命令用于删除文件或目录,用法:rm [选项] 文件或目录删除文件:删除目录:8.mkdir命令mkdir命令用于创建目录,用法:mkdir [选项] 目录名9.cd命令cd命令用于改变工作目录,用法:cd 目录名10.pwd命令pwd命令用于查看当前路径,用法:pwd11.ls命令ls命令用于常看目录,用法:ls [选项] [目录或文件]12.tar命令tar命令用于打包与压缩,用法:tar [选项] 目录或文件使用tar命令将/tmp目录下的所有文件和目录打包成一个tmp.tar文件使用tar命令将打包文件tmp.tar在当前目录下解开13.unzip命令unzip命令用于解压缩,用法:unzip [选项] 压缩文件名.zip例:使用unzip命令解压tmp.zip文件14.chmod命令chmod命令用于改变访问权限,用法:chmod [who] [+|-|=] [mode] 文件名例:使用chmod命令给hello.c文件的所有者同组用户加上写的权限例:使用chmod命令将文件hello.c的访问权限改变为文件所有者可读可写可执行、文件所有者同组的用户可读可写、其他用户可执行。
Unix操作系统实验报告3-shell驱动的图书管理系统

实验报告一、实验一:图书馆管理系统三、实验目的:掌握shell编程的一般方法,能运用常用的shell命令编写一个简单的shell程序,并能在Linux系统所提供的/bin/sh或/bin/bash下正确的运行。
四、实验原理:UNIX五、实验内容:编写一个菜单驱动的Linux图书馆管理程序(LLIB),该程序能够对书库中的图书执行增加一条记录、删除一条记录、显示一条记录、更新一条记录状态和打印报表等功能。
六、实验器材(设备、元器件):电脑七、实验步骤:1.增加一本书的函数需要依次读取用户的输入,每次先写出提示输入语句,然后读取输入。
CATEGORY可以使用简写,因此使用一个case语句进行变量的替换和规范化。
2.删除一本书要用户先输入书名或者作者名,然后找到一条记录,询问用户是否删除。
其中要输出这条记录的详细想信息,如果书已经借出去了,那么还要输出借出去的人和时间。
删除这条记录通过将除了这条记录之外的记录输出到一个临时文件中,然后用临时文件覆盖当前的数据文件即可。
3.显示书的详细信息和删除书的部分一致,只是最后不进行删除。
4.更新书也和删除书一致,只是当库存书改为借出状态时,需要用户额外输入信息。
并且多3个变量存储新的状态、借阅者姓名、日期。
5.REPORTS为输出所有书的信息,首先根据不同的选择,将ULIB_FILE排序后输出到temp,然后调用report函数输出temp中的值。
report函数使用一个while read 循环读取temp 中的每一行,然后格式化后输出到ttemp中。
最后使用more对于ttemp进行显示,在显示后还需要 read A,使得bash等待用户输入,不会显示完就进入菜单的循环。
八、实验数据及结果分析:1.初始界面2.主菜单3.编辑菜单4.添加书5.更新书6.显示书7.删除书8.显示菜单9.根据书名排序10.根据作者排序11.根据种类排序九、总结、改进建议及心得体会:学习了Shell编程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结果如下:
实验二Linux的文件与目录结构文本处理令
一、实验目的
了解Linux的基本目录结构的特点;
学会建立和删除目录的方法;
了解Linux中的绝对和相对路径;
通过使用ls命令进一步了解Linux中文件属性的含义
了解文件的复制、删除等基本命令的使用;
了解Linux中的sort及uniq
此时系统进入发送信息状态,用户可以输入要发送的信息,输入完毕,希望退
出发送状态时,按组合键< Ctrl+c>即可。
3、mesg指令
mesg命令设定是否允许其他用户用write命令给自己发送信息。如果允许别人
给自己发送信息,输入命令:
# mesg y
否则,输入:
# mesg n
对于超级用户,系统的默认值为n;而对于一般用户系统的默认值为y。如果
的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可
以是一个精确的时间,也可以是从现在开始的一个时间段。精确时间的格式是
hh:mm,表示小时和分钟;时间段由“+”和分钟数表示。系统执行该命令后,
会自动进行数据同步的工作。
该命令的一般格式为:shutdown [选项] [时间] [警告信息]
然后观察一下“tmpsubdr”目录是否正确地建立起来。
结果如下:
3)接下来要做的事可能令人沮丧一些——将刚才建立的两个目录删除,
输入
rmdir tmpsubdr
cd ..
rmdir tmpdr
然后观察一下刚才建立的目录结构是否已被清空了。
4)继续使用mkdir命令创建多重目录,并使用pwd命令
[实验3]
小;
2)利用gzip工具压缩该文件,并观察压缩后文件大小;
3)利用gunzip工具解压缩该文件;
实验二:
2、实验目的:对某个目录进行打包压缩。
实验步骤:
1)建立一个目录temp,在其中拷贝进较多的文件,然后利用tar工具将其压
缩打包成temp.tar.gz;
2)将原来的temp目录删除;
3)利用tar工具解包该文件,使temp目录重新出现;
网络操作系统实训报告
学生学院计算机学院
专业班级
学号
学生姓名
指导老师王勇
2013年6月
1 实验一 熟悉Linux系统环境…………………………………………………
2 实验二Linux的文件与目录结构文本处理令………………………………
3 实验三Linux系统配置与管理………………………………………………
4 实验四 Linux 与用户有关的命令及系统管理命令…………………………
关闭系统的过程是自动进行这些工作的,在系统运行过程中也会定时做这些工
作,不需要用户干预。sync命令是强制把内存中的数据写回硬盘,以免数据的
丢失。用户可以在需要的时候使用此命令。该命令的一般格式为:
sync
5、shutdown命令
shutdown命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上
Thank you!
#
执行以上命令后,用户的屏幕上显示出“Thank you!”信息后,并不出现系统
提示符$(#),再次按回车键后,屏幕出现系统提示符。
2、write命令
write命令的功能是向系统中某一个用户发送信息。该命令的一般格式为:
write用户帐号[终端名称]
例如:$ write Guest hello
软盘是用户常用的存储介质之一。软盘在使用之前必须先作格式化操作,然后
可以用tar、dd、cpio等命令存储数据,也可以在软盘上建立可安装的文件系
统。
功能:低级格式化软盘
语法:format [-n] device
说明:该命令的作用是对软盘进行格式化。
五、实验体会
这是我第一次接触unix,通过上unix实验课,我学到了很多东西,熟悉了Linux系统环境和Linux系统配置与管理,学习了unix的很多命令,也发觉unix很有意思。由于我们基本上使用的操作系统都是windows系列的,通过网络操作系统实验,能够接触到unix,从而能了解两种操作系统的不同之处和相同之处。对于不同的操作系统有了一个较清晰的比较,对以后的学习打下基础。
实验目的:建立目录并观察目录属性。
实验步骤:
1)在属于自己的目录空间内,建立目录“tmpdr”,然后利用“ls -l”命令观察目录属性,记录“内含目录数量”栏目的数字是多少。并观察该目录属于哪个用户和用户组。
2)在目录“tmpdr”中再建立目录“tmpsubdr”,然后观察“tmpdr”属
性发生了什么变化(注意操作中用“cd”命令改变当前目录)。
行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令
把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘
上,完成diskcopy的功能。需要注意的是,应该将硬盘上的寄存文件用rm命
令删除掉。系统默认使用标准输入文件和标准输出文件。
语法:dd [选项]
4、fdformat命令
学会使用Linux中的man命令来获得帮助
二、实验流程
1、实验步骤:
1)按管理员提供的用户名和密码登录系统。
2)输入
ls
然后观察屏幕的反应
3)输入
cd /
然后观察系统提示符是否有变化。
4)输入
ls
然后观察屏幕的反应。
5)输入
echo“hello!”
6)通过练习ls–a、ls–l、ls–t来考察命令中参数的作用
写好存入一个文件中,然后输入:
# wall <文件名
这样就能对所有的用户发送信息了。
在上面的例子中符号“<”表示输入重定向,有关它的含义和用法请参阅第十章
的有关内容。例如:
# wall‘Thank you!’
Broadcast message from root(tty1)Fri Nov 26 14:15:07 1999…
钟和15分钟内的平均负载。
该命令的一般格式为:uptime
(三)Linux磁盘管理
1、df命令
功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用
了多少空间,目前还剩下多少空间等信息。
语法:df [选项]
说明:df命令可显示所有文件系统对i节点和磁盘块的使用情况。
2、du命令
du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况。和“rmdir”命令建立和删除目录。
实验步骤:
1)建立一个名叫“tmpdr”的目录,输入
mkdir tmpdr
然后观察一下该目录是否正确地建立起来。
2)在“tmpdr”目录中,再建立一个名叫“tmpsubdr”的目录,输入
cd tmpdr
mk tmpsubdr
实验一熟悉Linux系统环境
一、实验目的
了解Linux系统中普通用户与超级用户帐号的概念;
了解进入及退出Linux系统的基本方法;
了解虚拟控制台的原理;
使用passwd命令更改用户的口令;
了解Linux中的ls、echo、cat、date、clear等基本行命令的功能;
了解Linux命令中的命令参数(开关符)的使用;
the wall paper。实验完成后填写下表:
更改kde桌面墙纸所涉及的配置文件是:
更改kde桌面墙纸须修改该配置文件中哪一句话?
二、在用户目录中寻找并观察konqueror(“即kde桌面上按起点图标后启动的
窗口”)相关配置文件,并利用vi程序,设置konqueror的菜单为显示或不显
示。并填写下表:
机器名:
别名:
IP地址:127.0.0.1
DNS服务器地址:
当前用户所在的组
当前用户的UID号
当前用户空间的所在目录
答案在截图里:
2、实验目的:在命令行环境中,观察用户目录,探索和更改kde以及部分应用程序的设置。
实验步骤:
一、在用户目录中寻找并观察kde相关配置文件,并利用vi程序,更改kde桌
面墙纸。然后,在被修改的那句配置语句前增加一条注释:I have modified
mesg后不带任何参数,则显示当前的状态是y还是n.。
4、sync命令
sync命令是在关闭Linux系统时使用的。用户需要注意的是,不能用简单
的关闭电源的方法关闭系统,因为Linux象其他Unix系统一样,在内存中缓存
了许多数据,在关闭系统时需要进行内存数据与硬盘数据的同步校验,保证硬
盘数据在关闭系统时是最新的,只有这样才能确保数据不会丢失。一般正常的
四、Linux 与用户有关的命令及系统管理命令
一、实验目的:
了解passwd及su命令的含义;
了解相关的Linux系统管理命令;
了解Linux的磁盘管理命令。
二、实验说明
(一)Linux与用户有关的命令
1、passwd命令
2、su命令
(二)Linux系统管理命令
1、wall命令
这个命令的功能是对全部已登录的用户发送信息,用户可以先把要发送的信息
实验三Linux系统配置与管理
一、实验目的
掌握Linux常用的系统基本配置文件;
了解用户自定义文件的使用与配置;
压缩打包技术与应用程序安装;
二、实验流程
[实验1]了解Linux的配置文件
1、实验目的:在命令行环境中观察系统配置。
实验步骤:
在etc目录中观察配置文件,并根据自己系统的配置,填写下面表格:
状态中输入一些文字内容,比如
hello!
3)按键盘上的“Esc”键,表示退出文字编辑状态,然后按“:”键,表