unix实验报告

合集下载

Unix第一次实验报告(编程实现程序list.c,列表普通磁盘文件等)

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

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实验报告-Linux

大学课件-Unix实验报告-Linux

《操作系统》系列课程之初级《Linux操作系统使用》实验指导书试验1 Linux的基本命令及vi初步实验1.1 命令基础●实验所属系列:操作系统初级试验●实验对象:本科●相关课程及专业:计算机操作系统,软件专业●实验类型:课程设计●实验时数(学分):1学时实验目的掌握Linux的基本安装,熟悉Linux命令的格式,熟悉一些常用的Linux命令,熟悉如何使用帮助。

实验内容与要求要求登录进入Linux系统,而后更改自己的用户口令执行几个常用的Linux命令使用man命令,来查找特定命令的帮助信息内容一、登录,更改密码1.安装VMware虚拟机,安装Linux操作系统。

在安装过程中设置root用户的密码为111111。

从图形界面进入控制台界面的组合[Fn+Crtl+Alt]从控制台界面进入图形界面[Alt+F7]2.登录后将当前的密码改为你自己希望的密码。

用心记住新密码。

用笔记录密码的话,容易引起安全问题。

(passwd命令)3.退出系统后,再重新进入,以确定用户自己的密码已经被修改。

[Ctrl+d] / logout / exit4.系统关机:poweroff / shutdown5.重启系统:reboot二、基本命令1.显示系统的时间(date)2.显示文件/etc/passwd中一共有多少行(wc -l /etc/passwd)3.显示2002年的全年的日历4.显示1752年9月的月历,请注意这个月的月历是否有些特别。

5.显示1999年1月与99年1月的月历。

1999年与99年是同一年吗?6.有两个命令是用来显示当前系统中的用户情况的。

用这两个命令显示现在有哪些人已经登录到系统中,并查看他们是何时登录进入系统的。

7.只显示用户自己的登录名。

8.使用clear命令,清屏。

三、man 命令使用man man命令,来查找man命令的帮助信息。

仔细阅读系统所给出的帮助信息,注意man命令能提供哪几个方面的帮助?使用man cal命令,在系统所提供的帮助中,找出cal命令的正确的使用格式。

中国矿业大学unix实验

中国矿业大学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系统调用的原理。

UNIX常见命令及vi编辑器实验报告

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驱动的图书管理系统

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编程。

UNIX实验

UNIX实验

河南城建学院《 UNIX系统与软件开发》实验报告实验名称:实验3 名称:权限管理 _ 成绩:_________ _ __专业班级:学号:姓名:实验日期:2014 年 4 月 10 日实验器材:一台装有Windows操作系统PC机,上装有虚拟机系统VMWare,实验过程通过VMWare系统启Linux系统工作。

一、实验目的Unix/Linux权限和文件管理命令;Unix/Linux文件系统的使用;与文件系统管理相关的其它命令。

二、实验内容及过程(l)先用ls命令按不同的格式列样本目录的内容ls –l /dev/hda? /dev/tty? / network | less,结果如图1所示:图1输入命令ls –la /dev/hda? /dev/tty? / network | less(ls -l a 是列出当前目录中的所有文件和目录,包括隐藏文件和目录),结果如图2所示:图2输入命令:ls –lai /dev/hda? /dev/tty? / network | less,结果如图3所示:图3(2)使用权限管理命令chmod进行权限设置①使用命令:umask或umask –p 或 umask –S查看当前的umask值为0022,使用文件管理命令,touch myfile创建一个新文件myfile,使用目录管理命令,mkdir mydir创建一个新目录mydir;使用命令ls –l检查新创建文件的属性,如图4所示:图4②使用命令umask 0007,设置新的umask值。

然后使用命令,touch myf 创建一个新文件myf,使用命令mkdir myd创建一个新目录myd,如图5所示:图5并使用命令ls –l检查新创建文件的属性如图6所示:图6③为myf或目录myd修改权限(每完成一步操作都要用ls –l检查文件属性,并进行记录):为目录myd增加其它人的可进入和读权限命令:chmod o+rx myd,结果如图7所示:图7为目录myd和文件myf去除同组人的写权限:chmod g-w myd myf,结果如图8所示:图8将目录myd和文件myf的权限设为可读可写可执行:chmod 777 myd myf,结果如图9所示:图9去除其他人对目录myd和文件myf的权限访问权限:chmod o-rwx myd myf,结果如图10所示:图10将目录myd和文件myf的权限设为用户主和同组人可读可写可执行,而其他人不可访问:chmod 770 myf myd,结果如图11所示:图11(3)使用权限管理命令chown,chgrp等进行权限设置(每完成一步操作都要用ls –l检查文件属性,并进行记录):将目录myd用户主设为adm:chown adm myd将目录myd和文件myf的组设为lp:chgrp lp myd myf将目录myd及其所有子目录的用户主设为adm,组设为bin:chown -R adm:bin myd,结果如图12所示:图124)Ext2和Ext3扩展文件属性管理a. 查看新创建文件的扩展属性:lsattr myfb. 为myd和myf增加扩展属性:chattr +i myfc. 再查看myd和myf的扩展属性:lsattr myfd. 试图删除具有扩展属性i的文件myf,观察过程和结果,提示无法删除文件myf,如图13所示:e. 去掉myf的i扩展权限后,再删除该文件,看结果怎样?chattr –i myf; rm –f myf图13三、出现问题分析及解决如图13所示,在试图删除具有扩展属性i的文件myf,结果提示无法删除文件myf,用命令chattr –i myf去掉myf的i扩展权限后,再用rm –f myf删除该文件,则成功删除,结果如图13所示。

UNIX实验2 网络配置命令解析

UNIX实验2  网络配置命令解析

UNIX系统《实验2》实验报告实验项目1:学号姓名课程号实验地点指导教师时间评语:成绩教师签字实验二Linux网络配置与进程管理【实验目的】1.掌握Linux初步的系统管理;2.会在Linux下安装各种软件;3.学会使用vi编辑器;4.掌握Linux网络的配置;5.掌握掌握Linux的进程管理命令。

说明:Linux是多用户系统,每个系统用户都需要使用用户名和口令。

系统为每个登陆用户在/home目录下建立一个与用户名同名的子目录(root用户的主目录为/root)作为用户登陆的起点,用户可以在自己的主目录下创建文件和子目录。

每一个用户都会使用机器上的文件和资源,因而如何对这些用户进行管理,保证系统的效率和安全就显得非常重要。

Linux使用相应的命令完成对用户和用户组的管理。

运用这些命令,可以控制用户的增加删除和权限控制,以及日志的查询。

在Linux下,软件有多种安装包格式,而每种格式又有自己的安装命令和方法。

目前,Linux下流行的安装包格式主要有两种:一是二进制分发包格式;二是源代码分发包格式。

RPM包是Red Hat Linux提供的包封装格式,后缀名是.rpm;tar封装包是以tar与其他压缩工具(如gzip,bzip2)将应用程序和相关文件封装成包的方式,后缀名的格式主要是为.tar.gz、tar.Z、tar.bz2或.tgz。

RPM包是应用程序已经预先编译过的可直接安装文件。

对于以tar包分发的二进制包,则需使用命令将tar包解压,然后运行相应目录中的应用程序或运行程序提供的脚本。

源代码包就是源代码可见的软件包。

一个软件如果有源码,任何人都能看到它是如何开发而来的,用户可以通过修改源码来定制、优化软件,以适合实际需要。

vi编辑器有3种操作模式,分别是命令模式(Command mode)、插入模式(Insert mode)和末行模式(Last line mode)。

Linux中,通过编辑一些文本文件也可以对网络进行配置。

unix操作系统实验汇总2

unix操作系统实验汇总2

unix操作系统实验汇总2
实验3 进程通信
一、实验目的
1.了解管道的基本概念;
2.掌握Linux支持的管道通信方式。

3.理解Socket通信的基本概念和工作原理;
4.掌握Socket的建立、监听、连接、发送和接收数据的方法;
5.在Linux下使用C语言设计和实现基于Socket通信的程序。

二、实验内容
1.利用管道通信机制,实现输入字符串的自动分流操作。

一共涉及3个管道,4个进程:
(1)P1:从键盘接收输入字符串,写入管道Pipe1;
(2)P2:从Pipe1接收字符串,若字符串的长度为偶数,则将其写入管道Pipe2,否则将其写入管道Pipe3;
(3)P3:从Pipe2读出字符串,并显示“Pipe2:Even length string: 偶长度字符串”;
(4)P4:从Pipe3读出字符串,并显示“Pipe3:Odd length string: 奇长度字符串”;
(5)输入exit 程序退出。

2.在同一台机器上建立一个服务器端Server,一个客户端Client
(1)建立Server 与Client的连接;
(2)Server提供一个计算功能,即进行四则运算(除号用/代替);
(3)Client从键盘接收运算格式串,串的格式为:操作符(+-*÷)之一,操作数1,操作数2(7.例如发送字符串:*,3,5 表示要Sever 计算 3 * 5);
(4)Server接收命令串,解析并计算之,结果以字符串形式返回给Client,Client 显示结果;
(5)输入q结束Client,Client结束前断开与Server的连接。

三、实验代码
四、遇到问题及解决办法。

实验一、UNIX操作系统及常用命令

实验一、UNIX操作系统及常用命令

实验一、UNIX操作系统及常用命令一、实验目的:1、掌握UNIX系统的结构。

2、掌握工具层中相关命令的使用。

3、观察输入命令后相对应的结果显示。

4、掌握工具层中相关命令的使用。

二、实验仪器:SUN工作站、UNIX操作系统。

三、实验原理:1、UNIX操作系统的历史从总体来看,Unix的发展可以分为三个阶段:第一阶段为Unix的初始发展阶段,从1969年KeThompson在AT&T贝尔实验室创造了Unix操作系统,刚开始运行在一台DECPDP-7计算机上,只在实验室内部使用并完善它,这个阶段Unix从版本1发展到了版本6。

此时的Unix用汇编语言写成,因此在1970将Unix 移植到PDP-11/20上的时候花费了大量工作。

此阶段中最重要的事件为Unix的作者使用C 语言对Unix的源代码重新改写,使Unix非常具有可移植性。

第二阶段为80年代,这是Unix的丰富发展时期,在Unix发展到了版本6之后,一方面AT&T继续发展内部使用的Unix版本7 ,另一方面推出了一个对外发行的版本,但改用System加罗马字母作版本号来称呼它。

System III和System V是相当重要的Unix版本。

此外,其他厂商,以及科研机构都纷纷改进Unix,其中以加州大学伯克利分校的BSD版本最为著名,从4.2BSD中也派生出了多种商业Unix版本比如Solaris、HP-UX、IRIX 、AIX、SCO等等。

Sun是最早的工作站厂商,一直在Unix工作站领域不断发展。

其操作系统SunOS 是基于4.2BSD开发的,直到SunOS 4。

但在此之后,Sun将操作系统的开发工作转向了System V,这个新版本为Solaris 2,或者称为SunOS 5,因此也可将SunOS 4称为Solaris 1.0,但是SunOS 4与Solaris 2分属两个流派,其中的差别比较大。

从Solaris 2.6之后,Solaris 2.7的版本号直接变成了Solaris 7.0,目前我们使用的版本是Solaris 10.0。

Unix操作系统实验报告

Unix操作系统实验报告

Unix操作系统实验报告计算机科学与技术学院实验一、Linux基本命令一.实验目的掌握linux平台下的基本命令(40个)二.实验说明在介绍所有的命令之前,先介绍一下Linux的在线帮助man。

在Linux下,当你要查找一个命令的用法的,你可以通过man 命令名来源得命令的详细说明。

因为每个Linux都有一份man文档,所以介绍命令的时候我们只是简直介绍一下命令的学用选项。

如果想查看命令的详细说明,请自己看man。

下面是man各小节的内容:1 用户命令。

2 系统调用。

3 库函数。

4 特殊文件(设备和网络接口)。

5 文件格式。

6 游戏和演示。

7 系统环境、表格和宏。

8 系统管理和相关命令。

三.命令说明1.apropos 依据所给关键字查找相关的命令和系统调用格式:apropos keyword例:查找与ftp相关的命令和系统调用$apropos ftp注:类似的命令有man -k。

man -k 其实就是执行apropos2.at 在某一特定时间执行指定的命令格式:at [-V][-q 队列][-f 文件][-m] time选项说明:-V显示标准的错误输出。

-f可将作业存在一个文件中,用这个选项指定文件。

例如一个shell文件。

-q指定队列名称,默认为c。

-m执行后给用户发邮件。

time 指定开始执行的时间。

时间格式为: HH:MM,日期格式:MM/DD/YY或MM.DD.YY或MMDDYY。

下面的例子演示了在2004年3月11日21点34分执行一个at命令。

$at 21:34 03/11/04执行这条命令后会得到一条warning:commands will be executed using (in order) a)$SHELL b) login shellc)/bin/sh。

然后就出现“at>”的提示符。

这时你就可以输入你要执行的命令了,结束后按Ctrl+d。

你就可以去喝茶了,到时间后系统会自动执行它。

UNIX实验

UNIX实验

UNIX实验题实验一(1)常用命令引用参照教材例子运行命令:date,cal,who,echo,clear,cp,mv,rm,cat,mkdir,rmdir,ls注意理解输入输出重定向<,>,和管道(|)操作的功能在/etc/passwd文件中查找适合你的注册名得行实验一(2)文件名通配符的验证A.Pwd显示当前目录mkdir bak在当前目录下创建bak子目录,并转到该子目录下用vi生成try.c,zap.c,arc.c,xxx.h四文件执行cat *.c写出实际执行的命令:cat arc.c try.c zap.c (按字典序)对命令cat来说,指定了3个文件B.在当前目录下创建三个文件:a1.c1aaaaaaaaaaa2bbbbbbbbbba2.c1xxxxxxxxxx2xxxa1.cxxxxtry.c1yyyyyyyyyy2yyyyya*.cyy3hdsba1.cjjdfds4jdfj43a2.c654然后分别执行grep a*.c try.c与grep 'a*.c' try.c命令查看两命令的执行结果,并说明起区别前者实际执行grep a1.c a2.c try.c,在a2.c和try.c中查找正则表达式a1.c后者在try.c文件中查找正则表达式a*.c实验二(1)文件的写权限(注:应先创建有账户jiang且登录)$ who am ijiang pts/2 Jun 06 08:34$ who > mydata$ ls -l mydata-rw-r--r-- 1 jiang usr 58 Jun 06 09:04 mydata$ chmod u-w mydata (注:去除文件主的写权限;u 用户主,-去除,w写)$ who >> mydata (注:>>将who的输出内容附加到mydata文件中,注意该命令的执行结果,想想为什么?) mydata: The file access permissions do not allow the specified action.$ rm mydata (只读文件可以被删除,为什么?) rm: Remove mydata? y$ ls -l mydatals: 0653-341 The file mydata does not exist.实验二(2)文件的读权限$ who > mydata$ chmod u-rw mydata$ cat mydata (无法读取不允许读的文件中内容)cat: 0652-050 Cannot open mydata.$ chmod 644 mydata实验二(3)目录写权限$ chmod u-w . (当前目录不许写)$ who > mydata2 (不能创建新文件,为什么?)mydata2: The file access permissions do not allow the specified action.$ who >> mydata (但是可以修改已有的文件,追加一部分数据,为什么?)$ rm mydata (不能删除文件)rm: 0653-609 Cannot remove mydata.The file access permissions do not allow the specified action.$ cp /etc/passwd mydata (可以覆盖旧文件)$ cp /etc/passwd mydata2 (不能创建新文件))cp: mydata2: The file access permissions do not allow the specified action.$ mv mydata MyData (文件不许改名)mv: 0653-401 Cannot rename mydata to MyData:The file access permissions do not allow the specified action.$ mkdir Test (不可创建子目录)mkdir: 0653-357 Cannot access directory ...: The file access permissions do not allow the specified action.实验二(4)目录读权限$ pwd/usr/jiang$ chmod u-r .$ ls (不可读的目录无法列表出其中文件)ls: .: The file access permissions do not allow the specified action.$ chmod 000 . (取消当前目录所有权限)$ lsls: 0653-345 .: Permission denied.$ chmod 755 . (试图恢复当前目录权限失败,因为试图访问当前目录下的.文件)chmod: .: The file access permissions do not allow the specified action.$ chmod 755 /usr/jiang (这种访问不需要当前目录权限,可恢复当前目录权限)n 子目录没有读写权限,但是保留了x权限$ chmod u=x ttt$ cat ttt/ccp.cmain(int argc, char **argv){ ...}$ rm ttt/arg.c (子目录没有写权限,不能删除其中的文件)rm: 0653-609 Cannot remove ttt/arg.c.The file access permissions do not allow the specified action.$ ls ttt (子目录没有读权限,不能列出其中的文件)ls: ttt: The file access permissions do not allow the specified action.n 子目录有读写权限,但没有x权限$ chmod u=rw ttt$ ls tttBUGS.report arg.c ccp.c chap.h mydataarg auth.c chap.c disk.img$ cat ttt/arg.ccat: 0652-050 Cannot open ttt/arg.c.(试图设置其他用户的文件或目录的权限)$ chmod 777 /chmod: /: Operation not permitted.实验二(5)文件归档与压缩的应用先在当前目录下创建abc子目录,再在abc子目录下创建abc1子目录,并分别复制一些文件到abc和abc\abc1目录下,然后做入如下操作。

unix实验(操作系统)

unix实验(操作系统)

实验一:linux常用命令一、实验内容和要求1、使用自己的帐户登录linux系统查看系统提示符确定自己使用的shell程序类型。

2、修改个人口令后重新登录。

3、用who命令查看当前登录在系统中的用户列表、用户总数、系统启动时间等。

4、查看当前用户的标志符及当前进程的状态。

5、用cal命令查看自己的生日是星期几。

6、将Windows下的C盘链入linux 系统的根目录下。

7、将C盘上的一个文本传递到linux下的当前用户目录下,并进行浏览查看。

8、使用mail进行电子邮件的传递与查看。

9、在系统中与其他用户对话。

10、练习允许与拒绝其他用户向自己的终端上发送信息。

二、实验结果:请同学们自己写出1、用户使用的shell可查阅/etc/passwd文件确定。

2、修改口令的命令为:passwd<CR>3、who –h <CR>4、id <CR>5、cal –m 3 –y 1990 <CR>6、mkdir/dosc <CR>mount/dev/hda1/dosc <CR>7、cp /myexample.txt <CR>vim ./myexample.txt<CR>8、% mail zhangming<CR>subject:hello<CR>hi,my friend! How are you![ctrl+d]Cc:<CR>%查看信件只需要键入‖mail‖% mail<CR>9、% talk zhangming<CR> 用户屏幕将分成两半,其显示:请同学们自己写此时zhangming 回应:% talk wangyong@class<CR>则zhangming 的屏幕就会分成两半,双方开始对话。

10、% mesg y<CR>允许其他用户向自己发送信息。

UNIX操作系统实验1

UNIX操作系统实验1

UNIX操作系统实验首都师范大学信息工程学院系统分析与管理实验室目录1、UNIX安装及基本操作………………………………………2、UNIX编程基础……………………………………….3、UNIX进程实验……………………………………….4、UNIX进程间通信……………………………………..5、UNIX文件系统实验………………………………………..6、UNIX综合实验………………………………………..实验一 UNIX安装及基本操作一、背景知识UNIX操作系统是一种精良的OS,可完成系统赋予OS的所有任务,与用户有良好的交互界面,在资源管理中有独到的算法和策略,开源软件使其技术有了长足发展。

UNIX核心部分设计简单且功能全面,支持多用户、多任务,文件系统可装卸,有良好的开放性及可移植性,具有强大的命令功能,具有完善的安全机制,具有网络特性等。

Linux 不同于WindowsNT、UNIX等系统,它的源代码是公开的,具有类UNIX的特点,安装和使用与UNIX相似,它实现了虚拟存贮管理,进程管理,多处理器,多文件系统,可以运行在PC平台,是一个先进的,具有生命力的操作系统,因此,课程将主要以Linux操作系统作为安装和实验的平台,UNIX操作系统的安装和使用可以参照Linux实验来完成。

二、实验目的1) 通过安装Linux,掌握Linux安装的一般程序,了解Linux安装的发展。

2) 通过学习和练习基本命令操作,掌握Linux下命令的特点,掌握基本命令的使用。

三、工具/准备工作在开始本实验之前,请回顾教科书的相关内容。

需要做以下准备:1) 一台个人计算机。

2) Linux介质(光盘,网络镜像或下载网址及网络通信联接)四、实验内容与步骤1. Linux简介Linux是一种能运行于多种平台(PC机、ALPHA工作站、SUN Sparc 工作站)的功能强大、与UNIX兼容的操作系统。

Linux的内核及应用软件的源代码是公开的,也是免费的。

洛阳师范学院UNIX实验报告-5

洛阳师范学院UNIX实验报告-5

洛阳师范学院UNIX实验报告-5测试过程:(实验中出现的问题、错误、解决⽅法)能够顺利执⾏程序,并能够得到⾃⼰所需要的结果实验总结:了解passwd⽂件的存取权限;了解shadow⽂件的存取权限;签名2012年 5 ⽉7 ⽇评语与成绩:教师签名:年⽉⽇洛阳师范学院信息技术学院软件实验报告专业:软件⼯程课程:UNIX⾼级编程学号:姓名:班级:实验名称⽤户和组管理实验类型验证型实验时间2012-5-7实验环境虚拟机下装有linux操作系统的windows操作系统实验⽬的与要求:了解passwd⽂件的存取权限;了解shadow⽂件的存取权限;掌握获取⽤户信息的⽅法实验内容:1、查看系统⽂件passwd和shadow⽂件的存取权限1)在/ect⽬录下分别找到passwd和shadow⽂件2)执⾏ls命令分别查看2个⽂件的详细信息3)2个⽂件的⽂件主是谁?4)2个⽂件的存取权限如何定义?5)root能写shadow⽂件吗?尝试在命令⾏验证你的结论2、编程实现⽤户信息的浏览1)要求输出passwd⽂件中所有⽤户的所有信息(7个字段)2)观察加密⼝令字段的值,能否得到加密后的⼝令?3)参照补充内容和shadow的⽤户⼿册,掌握shadow⽂件的访问⽅法和函数4)在1)的基础上修改程序,将每个⽤户的加密⼝令部分补齐3、⽤户权限检查1)从root切换到普通⽤户lynu2)重新执⾏步骤2中的程序3)观察程序执⾏结果的变化,并思考原因4)对普通⽤户,如何实现本程序的正常功能?试设计解决⽅案,并编程实施4、补充内容:1)shadow⽂件的访问(可参考shadow的帮助⼿册):struct spwd描述⽤户⼝令信息,包括⽤户名,加密⼝令、⼝令有效时间等;getspnam函数⽤于获取指定⽤户的⼝令信息;getspent函数顺序读shadow⽂件的各个记录setspent函数⽤于将读指针移动到⾸记录endspent函数⽤于结束读过程注意:第⼀个函数⽤于⼝令信息查询,后3个⽤于⼝令信息遍历实验步骤:(算法描述、源程序、操作步骤和⽅法)1、查看系统⽂件passwd和shadow⽂件的存取权限1)在/ect⽬录下分别找到passwd和shadow⽂件2)执⾏ls命令分别查看2个⽂件的详细信息3)2个⽂件的⽂件主是谁?root4)2个⽂件的存取权限如何定义?Root的⽂件主对于⽂件有读写的权限,⽂件主所在组的⽤户对⽂件具有读的权限,其他⽤户对⽂件具有读的权限。

Unix实验报告-Linux的基本命令和vi初步

Unix实验报告-Linux的基本命令和vi初步

电子科技大学计算机科学与工程学院标准实验报告(实验)课程名称UNIX操作系统电子科技大学教务处制表电子科技大学实验报告一、实验室名称:计算机学院实验中心二、实验项目名称:Linux的基本命令和vi初步三、实验目的:掌握Linux的基本安装,熟悉Linux命令的格式,熟悉一些常用的Linux命令,熟悉如何使用帮助。

四、实验内容:命令基础:•登录进入Linux系统,而后更改自己的用户口令•执行几个常用的Linux命令•使用man命令,来查找特定命令的帮助信息文件与目录:•显示当前目录的目录名•改变当前目录使用ls命令的不同命令选项,来查看文件与目录的属性•创建和删除目录•创建0长度的文件•拷贝、移动、重命名、链接及删除文件•查看文件的内容修改文件和目录权限:•使用长列表命令来查看文件与目录的信息•能够解释文件与目录权限中各位的含义•能够对普通文件与目录的权限进行操作vi编辑器:•创建一个文件•保存退出一个文件及不保存退出一个文件•在文本中使用不同的键进行光标的移动•在一个文件中加入、删除与修改文本•设定选项以自定义编辑环境•调用命令行编辑功能五、实验器材(设备、元器件):个人电脑(安装window 10操作系统)WSL(window 10下的Linux子系统)cmder(windows 10下的命令行)六、实验步骤:命令基础:一、登录,更改密码1.安装VMware虚拟机,安装Linux操作系统。

在安装过程中设置root用户的密码为111111。

从图形界面进入控制台界面的组合[Fn+Crtl+Alt]从控制台界面进入图形界面[Alt+F7]2.登录后将当前的密码改为你自己希望的密码。

用心记住新密码。

用笔记录密码的话,容易引起安全问题。

(passwd命令)3.退出系统后,再重新进入,以确定用户自己的密码已经被修改。

[Ctrl+d] / logout / exit4.系统关机:poweroff / shutdown5.重启系统:reboot二、基本命令1.显示系统的时间(date)2.显示文件/etc/passwd中一共有多少行(wc -l /etc/passwd)3.显示2002年的全年的日历4.显示1752年9月的月历,请注意这个月的月历是否有些特别。

北京邮电大学Unix编程环境课程第一次实验报告ls命令

北京邮电大学Unix编程环境课程第一次实验报告ls命令

实验报告实验名:Unix编程第一次实验课程名:Unix编程环境姓名:学号:班级:实验目的:练习vi,使用UNIX的系统调用和库函数,体会UNIX文件通配符的处理方式以及命令对选项的处理方式。

实验要求:编程实现程序list.c,列表普通磁盘文件(不考虑目录和设备文件等),列出文件名和文件大小。

与ls命令类似,命令行参数可以有0到多个0个参数:列出当前目录下所有文件参数为普通文件:列出文件参数为目录:列出目录下所有文件实现自定义选项r,a,l,h,m以及--r递归方式列出子目录a列出文件名第一个字符为圆点的普通文件(默认情况下不列出文件名首字符为圆点的文件)l后跟一整数,限定文件大小的最小值(字节)h后跟一整数,限定文件大小的最大值(字节)m后跟一整数n,限定文件的最近修改时间必须在n天内显式地终止命令选项程序说明:1)命令选项的存储:struct options{Int aFlag,rFlag,lFlag,hFlag,mFlag; long lPara,hPara;int mPara;};采用struct options结构存储命令的选项,flag 代表有无此选项,例如aFlag为1就表示有“-a”选项,aFlag为0则表示没有“-a”选项。

lPara、hPara和mPara用来存储”-l”、”-h”、”-m”选项所带的参数。

2)命令的读取:struct path{char*path;struct path*next; };采用函数getCommend读取命令,声明一个opEnd变量用来指示选项的输入是否结束。

opEnd初始为0,代表选项的输入没有结束,当遇到“--“之后,opEnd置为1,代表选项输入结束。

在opEnd为0的时候,命令中以”-“开头的,都认为是一个选项,在opEnd为1的时候,命令中以”-“开头的则不作为选项而作为命令的参数。

在识别选项的同时,也要读入命令的参数,命令的参数也就是文件地址,存储在结构struct path所组成的链表当中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

unix实验报告
《Unix实验报告》
摘要:
本实验报告旨在介绍Unix操作系统的基本概念、特点和使用方法。

通过实际操作和案例分析,展示了Unix操作系统的强大功能和灵活性,以及其在计算机科学和工程领域的重要性。

1. 引言
Unix操作系统是一种多用户、多任务的操作系统,具有稳定性高、安全性强、灵活性大等特点。

它被广泛应用于服务器、工作站和个人电脑等领域,为用户提供了丰富的命令行工具和强大的脚本编程环境。

2. Unix操作系统的基本概念
Unix操作系统的基本概念包括文件系统、进程管理、用户管理、权限控制等。

文件系统是Unix操作系统的核心,它采用树状结构组织文件和目录,并提供了丰富的文件操作命令。

进程管理是Unix操作系统的另一个重要特点,它允许多个进程同时运行,并提供了进程控制、调度和通信的功能。

用户管理和权限控制则是Unix操作系统的安全保障,它允许管理员对用户和文件进行灵活的管理和权限设置。

3. Unix操作系统的特点
Unix操作系统具有很多特点,如多用户、多任务、多线程、分时共享、高性能等。

它采用了模块化设计和分层结构,使得系统更加稳定和可靠。

此外,Unix 操作系统还提供了丰富的命令行工具和编程环境,为用户提供了强大的自定义和扩展能力。

4. Unix操作系统的使用方法
Unix操作系统的使用方法主要包括命令行操作、脚本编程、系统管理等。

通过实际操作和案例分析,我们可以了解到如何使用Unix操作系统进行文件操作、进程管理、用户管理、权限控制等。

同时,我们还可以学习到如何使用Shell脚本进行自动化任务的编写和执行,以及如何进行系统管理和性能调优。

5. 结论
Unix操作系统是一种强大而灵活的操作系统,它为用户提供了丰富的命令行工具和编程环境,同时具有稳定性高、安全性强、灵活性大等特点。

通过实际操作和案例分析,我们可以更加深入地了解Unix操作系统的基本概念、特点和使用方法,从而更好地应用它来解决实际问题。

相关文档
最新文档