linux基础实验报告含代码
linux基本操作 实验报告
linux基本操作实验报告Linux基本操作实验报告一、引言Linux操作系统是一种开源的、免费的操作系统,具有稳定性和安全性高、灵活性强等特点,被广泛应用于服务器、嵌入式系统等领域。
本实验报告旨在介绍Linux基本操作的实验过程和所获得的实验结果。
二、实验环境本次实验使用的是Ubuntu 20.04 LTS版本的Linux操作系统。
实验所需的软件工具包括终端、文本编辑器等。
三、实验内容1. 文件和目录操作在Linux中,文件和目录操作是最基本的操作之一。
通过实验,我们学习了如何创建目录、删除目录、查看目录内容等。
通过命令行操作,我们可以轻松地完成这些任务。
2. 文件权限管理Linux操作系统具有严格的文件权限管理机制,通过实验我们了解了如何修改文件权限、查看文件权限等操作。
这些操作可以保护文件的安全性,防止未经授权的访问。
3. 用户和组管理Linux操作系统支持多用户和多组的管理,通过实验我们学习了如何创建用户、删除用户、修改用户密码等操作。
同时,我们还了解了如何创建组、添加用户到组等操作。
4. 进程管理Linux操作系统是一个多任务的操作系统,通过实验我们学习了如何查看系统中运行的进程、杀死进程等操作。
这些操作可以帮助我们更好地管理系统资源。
5. 网络配置Linux操作系统支持网络配置,通过实验我们学习了如何配置IP地址、查看网络连接状态等操作。
这些操作对于服务器和网络设备的配置非常重要。
四、实验结果通过实验,我们成功地完成了Linux基本操作的实验任务。
我们掌握了文件和目录操作、文件权限管理、用户和组管理、进程管理、网络配置等基本操作。
五、实验心得通过本次实验,我深刻体会到了Linux操作系统的强大和灵活性。
相比于其他操作系统,Linux操作系统具有更多的自由度和可定制性,适用于各种不同的应用场景。
通过实验,我不仅学会了基本的Linux操作命令,还了解了Linux操作系统的一些原理和机制。
linux实验报告
linux实验报告实验目的:通过对Linux操作系统的实践,掌握基本的Linux命令和操作方法,了解Linux操作系统的特点和优势。
实验一:Linux环境搭建在实验一中,我们首先需要搭建Linux操作系统的环境。
根据实验指导书的要求,我们选择了Ubuntu作为实验平台。
通过下载Ubuntu镜像文件,并利用虚拟机软件创建一个虚拟机,将镜像文件安装到虚拟机中。
在安装过程中,我们需要选择合适的分区和网络配置等,并设置root用户的密码。
实验二:基本命令的使用在实验二中,我们主要学习了Linux的基本命令的使用方法。
首先,我们了解了Linux文件系统的结构,包括根目录、用户目录、系统目录等。
然后,通过命令行终端进行一系列的实践操作,比如查看文件内容、创建目录、复制文件等。
这些命令的使用不仅提高了我们的工作效率,同时也增强了对Linux操作系统的理解。
实验三:软件安装与卸载实验三主要涉及到Linux的软件安装与卸载。
我们首先学习了使用APT工具进行软件包管理,通过安装命令行界面的方式安装了一些常用的软件,比如文本编辑器、终端工具等。
此外,我们还学习了如何卸载已安装的软件包,清理不需要的文件,以保持系统的整洁性。
实验四:权限管理在实验四中,我们学习了Linux的权限管理机制。
Linux操作系统采用了基于用户和组的权限模型,通过设置文件和目录的权限,实现对文件的读、写、执行的控制。
我们通过实际操作,创建了新的用户和组,并为不同的用户和组设置了不同的权限。
这样,可以有效地保护系统的文件和数据的安全性。
实验五:网络配置与服务搭建在实验五中,我们主要学习了Linux的网络配置和服务搭建。
通过设置网络接口、IP地址和网关等参数,实现了网络的正常连接。
同时,我们还学习了一些常用的网络命令,比如ping、ssh等。
此外,我们尝试搭建了一个简单的Web服务器,通过浏览器访问,可以查看服务器上的网页。
实验六:系统监控和故障恢复在实验六中,我们学习了Linux的系统监控和故障恢复方法。
实验报告linux编程
实验报告linux编程实验报告:Linux编程引言:Linux操作系统是一种开源的操作系统,具有高度的灵活性和可定制性。
在本次实验中,我们将探索Linux编程的基本概念和技术。
通过编写简单的程序,我们将了解Linux系统的工作原理以及如何利用其强大的功能来开发应用程序。
一、Linux操作系统简介Linux操作系统是一种基于Unix的开源操作系统,它由许多不同的组件组成,包括内核、命令行工具和图形界面等。
Linux操作系统具有许多优势,如稳定性、安全性和可扩展性。
它广泛用于服务器、嵌入式设备和个人电脑等领域。
二、Linux编程环境搭建1. 安装Linux操作系统:选择适合自己的Linux发行版,如Ubuntu、Fedora等,并按照官方指南进行安装。
2. 安装开发工具:在Linux系统上进行编程需要安装一些开发工具,如GCC编译器、GNU调试器(GDB)等。
三、Linux编程基础1. Shell脚本编程:Shell是Linux系统的命令行解释器,通过编写Shell脚本可以实现自动化任务和批处理任务。
Shell脚本使用一些特定的语法和命令来执行任务。
2. C语言编程:C语言是Linux系统中最常用的编程语言之一,通过编写C程序可以实现更高级的功能。
C语言提供了丰富的库函数和系统调用,可以与Linux系统进行交互。
四、Linux系统编程1. 进程管理:Linux系统是一个多进程的操作系统,通过编写程序可以创建、管理和控制进程。
可以使用fork()和exec()等系统调用来创建新进程,使用wait()和kill()等系统调用来管理进程。
2. 文件操作:Linux系统中的文件操作是非常重要的一部分,通过编写程序可以实现文件的读取、写入和修改等功能。
可以使用open()、read()和write()等系统调用来进行文件操作。
3. 网络编程:Linux系统支持网络编程,通过编写程序可以实现网络通信的功能。
可以使用socket()和bind()等系统调用来创建和管理网络套接字。
linux基本命令实验报告
linux基本命令实验报告Linux基本命令实验报告一、引言在计算机科学领域,Linux操作系统是一种常见的开源操作系统。
它以其稳定性、安全性和灵活性而闻名,并被广泛应用于服务器和个人计算机。
本实验报告旨在介绍一些常用的Linux基本命令,并通过实验来验证其功能和用法。
二、实验目的1. 熟悉Linux操作系统的基本命令;2. 掌握Linux命令的用法和参数;3. 通过实验验证Linux命令的功能。
三、实验内容1. 文件和目录操作命令1.1 ls命令:用于列出当前目录下的文件和目录。
1.2 cd命令:用于切换当前工作目录。
1.3 mkdir命令:用于创建新目录。
1.4 touch命令:用于创建新文件。
1.5 cp命令:用于复制文件或目录。
1.6 mv命令:用于移动文件或目录。
1.7 rm命令:用于删除文件或目录。
2. 文本处理命令2.1 cat命令:用于查看文件内容。
2.2 grep命令:用于在文件中搜索指定的字符串。
2.3 sed命令:用于对文件进行文本替换和编辑操作。
2.4 awk命令:用于处理和分析文本数据。
3. 系统管理命令3.1 ps命令:用于查看当前系统进程。
3.2 top命令:用于实时监控系统资源占用情况。
3.3 kill命令:用于终止指定的进程。
3.4 ifconfig命令:用于查看和配置网络接口。
3.5 ping命令:用于测试网络连接。
四、实验结果与分析1. 文件和目录操作命令实验结果:通过实验,我们成功地使用了ls命令列出了当前目录下的文件和目录,并使用cd命令切换了工作目录。
我们还创建了新目录和新文件,并使用cp命令和mv 命令进行了文件和目录的复制和移动。
最后,我们使用rm命令成功地删除了文件和目录。
2. 文本处理命令实验结果:我们使用cat命令查看了文件的内容,并使用grep命令在文件中搜索了指定的字符串。
我们还使用sed命令对文件进行了文本替换和编辑操作,并使用awk 命令对文本数据进行了处理和分析。
linux 基本操作 实验报告
linux 基本操作实验报告《Linux基本操作实验报告》Linux操作系统是一款开源的操作系统,具有稳定性高、安全性强等特点,因此在服务器领域得到了广泛的应用。
对于初学者来说,熟悉Linux的基本操作是非常重要的,下面我将分享一份Linux基本操作的实验报告。
实验一:登录和退出Linux系统首先,我们需要了解如何登录和退出Linux系统。
在登录界面输入用户名和密码后,我们就可以进入系统。
在系统中,我们可以使用命令“exit”来退出系统。
实验二:文件和目录操作在Linux系统中,文件和目录的操作是非常重要的。
我们可以使用命令“ls”来查看当前目录下的文件和目录,使用命令“cd”来切换目录,使用命令“mkdir”来创建新的目录,使用命令“rm”来删除文件或目录。
实验三:文件编辑在Linux系统中,我们可以使用命令行工具来编辑文件。
比较常用的编辑器有vi和nano。
我们可以使用命令“vi”或“nano”来打开文件进行编辑,然后保存并退出。
实验四:用户和权限管理Linux系统中的用户和权限管理也是非常重要的。
我们可以使用命令“useradd”来添加新用户,使用命令“passwd”来修改用户密码,使用命令“chmod”来修改文件或目录的权限。
实验五:系统管理最后,我们还可以使用一些命令来管理系统。
比如使用命令“ps”来查看当前系统进程,使用命令“top”来查看系统资源占用情况,使用命令“shutdown”来关闭系统。
通过以上实验,我们可以初步了解Linux系统的基本操作。
当然,Linux系统还有很多其他的功能和命令,需要我们不断学习和实践。
希望大家能够通过实践不断提升自己的Linux操作技能,为今后的工作和学习打下坚实的基础。
linux操作系统实验报告
linux操作系统实验报告第一篇:linux操作系统实验报告Linux实验报告一一、实验步骤及内容1.虚拟机软件的安装(1)先准备虚拟机安装包。
(2)更改安装路径:“D: VMwareVMware Workstationvmware.exe”(3)输入序列号:ctrl+v,在安装过程中不能进行复制剪切操作。
(4)不能重新启动,才能继续安装汉化版D: vmwarevmware workstation2.新建一个虚拟机并进行配置(1)单击新建虚拟机虚拟机的类型选择:典型安装选择客户端操作系统:linux虚拟机的名字及位置根据需要网络类型选择:,桥接。
指定的磁盘容量删除软驱:双击floppy—remove虚拟内存设置:双击memory—1024MB设置linux的安装文件:选择安装镜像文件—指定第一个安装文件—就可以啦!之后会提示安装第二个安装文件就进行选择第二个中间鼠标切换用CTRL+ALT。
3.安装LINUX操作系统(1)要确定鼠标是否在虚拟机的激活状态下:敲回车不需要检测安装文件选择skip进入linux的安装前的配置选项:选择安装的语言—中文简体键盘:--默认鼠标:--默认安装类型:--workstation磁盘分区:--自动分区引导程序:默认网络配置:默认防火墙:无防火墙支持的语言:中文时区:亚洲-上海密码:root123456安装的软件包:全部。
二.在已有虚拟机软件的基础上安装LINUX的技巧。
(1)新建虚拟机—典型安装—linux ,red hat linux---给虚拟机命名,并且指定安装位置d:red hat linux---桥接---10G。
(2)在刚才建立的虚拟机上安装linux系统.(3)配置要安装的linux系统的安装文件iso镜像文件(4)选择配置好linux镜像文件刚才建立的虚拟机,启动虚拟机,开始安装。
三.实验总结充分了解linux系统的安装,学会新建虚拟机,在虚拟机上安装linux系统.和一些简单的技巧并对此门课程有了一定的兴趣。
linux基本命令实验报告
linux基本命令实验报告《Linux基本命令实验报告》在计算机领域,Linux操作系统一直以其高度的自由度和强大的功能而备受推崇。
作为一名计算机爱好者或者从事相关行业的人士,熟练掌握Linux基本命令是必不可少的。
本实验报告将介绍一些常用的Linux基本命令,并通过实验来展示它们的用法和效果。
首先,我们来介绍一些常用的文件操作命令。
在Linux系统中,我们可以使用“ls”命令来列出当前目录下的所有文件和文件夹;使用“cd”命令来切换目录;使用“mkdir”命令来创建新的文件夹;使用“touch”命令来创建新的文件;使用“rm”命令来删除文件或文件夹等。
通过实验,我们可以验证这些命令的功能和用法。
其次,我们将介绍一些常用的系统管理命令。
在Linux系统中,我们可以使用“ps”命令来查看当前系统中正在运行的进程;使用“top”命令来动态查看系统的运行状态;使用“kill”命令来终止某个进程的运行等。
这些命令在系统管理和故障排查中起着至关重要的作用,通过实验,我们可以验证它们的实际效果。
最后,我们将介绍一些常用的网络操作命令。
在Linux系统中,我们可以使用“ping”命令来测试网络连接是否通畅;使用“ifconfig”命令来查看当前系统的网络配置信息;使用“ssh”命令来远程登录其他计算机等。
这些命令在网络管理和故障排查中也扮演着重要的角色,通过实验,我们可以验证它们的实际效果。
通过本次实验,我们深入了解了Linux基本命令的用法和效果,掌握了一些常用的文件操作、系统管理和网络操作命令,为我们在Linux系统下的工作和学习提供了有力的支持。
希望本实验报告能够对大家有所帮助,也希望大家能够继续深入学习和实践,不断提升自己在Linux领域的技能水平。
linux实验报告总结-共10篇
∣inux实验报告总结(共10篇)(Linux实验报告汇总)(一)Shell 编程一、实验目的:1)掌握在Linux下的C编程基本方法。
2)掌握shell编程方法。
3)掌握dialog图形化编程方法。
二、实验内容1、编写能输出“Hello world!”问候语的C程序,并在终端中编译、执行。
要求记录所使用的命令及结果。
#include stdio.hmain()(printf(Hello world!\n);)2、编写一个C程序并设置其在后台执行,其功能是在一段时间后(可自行设置),在屏幕上显示信息:Time for play!,写出相应的程序、命令及结果。
#include stdio.hmain()(int time=0;printf(请输入等待时间(单位:s):);scanf(%d/&time);sleep(time);printf(Time for play!\n);)3、编写C程序,求1到100之间整数的阶乘和,并对程序进行优化。
写出程序、命令和结果。
#include stdio.hmain()int i;double s = l,sum = 0;for( i= l;i= 100;i++)sum+=s*=i;printf( 1到100之间整数的阶乘和:%f\n,sum);printf( 1到100之间整数的阶乘和:%e\n,sum);}4、编写C程序,根据键盘输入的半径求圆面积,要求在命令行周率(P∣=3∙14,PI=3∙14159,PI=3.14159626 等)进行编使用不同的译,写出程序、命令和结果。
#include stdio.hint main()double r = 0.0 , Area = 0.0;printf(请输入半径:);scanf(%lf, &r);Area = PI * r * r;printf(圆面积:%f∖n, Area);)5、编写shell程序sh.l,完成向用户输出“你好!”的问候语。
LINUX基础实验报告
LINUX基础实验报告实验⼀:主要是介绍Linux系统概况,⽆运⾏代码。
实验⼆:Linux的基本操作重要知识点[Tab]使⽤Tab键来进⾏命令补全,Tab键⼀般键盘是在字母Q旁边,这个技巧给你带来的最⼤的好处就是当你忘记某个命令的全称时你可以只输⼊它的开头的⼀部分然后按下Tab键就可以得到提⽰或者帮助完成,当然不⽌补全命令,补全⽬录,补全命令参数都是没问题的。
Ctrl+c键⽤来强⾏终⽌当前程序。
⼀些其他常⽤快捷键按键作⽤Ctrl+d键盘输⼊结束或退出终端Ctrl+s暂定当前程序,暂停后按下任意键恢复运⾏Ctrl+z将当前程序放到后台运⾏,恢复到前台为命令fgCtrl+a将光标移⾄输⼊⾏头,相当于Home键Ctrl+e将光标移⾄输⼊⾏末,相当于End键Ctrl+k删除从光标所在位置到⾏末Alt+Backspace向前删除⼀个单词Shift+PgUp将终端显⽰向上滚动Shift+PgDn将终端显⽰向下滚动通配符是⼀种特殊语句,主要有星号(*)和问号(?),⽤来对对字符串进⾏模糊匹配(⽐如⽂件名,参数名)。
当查找⽂件夹时,可以使⽤它来代替⼀个或多个真正字符;当不知道真正字符或者懒得输⼊完整名字时,常常使⽤通配符代替⼀个或多个真正的字符。
终端⾥⾯输⼊的通配符是由 Shell 处理的,不是由所涉及到命令语句处理的,它只会出现在命令的“参数值”⾥(它不⽤在命令名称⾥,命令不记得,那就⽤Tab补全)。
当 Shell 在“参数值”中遇到了通配符时,Shell 会将其当作路径或⽂件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进⾏代换(路径扩展);否则就将该通配符作为⼀个普通字符传递给“命令”,然后再由命令进⾏处理。
总之,通配符实际上就是⼀种 Shell 实现的路径扩展功能。
在通配符被处理后, Shell 会先完成该命令的重组,然后再继续处理重组后的命令,直⾄执⾏该命令。
Shell 常⽤通配符:字符含义*匹配 0 或多个字符匹配任意⼀个字符[list]匹配 list 中的任意单⼀字符[!list]匹配除list 中的任意单⼀字符以外的字符[c1-c2]匹配 c1-c2 中的任意单⼀字符如:[0-9] [a-z]{string1,string2,...}匹配 sring1 或 string2 (或更多)其⼀字符串{c2..c2}匹配 c1-c2 中全部字符如{1..10}在linux命令⾏中获取帮助使⽤man 命令通常情况下,man ⼿册⾥⾯的内容都是英⽂的,这就要求你有⼀定的英⽂基础。
linux操作基础实验报告
linux操作基础实验报告Linux 操作基础实验报告一、实验目的本次实验的主要目的是让学生熟悉和掌握 Linux 操作系统的基本操作,包括文件和目录管理、用户和权限管理、进程管理以及网络配置等方面,为今后更深入地学习和使用 Linux 系统打下坚实的基础。
二、实验环境本次实验使用的操作系统是 Ubuntu 2004 LTS ,实验在虚拟机中进行,虚拟机软件为 VMware Workstation Pro 16 。
三、实验内容及步骤(一)文件和目录管理1、登录到 Linux 系统后,首先使用`pwd` 命令查看当前工作目录。
2、使用`ls` 命令查看当前目录下的文件和子目录。
3、使用`mkdir` 命令创建一个新的目录,例如`myfolder` 。
4、使用`cd` 命令进入新创建的目录。
5、在新目录中,使用`touch` 命令创建一个新的空文件,例如`myfiletxt` 。
6、使用`vi` 或`nano` 命令编辑该文件,输入一些文本内容并保存。
7、使用`cat` 命令查看文件的内容。
8、使用`cp` 命令将该文件复制到其他目录。
9、使用`mv` 命令将文件移动到其他位置。
10、使用`rm` 命令删除文件和目录,注意使用`r` 选项递归删除非空目录。
(二)用户和权限管理1、使用`sudo adduser` 命令创建一个新用户,例如`newuser` 。
2、使用`sudo passwd newuser` 命令为新用户设置密码。
3、切换到新用户登录,查看当前用户信息,使用`whoami` 和`id` 命令。
4、回到 root 用户,使用`chmod` 命令修改文件或目录的权限,例如给一个文件设置读写执行权限。
5、使用`chown` 命令修改文件或目录的所有者和所属组。
(三)进程管理1、使用`ps` 命令查看当前系统中的进程信息。
2、使用`top` 命令动态查看系统的资源使用情况和进程状态。
3、使用`kill` 命令结束一个指定的进程,需要知道进程的 PID 。
linux系统使用实验报告
linux系统使用实验报告Linux 系统使用实验报告一、实验目的本次实验旨在深入了解和熟悉 Linux 操作系统的基本操作、命令行使用以及系统配置,掌握常见的文件管理、进程管理、用户权限管理等功能,提高对 Linux 系统的实际应用能力。
二、实验环境1、操作系统:Ubuntu 2004 LTS2、实验工具:终端模拟器(Terminal)三、实验内容与步骤(一)系统登录与基本命令1、启动计算机,选择 Ubuntu 操作系统,输入用户名和密码登录系统。
2、打开终端模拟器,熟悉常用的基本命令,如`ls` (列出当前目录下的文件和文件夹)、`cd` (切换目录)、`mkdir` (创建新目录)、`rmdir` (删除空目录)等。
(二)文件管理1、在用户主目录下创建一个名为`experiment` 的文件夹,使用`mkdir experiment` 命令。
2、进入该文件夹,使用`cd experiment` 命令。
3、在`experiment` 文件夹中创建一个文本文件`filetxt` ,使用`touch filetxt` 命令。
4、使用`vi` 或`nano` 编辑器打开`filetxt` 文件,输入一些文本内容,并保存退出。
5、查看文件的内容,使用`cat filetxt` 命令。
6、复制文件,使用`cp filetxt file_copytxt` 命令。
7、移动文件,使用`mv filetxt/`命令将文件移动到上级目录。
8、删除文件,使用`rm file_copytxt` 命令。
(三)进程管理1、运行一个后台进程,例如`ping &`,然后使用`jobs` 命令查看后台进程。
2、将后台进程切换到前台,使用`fg %1` (其中%1 为后台进程的编号)命令。
3、终止进程,使用`Ctrl + C` 组合键终止正在运行的进程。
4、查看系统当前运行的进程,使用`ps aux` 命令。
(四)用户权限管理1、创建一个新用户,使用`sudo adduser username` 命令,其中`username` 为新用户的用户名。
linux 实验报告
linux 实验报告Linux 实验报告一、引言Linux 是一种自由和开放源代码的操作系统,广泛应用于服务器领域。
本次实验旨在通过实际操作和观察,了解 Linux 操作系统的基本特点和使用方法。
二、实验环境本次实验使用的是 Ubuntu 20.04 LTS 版本,该版本是一种基于 Debian 的 Linux 发行版。
实验所需的硬件配置包括一台支持虚拟化技术的计算机和足够的内存和存储空间。
三、实验步骤1. 安装 Linux 操作系统使用虚拟机软件,在计算机上创建一个虚拟机,并选择 Ubuntu 20.04 LTS 镜像文件进行安装。
按照安装向导的提示,完成操作系统的安装过程。
2. 熟悉 Linux 操作界面Linux 操作系统的界面与 Windows 等操作系统有所不同。
在登录后,我们可以看到一个类似命令行的界面,称为终端。
在终端中,可以通过输入命令来执行各种操作。
3. 文件和目录管理Linux 使用一种层次化的文件系统来管理文件和目录。
通过命令行,我们可以创建、删除、复制、移动和重命名文件和目录。
例如,使用 "mkdir" 命令创建一个新目录,使用 "ls" 命令查看当前目录的内容。
4. 用户和权限管理Linux 是一个多用户操作系统,每个用户都有自己的账户和密码。
管理员可以通过命令行创建、删除和管理用户账户。
此外,Linux 还使用权限来控制对文件和目录的访问。
通过修改权限,可以限制用户对特定文件的操作。
5. 网络配置Linux 支持各种网络配置,可以连接到局域网或互联网。
通过命令行,我们可以配置网络接口、设置IP 地址和网关等。
此外,Linux 还提供了一些网络工具,用于测试网络连接和诊断网络问题。
6. 软件安装和管理Linux 拥有丰富的软件资源,可以通过包管理器来安装和管理软件。
在Ubuntu 中,我们可以使用 "apt" 命令来安装、更新和删除软件包。
Linux基本命令的实验报告
实验二Linux基本命令1实验目的:掌握Linux环境下的基本操作命令。
2实验内容:掌握Linux的基本操作命令3实验步骤:3.1 登录和退出<1> 登录服务器系统:注:远程用户可使用telnet或sshtelnet 远程主机IP地址,或ssh 用户名@ssh服务器IP地址Red Hat Enterprise Linux Server release 5.2 (Tikanga)Kernel 2.6.18-92.el5 on an i686login:<2> 在login:后输入用户帐号:如user。
Red Hat Enterprise Linux Server release 5.2 (Tikanga)Kernel 2.6.18-92.el5 on an i686login: ml2010Password:<3> 在password:后输入密码:如果登录失败,说明该帐号已为他人使用,请换帐号重来登录。
Red Hat Enterprise Linux Server release 5.2 (Tikanga)Kernel 2.6.18-92.el5 on an i686login: ml2010Password:Last login: Sat Mar 17 09:45:03 from 218.192.121.139[ml2010@tan ~]$<4> 登录后,输入passwd命令来修改密码。
根据提示输入当前密码,再输入两次新的密码。
[ml2010@tan ~]$ passwdChanging password for user ml2010.Changing password for ml2010(current) UNIX password:New UNIX password:Retype new UNIX password:passwd: all authentication tokens updated successfully.[ml2010@tan ~]$<5> 输入logout命令退出系统。
操作系统实验
操作系统实验报告(一)Linux基本操作与编程(验证性 2学时)1、实验目(de):1)熟悉Linux操作系统(de)环境和使用.2)了解LINUX系统(de)安装过程.(注:表示可选择)3)掌握Linux环境下(de)命令操作.2、实验内容:(1)完成LINUX系统(de)登录,启动终端.进行下列操作并记录结果(要求:结果以屏幕截图表示).1)运行pwd命令,确定你当前(de)工作目录.2)利用以下命令显示当前工作目录(de)内容: ls –l3)运行以下命令: ls –al4)使用mkdir命令建立一个子目录subdir.5)使用cd命令,将工作目录改到根目录(/)上.6)使用ls-l命令列出/dev(de)内容.7)使用不带参数(de)命令cd改变目录,然后用pwd命令确定你当前(de)工作目录是哪里8)使用命令cd ../..,你将工作目录移到什么地方(2)在LINUX下查看你(de)文件.1)利用cd命令,将工作目录改到你(de)主目录上.2)将工作目录改到你(de)子目录subdir,然后运行命令: date > file1 将当前日期和时间存放到新建文件file1中.3)使用cat命令查看file1文件(de)内容.4)利用man命令显示date命令(de)用法: man date5)将date命令(de)用法附加到文件file1(de)后面:man date >> file16)利用cat命令显示文件file1(de)内容.7)利用ls -l file1命令列出文件file1(de)较详细(de)信息.运行ls -l/bin 命令显示目录(de)内容.8)利用ls -l/bin|more命令行分屏显示/bin目录(de)内容.9)利用cp file1 fa命令生成文件file1(de)副本.然后利用ls -l命令查看工作目录(de)内容.10)用cd命令返回你(de)主目录,输入命令ls –l后,解释屏幕显示(de)第一列内容(de)含义.(3)编写能输出“Hello world”问候语(de)C程序,并在终端中编译、执行.要求记录所使用(de)命令及结果.操作步骤:1)在文本编辑器中,编写C程序如下:include ""main(){ printf("hello"); }2) 在终端中,用gcc命令进行编译,生成可执行文件a.gcc –o a3) 在终端中执行a (de)命令如下:./a(4)编写一个程序:显示信息“Time for Play”,并能在后台运行一段时间(自定义)后,弹出信息提醒用户.要求记录所使用(de)命令及结果.(提示:使用sleep(s)函数)3、实验结果分析:(对上述实验内容中(de)各题结果,进行分析讨论.并回答下列问题)(1)进程包括哪些特征间断性, 失去封闭性, 不可再现性, 动态性, 并发性, 独立性(2)在Linux中,如何设置前、后台命令和程序(de)执行命令后直接加 & ,这个命令就在后台执行;正在运行(de)命令,使用Ctrl+z ,就挂起; jobs命令,可以现实后台,包括挂起(de)命令;使用 bg %作业号就可以把挂起(de)命令在后台执行;使用 fg %作业号就可以把后台命令调到前台(3)你所使用(de)Linux系统(de)内核版本是多少用什么命令查看内核版本目前你所了解(de)各发行版本(de)情况如何Linux version (gcc version (Red Hat (GCC) ) 1 SMP Tue Jan 2911:48:01 EST 2013(4)你对Linux系统有什么认识linux是一款开放性(de)操作系统,也可以说成是开放(de)源代码系统,这些代码可以完全自由(de)修改可以再任何(de)计算机上去运行它,也就是“可移植性”,其次大家都知道,linux是由UNIX(de)概念所开发出来(de),所以它也继承了UNIX(de)稳定和效率(de)特点4、总结:你对本次实验有什么体会或看法.操作系统实验报告(二)文件访问权限设置与输入输出重定向(2学时)一、实验目(de)1、掌握linux(de)文件访问权限设置.2、熟悉输入输出重定向和管道操作.二、实验内容1、启动进入红帽linux系统2、设置文件权限:在用户主目录下创建目录test,进入test目录,用vi 创建文件file1,并输入任意(de)文字内容.用ls -l显示文件信息,注意文件(de)权限和所属用户和组.对文件file1设置权限,使其他用户可以对此文件进行写操作:chmod o+w file1.用ls -l查看设置结果.取消同组用户对此文件(de)读取权限:chmod g-r file1.查看设置结果.用数字形式来为文件file1设置权限,所有者可读、可写、可执行;其他用户和所属组用户只有读和执行(de)权限:chmod 755 file1.设置完成后查看设置结果.3、输入、输出重定向和管道(1) 输出重定向用ls命令显示当前目录中(de)文件列表:ls –l.使用输出重定向,把ls命令在终端上显示(de)当前目录中(de)文件列表重定向到文件list中:ls –l > list.查看文件list中(de)内容,注意在列表中会多出一个文件list,其长度为0. 这说明shell是首先创建了一个空文件,然后再运行ls命令:cat list.再次使用输出重定向,把ls命令在终端上显示(de)当前目录中(de)文件列表重定向到文件list中.这次使用追加符号>>进行重定向:ls –l >> list.查看文件list(de)内容,可以看到用>>进行重定向是把新(de)输出内容附加在文件(de)末尾,注意其中两行list文件(de)信息中文件大小(de)区别:cat list.重复命令ls –l > list.再次查看文件list中(de)内容,和前两次(de)结果相比较,注意list文件大小和创建时间(de)区别.(2) 管道who |grep root命令(de)结果是命令ls –l |wc –l结果是4、退出linux系统操作步骤:在主菜单上选择“注销” ->关闭计算机.三、实验结果与讨论(根据实验结果回答下列问题)1. 文件(de)权限如下:-rw-r—r-- 1 root root 19274 Jul 14 11:00回答:-rw-r—r-- (de)含义是什么答:是LINUX/FTP(de)简易权限表示法:对应于本用户-所在组-其他人(de)权限,每一个用执行(x)-读取(r)-写入(w)如本题若是说自己可以读取写入不可以执行,所在组和其他人只能读取.2、文件(de)所有者添加执行权限(de)命令是答:chmod u+x 、赋予所有用户读和写文件权限(de)命令是四、答:chmod a+w,a+r 个人体会(你对本次实验有什么体会或看法)操作系统实验报告(三)文件和目录管理一、实验目(de)1) 掌握在Linux系统下(de)文件和文件系统(de)概念及命令;2) 掌握Linux系统下(de)目录操作.二、实验内容1. 进入linux终端后,用命令(de)操作结果回答下列问题:1)vi(de)三种工作模式是其中不能进行直接转换(de)是什么模式到什么模式命令模式、文本输入模式、末行模式命令模式不能直接到末行模式2)在vi中退出时,保存并退出(de)操作步骤是Ese:wq3)用vi 创建myfile1文件,并在其中输入任意文字一行,创建myfile2文件,任意输入文字3行.请问执行命令:cat <myfile1 >myfile2 后,myfile2中还有几行内容该命令(de)作用是用命令操作验证你(de)回答.myfile2中还有1行内容该命令(de)作用是替换myfile(de)内容4)请用至少两种不同(de)命令创建一个文本文件(),在其中写入“我是2014级学生,我正在使用Linux系统.”,记录命令及执行结果.1、Vi创建2、5)用___pwd________命令可查看所创建文件(de)绝对路径,写出它(de)绝对路径__/root_________;用___ls -l________命令查看该文件(de)类型及访问权限,其访问权限(数字和字母)分别是多少__-rw- r- - r- - 6 4 4______________.6)若将该文件(de)访问权限修改为:所有者有读写权限;其他用户只读;同组用户可读写,请写出命令,并记录结果.7)查找my开头(de)所有文件,可___find my_________命令,写出命令并记录结果8)在/home下创建子目录user,并在其中创建2个文件,名为file1和file2,file1(de)内容是/root目录(de)详细信息;file2(de)内容任意,最后将这两个文件合并为file3文件,请先写出命令序列,并在终端中验证,记录结果.2. 文件及目录操作,写出操作所使用(de)命令,并记录结果.在终端中完成下列命令操作,并记录结果在root用户主目录下创建一个mydir子目录和一个myfile文件,再在mydir下建立d1和d2两个子目录.查看mydir和myfile(de)默认权限查看当前myfile和mydir(de)权限值是多少将myfile文件分别复制到root 和dd1(de)主目录中将root主目录中(de)myfile改为yourfile通过从键盘产生一个新文件并输入I am a student查找文件是否包含student字符串三、实验结果与分析,回答下列问题:1、能够创建文件(de)命令有哪些vi 和cat>name2、能够查看当前目录(de)绝对路径(de)命令是pwd3、Linux中按用户属性将用户分成哪些类型根据文件(de)访问权限,用户又被分成哪些类型能够查看文件访问权限(de)命令是用户同组其他可读可写可执行 cat f1四、小结(本次实验(de)体会或小结)操作系统实验报告(四)作业调度算法模拟(验证性2学时)1、实验目(de):1)掌握作业调度(de)主要功能及算法.2)通过模拟作业调度算法(de)设计加深对作业管理基本原理(de)理解.3)熟悉Linux环境下应用程序(de)编程方法.2、实验内容:(1)作业调度算法(FCFS)编程模拟:编制一段程序,对所输入(de)若干作业,输入、输出数据样例如下表所示.按FCFS算法模拟调度,观察、记录并分析调度(de)输出结果情况.输入输出样例1:FCFS算法include <>include <>define SIZE 5struct Job_type{char no[2]; o,&job[i].tb,&job[i].tr);printf("输入作业顺序:\n");for(i=0;i<SIZE;i++)printf("\t%s\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr);}void fcfs(){ int i,j,t=0,tw=0,tt=0;for(i=0;i<SIZE-1;i++)for(j=i+1;j<SIZE;j++)if(job[i].tb>job[j].tb){x=job[i];job[i]=job[j];job[j]=x;}printf("FCFS调度结果:\n");printf("开始时间作业号到达时间运行时间完成时间等待时间周转时间\n");for(i=0;i<SIZE;i++){printf(" %d",t);t=t+job[i].tr;tw=t-job[i].tb-job[i].tr; b; o,job[i].tb,job[i].tr,t,tw,tt);}}void main(){load();fcfs();}(2)作业调度算法(SJF)编程模拟:编程实现由短作业优先算法,分别用下面两组输入、输出数据样例进行模拟,观察分析运行结果.输入输出样例2:SJF算法输入输出A 0 4B 0 3C 0 5D 0 2E 0 1A 0 6 10 10B 0 3 6 6C 0 10 15 15D 0 1 3 3E 0 0 1 1include <>include <>define SIZE 5struct Job_type{char no[2]; o,&job[i].tb,&job[i].tr);printf("输入作业顺序:\n");for(i=0;i<SIZE;i++)printf("\t%s\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr);}void sjf()n=i; pl[i].pfn=ERR;}for(i=1;i<total;i++){ pfc[i-1].next=&pfc[i];pfc[i-1].pfn=i-1;}pfc[total-1].next=NULL;pfc[total-1].pfn=total-1;freepf_head=&pfc[0];}void FIFO(int total){ int i,j;pfc_type p,t;initialize(total);busypf_head=busypf_tail=NULL;for(i=0;i<page_len;i++){if(pl[page[i]].pfn==ERR){ diseffect+=1;if(freepf_head==NULL){p=busypf_head->next;pl[busypf_head->pn].pfn=ERR; freepf_head=busypf_head;freepf_head->next=NULL;busypf_head=p;}p=freepf_head->next;freepf_head->next=NULL;freepf_head->pn=page[i];pl[page[i]].pfn=freepf_head->pfn;if(busypf_tail==NULL)busypf_head=busypf_tail=freepf_head; else{ busypf_tail->next=freepf_head;busypf_tail=freepf_head;}freepf_head=p;}}printf("FIFO:%d",diseffect);}main(){ int i; int k;printf(“请输入页(de)引用序列:\n”); for(k=0;k<page_len;k++)scanf("%d",&page[k]);for(i=4;i<=7;i++){printf("%2d page frames ",i);FIFO(i);}参考程序LRU算法,略三、实验结果分析:(对上述实验各题所使用(de)原始数据、调试数据与状态(包括出错)及最终结果进行记录并分析.)随着块数(de)增加,缺页数目也减少,4个实验中3个实验(de)块数增加到了5以后,即使块数再增加,缺页数目也是保持不变.只有实验4,块数增加到7以后,缺页数目又再次减少了四、总结:你对本次实验有什么体会或看法.。
Linux实验报告(实验四)shell编程实验
Linux实验报告(实验四)shell编程实验实验四 shell编程实验(二)班级:姓名:学号:上机时间:年月日任课教师:实验教师:实验成绩:一、实验目的综合Linux常用命令和vi编辑器的使用,熟练掌握shell脚本编程。
二、实验注意事项实验室内的实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。
要求每个同学登录后系统后,要在自己的家目录下创建一个属于自己的子目录(以自己(拼音)名字或学号)。
以后所有工作都要在自己的目录内进行。
建议以后的实验都在同台计算机上做,这样可以保持连续性。
三、实验内容1. 编写一个脚本,求斐波那契数列的前10项及总和。
num1=1num2=1echo -n “$num1+$num2”sum=2for((i=1;i<=8;i++))dotmp=$(expr $num1 + $num2)echo -n “+$tmp”((num1=num2))((num2=tmp))sum=$(expr $sum + $tmp)doneecho “=$sum”2.编写一个脚本,求一个数的逆序。
echo -n please input num:read numecho -n The num iswhile [ $num -gt 0 ]dosd=$(($num % 10))echo -n "$sd"num=$(($num/10))doneecho3.设计一个Shell程序,在用户主目录下建立一个userdata目录,在此目录下再建立5个目录,即user1~user5,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。
(注意:最后删除自己所建立的目录,恢复原样,以便后面同学做此实验)mkdir -m 754 /home/userdatai=1temp=/home/userdata/userwhile[ $i -le 5 ]domkdir -m 754 $temp$ilet”i=i+1”#done4.用Shell编程,判断一文件是不是普通文件,如果是将其拷贝到/home/student/test 目录下,用命令查看test目录内容,最后再删除test目录。
linux 常用命令及基本操作实验报告
linux常用命令及基本操
作实验报告
一、实验要求:
熟悉linux操作界面
手动配置IP地址
掌握linux命令的一般使用方法
掌握linux文件和目录的操作命令
二、实验过程:
1.熟悉linux操作界面:
(1)我们从终端打开命令行:
(2)通过init 3命令进入命令行界面:
(3)命令行界面的登录和切换:
(4)通过init 5命令回到图形化界面:
(5)图形化界面的切换:
2.手动配置IP地址
(1)编辑连接:
(2)编辑网卡:
(3)重启网卡:
(4)网卡信息查询:
3.掌握linux命令的一般使用方法(1)帮助类命令的使用:
(2)时间查询命令:
(3)月历及万年历命令的使用:
(5)计算器:
(4)ctrl+c的妙用:
(6)命令解释命令的使用:
(7)文件字节数查询:
(8)主机名查询及重命名:
(9)uname的使用:
(10)清屏:
(11)whoami/w/who:
(12)ls及其家族成员比较:
(13)新建目录和删除目录:
(14)cd的妙用:
4.掌握linux文件和目录的操作命令(1)df的用法:
(2)搜索与筛选:
(3)cat/more/less在文件显示中的优劣:
(4)mount挂载功用:
(5)复制和移动:
(6)rm及家族成员的使用方法:
(7)touch的新建功能:
(8)head和tail在文件内容查看中的方法:
(9)文件权限操作命令的使用:
(10)软连接和硬连接:
实验报告完成。
linux基础实验报告含代码
Linux基础实验目录实验一 (3)实验二 (4)实验三 (6)实验四 (9)实验五 (11)实验六 (14)实验七 (16)实验一螺旋矩阵1.熟悉linux下c程序编写。
2.掌握Makefile编写方法。
二、实验环境和工具Red Hat Linux三、实验流程1.编写螺旋矩阵程序2.编写Makefile文件四、实验结果五、实验心得通过这次实验,我熟悉了linux下c语言程序的编写,掌握了vi的一些常用操作,学会了使用gcc命令和makefile文件两种方法编译程序。
同时也使我熟悉了linux里常用命令的使用,还有,学会了挂载U盘的方法,可以很方便的往linux里传送文件。
六、关键代码Makefile 文件CC=gccEXEC=juzhenOBJS=all:$(EXEC)$(EXEC):$(OBJS)$(CC) -o $@ $(OBJS)clean:-rm -f $(EXEC) $(OBJS)实验二添加、删除用户1.设计一个shell程序,分组批量添加用户。
2.再设计一个批量删除用户的shell程序。
二、实验环境和工具Red Hat Linux三、实验流程1.编写shell程序2.修改文件权限chmod +x addusers3.运行脚本四、实验结果添加用户:删除用户:五、实验心得通过本次实验,我了解了shell脚本编程的方法和其语法规则。
掌握了使用shell脚本程序添加、删除用户的方法。
需要注意的是:shell脚本直接用vi编写,要特别注意空格。
六、关键代码添加用户:删除用户:实验三驱动螺旋矩阵一、实验目的1.掌握驱动模块的建立、插入和删除。
2.利用驱动模块实现测试程序输入矩阵的行和列,驱动程序生成相应的字母螺旋矩阵。
二、实验环境和工具Red Hat Linux三、实验流程1.编写驱动程序。
2.编写测试程序。
3.编写Makefile文件。
4.编译程序,插入驱动模块,运行驱动程序,观察运行结果,删除驱动模块,再次运行测试程序,观察运行结果。
linux系统基本操作实验报告
竭诚为您提供优质文档/双击可除linux系统基本操作实验报告篇一:linux操作系统指令实验报告实验一Linux的基本操作和常用命令的使用一、实验目的1.学会安装Linux操作系统2.掌握Linux系统的一些基本操作3.掌握常用Linux命令的使用方法4.了解Linux命令中参数选项的用法和作用二、实验环境1.Linux软件和计算机三、实验内容或步骤1.安装Linux操作系统,并进行相关配置。
2.基本操作和常用命令。
(一).文件操作命令(1)查看文件与目录用以下命令查看文件与目录:ls/usr/binls–ldir(2)显示文件内容命令(cat)设当前目录下包括两个文件text1、text2,用以下列命令了解cat命令的使用:cattext1cattext1text2>text3cattext3|more(3)文件复制命令(cp)了解cp命令的功能和使用技巧,并注意它们的区别:cp/root/*/tempcpreadmetext4cp–r/root/*/temp(带目录复制)cp/root/.[a-z]*/temp(复制所有小写字母开头的隐藏文件)(4)文件改名命令(mv)了解mv命令的功能和使用方法,并注意各命令的区别:mvtext4newtextmvnewtext/home(5)删除文件命令(rm)了解rm命令的功能和使用方法:rmnewtext(二).目录操作命令的使用(1)改变当前目录命令(cd)和显示当前目录命令(pwd)掌握cd命令的功能和使用,并了解以下各命令的区别:cd/rootcd..(返回上一级目录)cd(返回到用户目录内)-1-pwd(显示当前目录在文件系统层次中的位置)(2)建立子目录命令(mkdir)在用户目录下创建如图5-4所示的目录结构。
(3)删除子目录命令(rmdir)在图5-4所建立的目录结构中,删除a1和b1目录。
命令如下:rmdir/home/x/b1rm–r/home/x/a1rm–rf/home/x/a1注意:可选项-r和-f的作用。
linux基本操作 实验报告
linux基本操作实验报告《Linux基本操作实验报告》摘要:本实验报告旨在介绍Linux操作系统的基本操作,包括文件管理、用户管理、权限管理等内容。
通过实际操作,掌握Linux操作系统的基本技能,为今后的深入学习和应用打下基础。
一、实验目的1. 了解Linux操作系统的基本概念和特点;2. 掌握Linux操作系统的基本命令和操作;3. 熟悉Linux操作系统的文件管理、用户管理、权限管理等功能。
二、实验环境本次实验使用的是Ubuntu 20.04 LTS版本的Linux操作系统。
三、实验内容1. 文件管理在Linux操作系统中,文件管理是非常重要的一部分。
通过命令行可以进行文件的创建、复制、移动、删除等操作。
在本次实验中,我们将学习如何使用命令行进行文件管理操作,并掌握常用的文件管理命令。
2. 用户管理Linux操作系统是一个多用户的操作系统,因此用户管理也是非常重要的一部分。
在本次实验中,我们将学习如何创建用户、修改用户密码、删除用户等操作,并掌握常用的用户管理命令。
3. 权限管理在Linux操作系统中,权限管理是非常严格的。
每个文件和目录都有自己的权限设置,包括读、写、执行等权限。
在本次实验中,我们将学习如何使用命令行进行权限管理操作,并掌握常用的权限管理命令。
四、实验步骤1. 文件管理实验步骤- 创建一个新的文件夹:mkdir test- 进入新的文件夹:cd test- 创建一个新的文件:touch file.txt- 复制文件到另一个文件夹:cp file.txt /tmp- 移动文件到另一个文件夹:mv file.txt /tmp- 删除文件夹及其内容:rm -rf test2. 用户管理实验步骤- 创建一个新的用户:sudo adduser newuser- 修改用户密码:sudo passwd newuser- 删除用户:sudo deluser newuser3. 权限管理实验步骤- 查看文件权限:ls -l- 修改文件权限:chmod 755 file.txt五、实验总结通过本次实验,我们学习了Linux操作系统的基本操作,包括文件管理、用户管理、权限管理等内容。
linux操作系统实验报告
linux操作系统实验报告Linux 操作系统实验报告一、实验目的本次实验的主要目的是深入了解和熟悉Linux 操作系统的基本操作、命令行使用、文件系统管理以及进程管理等方面的知识和技能。
通过实际操作和实践,提高对 Linux 操作系统的掌握程度,为今后在相关领域的学习和工作打下坚实的基础。
二、实验环境本次实验使用的是虚拟机软件 VirtualBox 安装的 Ubuntu 2004 LTS操作系统。
虚拟机配置为 2GB 内存,20GB 硬盘空间。
实验在Windows 10 操作系统的主机上进行。
三、实验内容及步骤(一)用户和权限管理1、创建新用户使用`sudo adduser <username>`命令创建新用户,例如创建用户名为`testuser` 的新用户。
2、设置用户密码使用`sudo passwd <username>`命令为新用户设置密码。
3、切换用户使用`su <username>`命令切换到新用户。
4、用户权限管理修改`/etc/sudoers` 文件,为新用户赋予特定的权限,例如允许执行特定的管理员命令。
(二)文件和目录操作1、查看文件和目录使用`ls` 命令查看当前目录下的文件和目录,使用`ls l` 命令查看详细信息,包括文件权限、所有者、大小和修改时间等。
2、创建、删除文件和目录使用`touch <filename>`命令创建新文件,使用`mkdir <directoryname>`命令创建新目录。
使用`rm <filename>`命令删除文件,使用`rmdir <directoryname>`命令删除空目录,使用`rm r <directoryname>`命令删除非空目录。
3、复制、移动文件和目录使用`cp <source> <destination>`命令复制文件或目录,使用`mv <source> <destination>`命令移动文件或目录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux基础实验目录实验一 (3)实验二 (4)实验三 (6)实验四 (9)实验五 (11)实验六 (14)实验七 (16)实验一螺旋矩阵一、实验目的1.熟悉linux下c程序编写。
2.掌握Makefile编写方法。
二、实验环境和工具Red Hat Linux三、实验流程1.编写螺旋矩阵程序2.编写Makefile文件四、实验结果五、实验心得通过这次实验,我熟悉了linux下c语言程序的编写,掌握了vi的一些常用操作,学会了使用gcc命令和makefile文件两种方法编译程序。
同时也使我熟悉了linux里常用命令的使用,还有,学会了挂载U盘的方法,可以很方便的往linux里传送文件。
六、关键代码Makefile 文件CC=gccEXEC=juzhenOBJS=juzhen.oall:$(EXEC)$(EXEC):$(OBJS)$(CC) -o $@ $(OBJS)clean:-rm -f $(EXEC) $(OBJS)实验二添加、删除用户一、实验目的1.设计一个shell程序,分组批量添加用户。
2.再设计一个批量删除用户的shell程序。
二、实验环境和工具Red Hat Linux三、实验流程1.编写shell程序2.修改文件权限chmod +x addusers3.运行脚本四、实验结果添加用户:删除用户:五、实验心得通过本次实验,我了解了shell脚本编程的方法和其语法规则。
掌握了使用shell脚本程序添加、删除用户的方法。
需要注意的是:shell脚本直接用vi编写,要特别注意空格。
六、关键代码添加用户:删除用户:实验三驱动螺旋矩阵一、实验目的1.掌握驱动模块的建立、插入和删除。
2.利用驱动模块实现测试程序输入矩阵的行和列,驱动程序生成相应的字母螺旋矩阵。
二、实验环境和工具Red Hat Linux三、实验流程1.编写驱动程序。
2.编写测试程序。
3.编写Makefile文件。
4.编译程序,插入驱动模块,运行驱动程序,观察运行结果,删除驱动模块,再次运行测试程序,观察运行结果。
四、实验结果1.插入驱动模块后测试程序运行结果:2.删除驱动模块后测试程序运行结果:五、实验心得通过这次实验,我对linux下驱动程序的工作原理有了一定的了解,认识了内核态和用户态的区别。
Linux以文件的形式定义系统的驱动程序,驱动程序不仅仅是内核的一部分,也是连接用户态和内核态之间的桥梁。
我学会了简单的驱动程序的开发和测试方法。
本次实验我遇到的难点有以下几点:1.实验要求输出一个字母螺旋矩阵,测试程序应当定义一位数组还是二维数组。
解决方法:使用一维数组,编程简单,在输出是将一维数组以二维形式输出即可。
2.驱动程序中如何实现螺旋矩阵。
解决方法:在驱动程序中另写一个螺旋矩阵函数,在ssize_t_evan_write函数里调用。
六、关键代码1.驱动程序:static char drv_buf[1024];static ssize_t evan_write(struct file *filp, char *buffer, size_t count){int row;int col;copy_from_user(drv_buf,buffer,count);row=(int)(drv_buf[0]);col=(int)(drv_buf[1]);printk("user write data to drivers!\n");solve(row,col);}3.测试程序:int main(){……printf("please input two integer:\n");scanf("%d%d",&row,&col);buf[0]=(char)(row);buf[1]=(char)(col);write(fd,buf,2);printf("Read %d bytes data from /dev/evan \n",row*col); read(fd,buf,row*col);showbuf(buf,row,col);ioctl(fd,1,NULL);close(fd);return 0;}void showbuf(char * buf,int row,int col){int i;for(i=0;i<row*col;i++){if(i!=0&&i%col==0){printf("\n");}printf("%4c",buf[i]);}printf("\n");}实验四哲学家进餐问题一、实验目的1.理解linux多线程机制。
2.使用多线程机制编程实现哲学家进餐模型,诠释死锁和避免死锁的办法。
二、实验环境和工具Red Hat Linux三、实验流程1.明确哲学家进餐问题。
2.编程实现。
3.编写Makefile文件。
4.运行调试。
四、实验结果五、实验心得通过本次实验,我了解了Linux下多线程机制,线程是系统能够独立调度和分配的最基本单位,可以理解为是进程基础上的进一步细化。
一个程序中同时运行多个线程来完成不同的任务,称之为多线程。
哲学家进餐问题是经典的同步问题,我先是去网上查找相关资料,找到了程序源码,一开始编译不通过,报告“段错误”,是因为代码中有些字符不规范,修改后编译通过。
经运行测试,程序中缺少延时机制,无法得出程序运行结果,我在程序里加了sleep语句后程序结果可读性大大改善。
从这个实验我也认识到培养在网上检索资料的能力的重要性。
六、关键代码注:加粗部分为修改部分sem_t chopsticks[PEOPLE_NUM];pthread_mutex_t mutex;void *philosopher(void *arg){int state = THINKING;int right = (id + 1) % PEOPLE_NUM;int left = (id + PEOPLE_NUM - 1) % PEOPLE_NUM;while(1){switch(state){case THINKING:sleep(1);……break;case HUNGRY:sleep(2);strcpy(ptrState,"Hungry");pthread_mutex_lock(&mutex);if(sem_wait(&chopsticks[left]) == 0){//非阻塞状态if(sem_wait(&chopsticks[right]) == 0){//非阻塞pthread_mutex_unlock(&mutex);state = EATING;}else{state = THINKING;sem_post(&chopsticks[left]);//释放请求的得到的left筷子 }}break;case EATING:sleep(3);sem_post(&chopsticks[left]);sem_post(&chopsticks[right]);……break;}}pthread_exit((void*)0);}int main(){pthread_t tid[PEOPLE_NUM];pthread_mutex_init(&mutex,NULL);for(i = 0 ; i < PEOPLE_NUM ; i ++){sem_init(&chopsticks[i],0,1);}for(i = 0 ; i < PEOPLE_NUM ; i ++){pthread_create(&tid[i],NULL,philosopher,(void*)i); ;创建五个哲学家线程}for(i = 0 ; i < PEOPLE_NUM ; i ++){pthread_join(tid[i],NULL); ;等待线程执行结束}return 0;}实验五 shell模拟程序的设计与实现一、实验目的1.理解shell的概念及其执行过程。
2.实现一个交互式shell,具备的功能至少有:打印提示符,获取用户输入指令;解析指令;寻找命令文件,执行指令。
二、实验环境和工具Red Hat Linux三、实验流程1.明确程序的功能要求。
2.逐步实现程序功能:打印提示符、获取用户输入命令、解析命令、寻找命令文件、执行命令。
代码见关键代码部分。
四、实验结果五、实验心得本次实验,让我学会了简单的shell模拟器的编程实现,理解了shell模拟器的工作原理和工作过程。
Shell是操作系统的用户界面,提供了用户与内核进行交互操作的接口,负责接收用户命令并把其送入内核去执行。
通过shell,用户可以方便的管理计算机资源。
Shell模拟器不断的接收用户指令并解析执行,直到用户关闭它,所以程序中要有一个while(1)循环。
实验中我只实现了对几个常用指令的解释执行,基本模拟了shell的实现。
我感觉本次试验的难点是:如何将用户输入的指令与系统中的指令正确对应;字符串操作不熟悉,一些函数不知道。
C语言提供了strncasecmp函数进行字符串比对,然后根据返回值进行相应的指令处理即可。
六、关键代码while(1) {path=get_current_dir_name();memset(cmd, 0, 1024);printf("@zhangyu %s>$ ",path);fgets(cmd, 1000, stdin);/*接受用户输入,命令最长1000个字符*/cmd[strlen(cmd) - 1] = 0;/*去掉输入的回车符*/b = transcmd(cmd);/*分析取得用户命令字*/switch(b){case 9:/*如果是Bye*/printf("See you later!\n");break;case 1:/*切换工作目录*/if(chdir(cmd + 3) != 0) {printf("chdir(%s) error!%s\n", cmd + 3, strerror(errno));}break;case 2:/*ls命令*/case 7:/*cp命令*/case 8:/*pwd命令*/system(cmd);break;case 3:/*pid命令*/printf("%d\n", getpid());break;case 4:/*rm命令*/remove(cmd + 3);break;case 5:/*mkdir命令*/mkdir(cmd + 6, 0755);break;case 6:/*mv命令*/p = strchr(cmd + 3, ' ');*p = 0;rename(cmd + 3, p + 1);break;case 0:/*不能识别的命令*/printf("Bad command, try again! All aviable commands are:\nlogout cd ls pwd pid rm mkdir mv cp\n", getpid());break;}}}char transcmd(char * s){if(!strncasecmp(s, "cd", 2)) return 1;else if(!strncasecmp(s, "ls", 2)) return 2;else if(!strncasecmp(s, "pid", 3)) return 3;else if(!strncasecmp(s, "rm", 2)) return 4;else if(!strncasecmp(s, "mkdir", 5)) return 5;else if(!strncasecmp(s, "mv", 2)) return 6;else if(!strncasecmp(s, "cp", 2)) return 7;else if(!strncasecmp(s, "pwd", 3)) return 8;else if(!strncasecmp(s, "bye",3)) return 9;else return 0;}实验六系统调用一、实验目的1.理解系统调用过程2.学会自己添加系统调用二、实验环境和工具Red Hat Linux三、实验流程1.决定系统调用名字,本实验中叫__NR_print_info,内核中系统调用实现程序的名字:sys_print_info。