实验七 shell编程实验

合集下载

Shell编程试验

Shell编程试验

实验编号:四川师大LINUX程序设计实验报告 2012年10月15日计算机科学学院2010级 1班实验名称:Shell编程试验姓名:杨军学号: 2010110140 指导老师:张莹实验二Shell编程试验1.目的要求(1)熟悉Shell环境和常用功能;(2)掌握Shell基本语法结构,并能编写简单的Shell程序。

(3)独立完成Shell课程设计——CD Manager2.实验内容(1)命令补齐功能●用date命令查看系统当前时间,在输入da后,按tab键,让shell自动补齐命令的后半部分。

●用mkdir命令创建新的目录。

首先输入第一个字母m,然后按tab键,由于以m开头的命令太多,shell会提示是否显示全部的可能命令,输入n。

●再多输入一个字母k,按tab键,让shell列出以mk开头的所有命令的列表。

●在列表中查找mkdir命令,看看还需要多输入几个字母才能确定mkdir这个命令,然后输入需要的字母,再按tab键,让shell补齐剩下的命令。

●最后输入要创建的目录名,按回车键执行命令。

●多试几个命令利用tab键补齐。

(2)命令别名功能●输入alias命令,显示目前已经设置好的命令的别名。

●设置别名ls为ls –l,以长格形式显示文件列表:#alias ls=‗ls -l‘。

●显示别名ls代表的命令,确认设置生效:#alias ls。

●使用别名ls显示当前目录中的文件列表。

●在使定义的别名不失效的情况下,使用系统的ls命令显示当前目录中的命令列表:#\ls。

●删除别名ls:#unalias ls。

●显示别名ls,确认删除别名已经生效:#alias ls。

●最后再用命令ls 显示当前目录中的文件列表。

●写出定义别名cd为cd /etc的命令alias cd =‘cd/etc‘ 。

(3)输出重定向●用ls命令显示当前目录中的文件列表:#ls –l。

●使用输出重定向,把ls命令在终端上显示的当前目录中的文件列表重定向到文件list中:#ls –l > list。

Shell编程实验指导

Shell编程实验指导

Shell编程实验一、实验目的了解 Shell 的作用和主要分类。

了解 Bash的一般语法规则。

练习编写简单的shell程序。

二、实验内容1.Shell变量的定义及其使用。

2.位置参数和环境变量。

3.Shell中的特殊字符。

4.条件判断结构与循环结构5.函数的定义和使用三、预备知识1、LINUX环境下常用命令和VI编辑器的操作。

2、了解Shell作用和主要分类等基础知识。

四、实验设备及工具软件:PC机操作系统REDHAT ELAS4环境五、实验原理及说明Shell是Linux系统中一个重要的层次,它是用户与系统交互作用的界面。

在介绍Linux 命令时,Shell都作为命令解释程序出现:它接收用户打入的命令,进行分析,创建子进程实现命令所规定的功能,等子进程终止工作后,发出提示符。

这是Shell最常见的使用方式。

Shell 除了作为命令解释程序以外,还是一种高级程序设计语言,它有变量,关键字,有各种控制语句,如if, case, while, for 等语句,有自己的语法结构。

利用Shell程序设计语言可以编写出功能很强、但代码简单的程序,特别是它把相关的Linux命令有机地组合在一起,可大大提高编程的效率,充分利用Linux系统的开放性能,设计出适合自己要求的命令。

六、实验步骤语法练习1.语法练习(1) Shell变量Shell有两种变量:环境变量和临时变量。

在Shell脚本中临时变量又分为两类:用户定义的变量和位置参数。

用户定义的变量用户定义的变量是最普遍的Shell变量,变量名是以字母或下化线打头的字母、数字和下线符序列,并且大小写字母意义不同。

变量名的长度不受限制。

定义变量并赋值的一般形式是:变量名=字符串例如,MYFILE=/usr/meng/ff/m1.ca.定义并显示变量的值在程序中使用变量的值时,要在变量名前面加上一个符号“$”。

这个符号告诉Shell,要读取该变量的值。

练习1.1:$ dir=/usr/mengqc/file1$ echo $ dir/usr/mengqc/file1$ echo dirdir$ today=Sunday$ echo $ today $ TodaySunday$ str="Hapy New Year ! "$ echo "Wish You $str"Wish You Happy New Year !b.read命令作为交互式输入手段,可以利用read命令由标准输入(即键盘)上读取数据,然后赋给指定的变量。

Shell编程实验

Shell编程实验

实验报告的基本内容及要求
1.实验预习
在实验前每位同学都需要对本次实验进行认真的预习,并写好预习报告,在预习报告中要写出实验目的、要求,需要用到的仪器设备、物品资料以及简要的实验步骤,形成一个操作提纲。

对实验中的安全注意事项及可能出现的现象等做到心中有数,但这些不要求写在预习报告中。

设计性实验要求进入实验室前写出实验方案。

2.实验记录
学生开始实验时,应该将记录本放在近旁,将实验中所做的每一步操作、观察到的现象和所测得的数据及相关条件如实地记录下来。

实验记录中应有指导教师的签名。

3.实验总结
主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法等。

实验报告学院:专业:班级:2010级
注:各学院可根据教学需要对以上栏木进行增减。

表格内容可根据内容扩充。

【最新精选】shell编程实验报告

【最新精选】shell编程实验报告

南京信息工程大学实验(实习)报告【实验目的】1、了解和熟悉创建并使用脚本的步骤。

2、熟悉bash的控制结构。

3、学会简单的shell编程。

【实验内容】1、创建一个简单的列目录和日期的shell 脚本并运行之。

步骤:⑴输入下列命令,创建一个新文件:cat >new_script⑵输入下列行:echo “Your files are”lsecho “today is”date按回车键将光标移到一个新行,按Ctrl+D键保存并退出。

⑶检查文件内容,确保它是正确的:cat new_script⑷运行脚本,输入它的文件名:new_script该脚本不运行。

⑸输入下列命令,显示文件的权限:ls –l new _script权限表明该文件不是可执行。

要通过简单调用文件名来运行脚本,必须有权限。

⑹输入下列命令,使new_script变成可执行文件。

chmod +x new_script⑺要查看新的权限,输入:ls –l现在拥有文件的读、写和执行权限。

⑻输入新脚本的名字以执行它:new_script所有输入到文件的命令都执行,并输出到屏幕上。

⑼如果接收到错误信息,比如:command not found输入下列命令:./new_script该命令行通知shell到哪里寻找shell脚本new_script,即您的当前目录“.”。

程序运行过程如下:2、用Shell 语言编制一Shell 程序,该程序在用户输入年、月之后,自动打印数出该年该月的日历。

程序运行过程如下:3、编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同则显示“Match”,并显示“End of program”,如果不同则显示“End of program”。

程序运行过程如下:4、修改上述程序,编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同显示“Match”,不同则显示“Not match”,最后显示“End of program”。

Shell编程实验报告.doc

Shell编程实验报告.doc

Shell编程实验报告【实验目的】1、了解和熟悉创建并使用脚本的步骤。

2、熟悉bash的控制结构。

3、学会简单的shell编程。

【实验内容】1、创建一个简单的列目录和日期的shell脚本并运行之。

步骤:⑴输入下列命令,创建一个新文件:cat>new_script⑵输入下列行:echo“Yourfilesare”lsecho“todayis”date按回车键将光标移到一个新行,按Ctrl+D键保存并退出。

⑶检查文件内容,确保它是正确的:catnew_script⑷运行脚本,输入它的文件名:new_script该脚本不运行。

⑸输入下列命令,显示文件的权限:ls–lnew_script权限表明该文件不是可执行。

要通过简单调用文件名来运行脚本,必须有权限。

⑹输入下列命令,使new_script变成可执行文件。

chmod+xnew_script⑺要查看新的权限,输入:ls–l现在拥有文件的读、写和执行权限。

⑻输入新脚本的名字以执行它:new_script所有输入到文件的命令都执行,并输出到屏幕上。

⑼如果接收到错误信息,比如:commandnotfound输入下列命令:./new_script该命令行通知shell到哪里寻找shell脚本new_script,即您的当前目录“.”。

程序运行过程如下:2、用Shell语言编制一Shell程序,该程序在用户输入年、月之后,自动打印数出该年该月的日历。

程序运行过程如下:3、编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同则显示“Match”,并显示“Endofprogram”,如果不同则显示“Endofprogram”。

程序运行过程如下:4、修改上述程序,编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同显示“Match”,不同则显示“Notmatch”,最后显示“Endofprogram”。

请使用if…then…else控制结构。

shell系统实验报告

shell系统实验报告

shell系统实验报告《Shell系统实验报告》摘要:本实验通过对shell系统的学习和实践,对shell脚本编程进行了深入的研究和探讨。

通过实验,我们深入了解了shell系统的基本概念、语法和功能,并通过实际编程实践加深了对shell脚本的理解和掌握。

本实验报告将对实验过程、实验结果和实验感想进行详细的介绍和分析。

一、实验目的通过本次实验,我们的主要目的是深入了解shell系统的基本概念和语法,掌握shell脚本编程的基本方法和技巧,提高对Linux系统的操作和管理能力。

二、实验过程1. 学习shell系统的基本概念和语法规则;2. 编写简单的shell脚本,包括文件操作、流程控制、函数定义等;3. 运行和调试编写的shell脚本,检验脚本的正确性和可靠性;4. 分析实验结果,总结实验感想。

三、实验结果通过本次实验,我们深入了解了shell系统的基本概念和语法规则,掌握了shell 脚本编程的基本方法和技巧。

我们成功编写了一些简单的shell脚本,包括文件操作、流程控制、函数定义等,通过运行和调试这些脚本,我们验证了它们的正确性和可靠性。

实验结果表明,我们对shell系统有了更深入的认识和理解,对Linux系统的操作和管理能力得到了提高。

四、实验感想通过本次实验,我们对shell系统有了更深入的认识和理解,对Linux系统的操作和管理能力得到了提高。

我们深刻体会到了shell脚本编程的重要性和实用性,相信在今后的工作和学习中,我们会更加熟练地运用shell系统,提高工作效率和解决实际问题。

同时,我们也意识到了自己在shell系统方面的不足之处,今后需要进一步学习和实践,不断提高自己的技能水平。

综上所述,本次实验对我们的学习和成长都具有重要意义,我们将继续努力学习和提高自己,在shell系统和Linux系统方面取得更大的进步和成就。

shell命令解释器实验报告

shell命令解释器实验报告

实验报告实验名称:实现一个shell命令解释器学员:学号:年级:专业:所属学院:计算机学院指导教员:职称:实验室:实验日期:目录1.功能描述 (3)2.主要数据结构 (3)3.主要程序流程图 (4)4.主要功能实现方法和系统调用 (4)4.1初始化环境 (4)4.2打印提示符,获取用户输入 (5)4.3解析命令 (5)4.4执行命令 (5)4.4.1内部命令 (5)4.4.2外部命令 (5)4.4.3重定向功能 (6)4.4.4管道功能 (6)5.测试结果 (7)6.心得体会 (10)1.功能描述本实验完成了一个shell命令解释器,实现了shell的解释命令功能,实现了内部命令(包括自定义命令)、外部命令、重定向功能和多管道等功能。

具体功能描述如下:1)内部命令:●可以使用常用的如cd、echo、history、exit等命令●自定义命令1)smile命令:打印出笑脸2)myinfo命令:打印出作者信息和版本信息2)外部命令:可实现cp、rm等所有外部命令。

3)重定向:通过输入重定向符号’<’ 或输出重定向’>’ ,把一行命令分成两部分,前者为需要执行的命令,后者为一个重定向文件。

输入重定向是把文件内容作为输入传到前面的命令中,而输出重定向则是把命令的结果传入重定向文件中。

4)管道:通过管道符号’|’ 把一条命令分成两部分,前一部分命令运行后,将结果放入管道,后一部分命令从管道中取出该结果,作为输入继续执行。

最多可以实现10个管道。

2.主要数据结构本程序主要使用字符数组进行命令、路径的存储与分析。

3.主要程序流程图命令的分析执行过程包括:初始化环境,打印提示符,获取用户输入命令,解析命令,寻找命令文件和执行命令,如图1。

图1程序设计流程图4.主要功能实现方法和系统调用下面将详细说明本shell解释器的实现原理和所用到的系统调用。

总结起来用到的系统调用主要有:Open();close();dup();pipe();execv();chdir();getcwd();如何使用这些系统调用实现shell的各项功能,下面将详细说明。

实验七 shell编程

实验七 shell编程

实验七实验基本信息实验名称:shell编程实验时间:2020年4月8日实验地点:实验室实验目的:1、熟练掌握vim编程器的使用2、理解Shell脚本的建立与执行3、理解Shell变量的种类和作用4、理解测试命令、算术与逻辑运算5、理解Shell程序设计的流程控制6、熟练掌握Shell脚本的执行7、熟练掌握Shell程序设计的流程控制实验过程描述一、vim编程器的使用1、vim简介Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。

代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。

在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线。

Vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

2、vim工作模式Vi/vim分为三种工作模式,分别是命令模式,输入模式,底线命令模式3、常用命令命令含义命令含义k 光标向上i 进入输入模式j 光标向下esc 回到命令模式h 光标向左:进入底线模式l 光标向右:w 在底线模式下输入,保存文件0 跳转到当前行的开始:q 在底线模式下输入,退出文件$ 跳转到当前行的末尾:wq 在底线模式下输入,保存后退出G 跳转到最后一行:q!在底线模式下输入,强制退出gg 跳转到第一行:/word 在底线模式下输入,搜索关键词dd 删除当前行n 向下搜yy 复制当前行N 向上搜u 撤销上一步:new 底线模式,创建空白分屏p 粘贴到下一行:split file 水平分割ctrl+f 向下一页:vsplit file 垂直分割ctrl+b 向上一页ctrl+w 切换ctrl+d 向下半页ctrl+w+方向键切换分屏ctrl+u 向上半页二、理解Shell脚本的建立与执行执行shell程序有三种方法方法1格式:bash <脚本所在的路径> [参数] 或sh <脚本所在的路径> [参数]调用新的bash命令解释程序,而把shell程序文件名作为参数传递给他。

shell命令总结实验报告

shell命令总结实验报告

shell命令总结实验报告shell 命令总结第⼀章实验思路1 运⾏环境VMware软件、CentOS 7、MobaXterm第⼆章实验⽬的1 掌握Linux的使⽤。

2 掌握shell常⽤命令。

3 掌握MobaXterm软件的使⽤第三章实验步骤Shell:多任务多⽤户系统3.1 终端物理终端:直接连接到的是键盘、⿏标 /dev/console虚拟终端:(/dev/tty)基于物理终端,以软件形式实现的登录⽅式,以ctrl+alt+Fn[1-6],centos 7模拟终端:(/dev/pts/)基于物理终端,以软件形式实现的登陆⽅式,通过ssh、telent远程登录的、(可以有很多个,⽆穷多个),在图形界⾯打开的命令⾏3.1.1 终端交互式接⼝GUI:图形界⾯,GNOME,KDE, XFCECLI: 命令⾏,shell3.2 shell 应⽤程序/bin/sh/bin/bash ⽐较常⽤shell,跟随⽤户启动的独⽴程序/usr/bin/sh/usr/bin/bash/bin/tcsh/bin/csh3.3 命令提⽰符#:管理员使⽤的命令提⽰符$: 普通⽤户使⽤的命令提⽰符3.4 命令3.4.1 shell 内嵌命令,执⾏效率⾼,常驻内存shell外部命令,根据需要执⾏which whereis 查找外部命令的位置3.4.2 帮助⽂档help,主要针对内嵌man(manual),主要针对外部命令3.4.3 主要命令1. echo $SHELL 查看当前使⽤的shell程序,当系统登录shell时默认使⽤的是/bin/bash2. exit 退出当前shell3. cat /etc/shells查看设备安装的所有shell程序4. pstree 查看进程树5. tty 查看登录⽅式 TTY查看登陆⽅式,tty1说明是在终端上登陆的。

pts说明是远程登陆的,0说明为从Window上登陆的。

6. type 查看是内部命令还是外部命令如下,查看cd 和ls命令7.enable -a 查看所有内嵌命令8. which 查看外部命令位置(以及帮助信息)9. whereis 查看外部命令位置10. man 查看外部命令使⽤说明,如man ls(ls 为外部命令)11. help 查看内部命令的使⽤说明,如help cd( cd 为内部命令),当⽤help查看ls这个外部命令时,是查询不出来的12. whatis 查看和更新数据库信息(帮助⽂档)1. ctrl+c 终⽌shell命令第四章问题解决没有注意到⼀些路径的设置,然后出现了些错误或者命令没执⾏成功。

linux实验报告--shell编程

linux实验报告--shell编程
4、能够编写一个简置一个用户自定义变量,变量名为你姓名的全拼,变量的内容为linux;
2、设置一个用户自定义变量,变量名为你姓名的全拼缩定,变量的内容为I Love Linux;
3、根据课件分别查看三个系统自定义变量值;
4、查看当前的PATH值,并增加一个路径/network;
5、编写一个简单的脚本,存放的路径在/network下,内容为分别显示三个系统自定义变量值
6、根据课件完成9.2.3 Shell的流程控制中的if部分的脚本。
1.思考题(由老师在上机前出好题目,学生通过实验后再回答)
2.实验结果(学生填写)
3.心得体会(学生填写)
广东科学技术职业学院
计算机工程技术学院(软件学院)
实验报告
专业计算机网络技术班级成绩评定______
学号姓名(合作者____号____)教师签名赖小卿
实验题目shell编程
第周星期一第节
一、实验目的与要求
1、掌握并熟悉如何设置、查看一个用户自定义变量值;
2、掌握如何查看系统自定义的环境变量值;
3、掌握并熟悉如何查看PATH以及修改PATH;

linux实验报告shell编程

linux实验报告shell编程

linux实验报告shell编程1. 什么是Linux Shell编程?Linux Shell编程是一种在Linux操作系统上使用Shell脚本开发的编程语言。

Shell编程是通过编写一系列Shell脚本来完成特定任务或自动化操作的过程。

Shell是操作系统的一种命令行接口,用户可以通过Shell来执行各种命令和操作系统功能。

Shell脚本是一种文本文件,其中包含了一系列Shell命令,用于定义要执行的任务和操作。

2. 为什么要学习Linux Shell编程?学习Linux Shell编程有以下几个重要原因:2.1 自动化操作:Shell编程可以帮助我们自动执行各种任务和操作,提高工作效率。

通过编写脚本,可以自动化执行常见的操作,如文件处理、数据备份、软件安装等,节省大量时间和精力。

2.2 系统管理:Shell编程是系统管理的重要工具。

通过编写脚本,我们可以在Linux系统上进行系统配置、用户管理、进程管理等操作,简化管理流程并提高系统安全性。

2.3 学习编程思维:学习Shell编程可以培养编程思维和解决问题的能力。

编写脚本可以帮助我们理解问题,分析和解决问题,并培养逻辑思维和创造性思维。

3. Shell脚本的基本语法和结构3.1 Shebang:Shell脚本的第一行通常是一个Shebang(井号加叹号),用来指定要使用的Shell解释器。

3.2 注释:使用井号()来注释代码,用于解释代码的作用、用途和注记。

3.3 变量:可以使用变量来存储数据,并在脚本中引用。

变量以美元符号()开头,可以是数字、字符或字符串。

可以使用等号(=)进行赋值,如:var="Hello World"。

3.4 输入输出:使用echo命令将文本输出到终端,使用read命令读取用户输入。

3.5 条件语句:使用if-else语句判断条件并执行对应的代码块。

条件可以使用比较运算符(如大于、小于、等于)和逻辑运算符(如与、或、非)进行判断。

Shell编程实验报告

Shell编程实验报告

南京信息工程大学实验(实习)报告【实验目的】1、了解和熟悉创建并使用脚本的步骤。

2、熟悉bash的控制结构。

3、学会简单的shell编程。

【实验内容】1、创建一个简单的列目录和日期的shell脚本并运行之。

步骤:⑴输入下列命令,创建一个新文件:cat >n ew_script⑵输入下列行:echo Your files are ”lsecho today is ”date按回车键将光标移到一个新行,按Ctrl+D键保存并退出。

⑶检查文件内容,确保它是正确的:cat n ew_script⑷运行月脚本,输入它的文件名:n ew_script该脚本不运行。

⑸输入下列命令,显示文件的权限:ls - l new _script权限表明该文件不是可执行。

要通过简单调用文件名来运行脚本,必须有权限。

⑹输入下列命令,使new_script变成可执行文件。

chmod +x n ew_script⑺要查看新的权限,输入:ls - l现在拥有文件的读、写和执行权限。

⑻输入新脚本的名字以执行它:n ew_script所有输入到文件的命令都执行,并输出到屏幕上。

⑼如果接收到错误信息,比如:comma nd not found输入下列命令:./n ew_script该命令行通知shell到哪里寻找shell脚本new_script,即您的当前目录“.” 程序运行过程如下:一2、用Shell 语言编制一 Shell 程序,该程序在用户输入年、月之后,自动打印 数出该年该月的日历。

程序运行过程如下:[root (?rhl00 root 1H cat>timee echo M Please input tl )e month: read nitonth echo R Pl ease input tl )c ycai': M read yearcal $fnonth $year [root(3rh 100 root] H bash times PloatJR input thp month: 9 PlpaHR input, thp ypar: 2012 九片 2012 0 一二三回五六6 7 8 13 \A 15 20 21 22 27 23 29 root]H |3、编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个 单词相同则显示“ Match ”,并显示“ End of program ”,如果不同则显示“ End ofprogram ”。

Shell编程实验指导

Shell编程实验指导

Shell编程实验一、实验目的了解 Shell 的作用和主要分类。

了解 Bash的一般语法规则。

练习编写简单的shell程序。

二、实验内容1.Shell变量的定义及其使用。

2.位置参数和环境变量。

3.Shell中的特殊字符。

4.条件判断结构与循环结构5.函数的定义和使用三、预备知识1、LINUX环境下常用命令和VI编辑器的操作。

2、了解Shell作用和主要分类等基础知识。

四、实验设备及工具软件:PC机操作系统REDHAT ELAS4环境五、实验原理及说明Shell是Linux系统中一个重要的层次,它是用户与系统交互作用的界面。

在介绍Linux 命令时,Shell都作为命令解释程序出现:它接收用户打入的命令,进行分析,创建子进程实现命令所规定的功能,等子进程终止工作后,发出提示符。

这是Shell最常见的使用方式。

Shell 除了作为命令解释程序以外,还是一种高级程序设计语言,它有变量,关键字,有各种控制语句,如if, case, while, for 等语句,有自己的语法结构。

利用Shell程序设计语言可以编写出功能很强、但代码简单的程序,特别是它把相关的Linux命令有机地组合在一起,可大大提高编程的效率,充分利用Linux系统的开放性能,设计出适合自己要求的命令。

六、实验步骤1.语法练习(1) Shell变量Shell有两种变量:环境变量和临时变量。

在Shell脚本中临时变量又分为两类:用户定义的变量和位置参数。

用户定义的变量用户定义的变量是最普遍的Shell变量,变量名是以字母或下化线打头的字母、数字和下线符序列,并且大小写字母意义不同。

变量名的长度不受限制。

定义变量并赋值的一般形式是:变量名=字符串例如,MYFILE=/usr/meng/ff/m1.ca.定义并显示变量的值在程序中使用变量的值时,要在变量名前面加上一个符号“$”。

这个符号告诉Shell,要读取该变量的值。

作为交互式输入手段,可以利用read命令由标准输入(即键盘)上读取数据,然后赋给指定的变量。

实训项目7 Shell编程

实训项目7  Shell编程

实训项目7 Shell编程
一、实训目的
●掌握Shell环境变量、管道、输入输出重定向的使用方法。

●熟悉Shell程序设计。

二、项目背景
某单位的系统管理员计划用Shell编程编写一个程序实现USB设备的自动挂载。

程序的功能如下:
●运算程序时,提示用户输入“y”或“n”,确定是不是挂载USB设备。

●如果用户输入“y”,则挂载这个USB设备。

●提示用户输入“y”或“n”,确定是不是复制文本。

●如果用户输入“y”,则显示文件列表,然后提示用户是否复制文件。

●程序根据用户输入的文件名复制相应的文件,然后提示是否将计算机中的文件复制到USB中。

●完成文件的复制以后,提示用户是否卸载USB设备。

三、实训内容
练习Shell程序设计方法及Shell环境变量、管道、输入输出重定向的使用方法。

四、实训步骤
●在Linux系统的图形界面下利用Vi编辑器输入程序代码,部分主要程序代码如下。

●将文件保存为/program/usb.sh,并利用chmod命令修改usb.sh的权限,使其可以执行。

●设置PATH环境变量,将/program目录添加到系统的PATH环境变量中,使得每次直接执行usb.sh 就可以完成U盘的自动挂载。

●去掉usb.sh的执行权限,将改文件的内容分别利用输出重定向输出到/program/usbbak.sh文件和屏幕上。

Shell编程实验报告

Shell编程实验报告

S h e l l编程实验报告 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】南京信息工程大学实验(实习)报告【实验目的】1、了解和熟悉创建并使用脚本的步骤。

2、熟悉bash的控制结构。

3、学会简单的shell编程。

【实验内容】1、创建一个简单的列目录和日期的shell 脚本并运行之。

步骤:⑴输入下列命令,创建一个新文件:cat >new_script⑵输入下列行:echo “Your files are”lsecho “today is”date按回车键将光标移到一个新行,按Ctrl+D键保存并退出。

⑶检查文件内容,确保它是正确的:cat new_script⑷运行脚本,输入它的文件名:new_script该脚本不运行。

⑸输入下列命令,显示文件的权限:ls –l new _script权限表明该文件不是可执行。

要通过简单调用文件名来运行脚本,必须有权限。

⑹输入下列命令,使new_script变成可执行文件。

chmod +x new_script⑺要查看新的权限,输入:ls –l现在拥有文件的读、写和执行权限。

⑻输入新脚本的名字以执行它:new_script所有输入到文件的命令都执行,并输出到屏幕上。

⑼如果接收到错误信息,比如:command not found输入下列命令:./new_script该命令行通知shell到哪里寻找shell脚本new_script,即您的当前目录“.”。

程序运行过程如下:2、用Shell 语言编制一Shell 程序,该程序在用户输入年、月之后,自动打印数出该年该月的日历。

程序运行过程如下:3、编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同则显示“Match”,并显示“End of program”,如果不同则显示“End of program”。

程序运行过程如下:4、修改上述程序,编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同显示“Match”,不同则显示“Not match”,最后显示“End of program”。

Shell脚本的设计实验

Shell脚本的设计实验

3.5.5 实验5-Shell脚本的设计实验实验1:深入理解let命令的用法。

比如我们可以用+=、(())等方式来实现运算符let命令:let命令是bash shell内置命令,用来执行整型算术运算和数值表达式测试。

可用命令help let查看当前bash版本支持的let操作符。

1 $ i=5 or let i=5 //变量i被赋值为5。

2 $ let i=i+1$ echo $i6 // let命令给变量i加1。

在执行算术运算时,不需要用美元符来展开变量。

3 $ let "i = i + 2"$ echo $i8 //如果参数包括空白符,则需要使用引号。

4 $ let "i+=1"$ echo $i9 //简写的操作符+=,用来给变量i加1。

5 $ i=3 //变量i被赋值为5。

6 $ (( i+=4))$ echo $i7 //双括号可以用来代替let命令。

变量i的值加4。

7 $ (( i=i-2 ))$ echo $i5 // i的值减2。

也可以写作i-=2。

1)两个小括号内允许空格2)let、expr的区别:expr是个函数表达式必须加空格(不加空格会语法错误)、let是一个命令;二者都不能进行位运算;expr可以直接显示出来、let还需加echo语句才可以显示出来实验2:使用命令替换,通过位置变量的方式来实现一个平方的操作#!/bin/bash //脚本的第一行#!/bin/bash 告诉内核将由哪个shell 解释器来执行程序中的各行。

本例中是由bash解释器执行。

//# Scriptname: do_square //写脚本一定要按照规范化的写作方式,注明脚本名// 1 function square { //或者把function删除在square后加(),square后与{}之间加空格local sq # sq is local to the function //local可以用man来查看,local sq可以不要let "sq=$1 * $1"echo "Number to be squared is $1." //定义函数square。

关于shell的实验报告

关于shell的实验报告

操作系统课程设计报告学院:计算机科学与工程学院班级: *****************学生姓名: ***************** 学号: *****************指导老师:提交日期:一、课程设计目的本设计的目的是实现操作系统和相关系统软件的设计,其中涉及进程编程、I/O操作、存储管理、文件系统等操作系统概念。

二、课程设计要求设计一设计任务:模拟Linux文件系统在任一OS下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的模拟Linux 文件系统。

1.在现有机器硬盘上开辟100M的硬盘空间,作为设定的硬盘空间。

2.编写一管理程序simdisk对此空间进行管理,以模拟Linux文件系统,要求:(1)盘块大小1k(2)空闲盘块的管理:Linux位图法(3)结构:超级块, i结点区, 根目录区3.该simdisk管理程序的功能要求如下:(1)info: 显示整个系统信息(参考Linux文件系统的系统信息),文件可以根据用户进行读写保护。

目录名和文件名支持全路径名和相对路径名,路径名各分量间用“/”隔开。

(2)cd …: 改变目录:改变当前工作目录,目录不存在时给出出错信息。

(3)dir …: 显示目录:显示指定目录下或当前目录下的信息,包括文件名、物理地址、保护码、文件长度、子目录等(带/s参数的dir命令,显示所有子目录)。

(4)md …: 创建目录:在指定路径或当前路径下创建指定目录。

重名时给出错信息。

(5)rd …: 删除目录:删除指定目录下所有文件和子目录。

要删目录不空时,要给出提示是否要删除。

(6)newfile …: 建立文件。

(7)cat …: 打开文件。

(8)copy …: 拷贝文件,除支持模拟Linux文件系统内部的文件拷贝外,还支持host文件系统与模拟Linux文件系统间的文件拷贝,host文件系统的文件命名为<host>…,如:将windows下D:盘的文件\data\sample\test.txt文件拷贝到模拟Linux文件系统中的/test/data目录,windows下D:盘的当前目录为D:\data,则使用命令:simdisk copy <host>D:\data\sample\test.txt /test/data或者:simdisk copy <host>D:sample\test.txt /test/data(9)del …: 删除文件:删除指定文件,不存在时给出出错信息。

linux实验七_shell编程

linux实验七_shell编程

实验七shell编程
一、实验目的
(1)掌握shell编程的技巧和方法
(2)进一步练习编写shell程序
二、shell 命令、变量和控制结构
这些部分请参阅教材和课件
三、实验内容
1、编写一个shell 脚本程序,打印出班级总成绩排名在前3 名(按总成绩递增)学生的姓名、学号和总成绩。

打印输出的格式如下(姓名、学号、第1、
2、3 门课程成绩及总成绩):zhang san 23 40 70 60 170
wang wu 31 60 60 80 200
li si 2 100 50 90 240
学生成绩文件自己创建。

2、编写一个menu 的shell脚本程序,执行后的界面为:
Number Name For Linux Menu
1 exit leave menu or return
2 menu goto another local menu
3 vi deit a file
4 mail read a mail
5 send send mail to someone
6 cal see your calendar
7 who see who is on the system
8 ls list the files in this directory
9 cat display a file on the screen
Please enter a number or a name for the action you wish:
要求有清屏功能,能正确地执行各项命令并显示。

3、继续完成shell编程大作业
四、思考题
查阅资料,总结shell编程的特点、技巧。

shell实验报告

shell实验报告

操作系统实验报告(shell命令解释器)目录1功能描述 (2)2主要数据结构 (2)3主要自定义函数功能及接口说明 (3)4主要功能实现方法和系统调用 (4)4.1重定向功能 (4)4.2多管道功能 (4)4.3命令的后台运行 (5)4.4历史命令 (6)4.5CD命令 (6)4.6其他简单命令 (6)4.7其他自定义命令 (6)5心得体会 (6)6源代码 (7)1功能描述(用红色标示的字体显示了本解释器完成的基本功能)本实验完成了一个shell命令解释器,实现了shell的解释命令功能,实现了重定向功能和多管道、后台运行等功能。

具体功能描述如下:1)解释器的命令格式为cmd1[<infileName][|cmd2][|cmd3]…[|cmdn][>or>>outfileName][&]2)cmdi为命令名+参数形式的命令,<为输入重定向,后跟输入重定向文件名infileName;>或>>后跟输出重定向文件名,输出内容将写入outfileName,>>表示以追加方式写入文件,>则表示以覆盖方式写入;3)实现了多管道4)命令结尾可加后台运行符号& ,表示此命令将以后台运行的方式执行5)实现了cd命令6)exit为退出命令7)history为历史命令,可以显示最近执行的命令,最多100条8)!i为执行历史命令,意为执行第i条历史命令。

!!为执行上一条命令。

9)’|’为管道符号,使用|符号隔开的若干条命令之间,前一条命令的输出是后一条命令的输入。

10)自定义命令myname,将输出此Shell的版本信息11)本解释器命令格式中的简单命令可为所有外部命令和一部分内部命令和自定义命令2主要数据结构本shell解释器实现手法上非常直观易懂,没有用到复杂的数据结构。

运行过程中大部分数据采用字符数组的形式存储。

其中定义了命令结构类型cmd,用以表示一条简单命令。

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

实验七 LINUX-Shell编程一.实验名称:Shell 简单编程实验和较复杂的考勤模拟shell程序设计二.实验目的:理解Shell程序的设计方法;熟悉Shell程序的编辑、运行、调试方法与过程。

三.实验内容:考勤模拟Shell程序设计用shell设计一个模拟考勤程序,实现如下功能选择界面:1:上班签到2:下班签出3:缺勤信息查阅考勤程序运行后,提示用户输入上述功能选择,并验证用户输入的用户名和密码;用户信息保存在userinfo.dat中。

如果是上班签到,记录签到信息,如果签到时间大于上午8时,则提示用户迟到,并记录该迟到信息到check.dat中。

如果是下班签出,记录签出信息,如果签出时间小于下午6时,则提示用户早退,并记录该早退信息到check.dat。

如果用户选择确信信息查询,则将check.dat中对应的用户迟到早退的信息查询出来并显示。

用户选择功能执行完,Shell程序继续回到功能选择界面等待下一个用户进行操作。

四.实验要求:1、掌握Shell程序的编辑、运行、调试方法2、完成实验内容要求的功能五.简单SHELL实验:请在vi中逐一编辑并执行以下6个shell脚本程序1.编写一个简单的回显用户名的shell程序。

#vi dat#!/bin/bash#filename:datecho "Mr.$USER,Today is:"echo `date`echo Wish you a lucky day!#chmod +x dat#./dat2.使用if-then语句创建简单的shell程序。

#vi bbbb#!/bin/bash#filename:bbbbecho -n "Do you want to continue: Y or N"read ANSWERif [ $ANSWER=N -o $ANSWER=n ]thenexitfi#chmod +x bbbb#./bbbb3.使用if-then-else语句创建一个根据输入的分数判断是否及格的shell程序。

#vi ak#!/bin/bash#filename:akecho -n "please input a score:"read SCOREecho "You input Score is $SCORE"if [ $SCORE -ge 60 ];thenecho -n "Congratulation!You Pass the examination."elseecho -n "Sorry!You Fail the examination!"fiecho -n "press any key to continue!"read $GOOUT#chmod +x ak#./ak4.使用for语句创建简单的shell程序。

#vi mm#!/bin/bash#filename:mmfor ab in 1 2 3 4doecho $abdone#chmod +x mm#./mm5.使用while语句创建一个计算1-5的平方的shell程序。

#vi zx#!/bin/bash#filename:zxint=1while [ $int -le 5 ]dosq=`expr $int \* $int`echo $sqint=`expr $int + 1`doneecho "Job completed"#chmod +x zx#./zx6.使用while语句创建一个根据输入的数值求累加和(1+2+3+4+…+n)的shell程序。

#vi sum#!/bin/bash#filename:sumecho -n "Please Input Number:"read NUMnumber=0sum=0while [ $number -le $NUM ]doecho numberecho "$number"number=`expr $number + 1 `echo sumecho "$sum"sum=` expr $sum + $number `doneecho#chmod +x sum#./sum六.较复杂SHELL实验(使用VI编辑下面代码) # vi testshell#! /bin/bash#filename:shelltestexsig=0while true; doecho ""echo "----欢迎使用本系统----"echo " 1. 上班签到"echo " 2. 下班签出"echo " 3. 考勤信息查询"echo " 4. 退出系统"echo "----------------------"echo ""echo "请输入你的选项:"read choicecase $choice in1)echo "请输入你的名字:"read nameecho "请输入你的密码:"read passwordif test -r /home/user/userinfo.datthenwhile read fname fpassworddoecho "$fname"echo "$fpassword"if test "$fname" = "$name"thenbreakfidone < /home/user/userinfo.datelseecho System Error:userinfo.dat does not exist!fiif test "$fname" != "$name"thenecho "不存在该用户!"elif test "$fpassword" != "$password"thenecho "密码不正确!"elsehour=`date +%H`if test "$hour" -gt 8thenecho "你迟到了!"echo "$name 上班迟到---日期:`date`" >>/home/user/check.dat elseecho "早上好,$name!"fifi;;2)echo "请输入你的名字:"read nameecho "请输入你的密码:"read passwordif test -r /home/user/userinfo.datthenwhile read fname fpassworddoif test "$fname" = "$name"thenbreakfidone < /home/user/userinfo.datelseecho System Error:userinfo.dat does not exist!fiif test "$fname" != "$name"thenecho " 不存在该用户!"elif test "$fpassword" != "$password"thenecho "密码不正确!"elsehour=`date +%H`if test "$hour" -lt 18thenecho "你早退了!"echo "$name 下班早退----日期:`date`">> /home/user/check.dat elseecho "再见,$name!"fifi;;3)echo "请输入你的名字:"read nameecho "请输入你的密码:"read passwordif test -r /home/user/userinfo.datthenwhile read fname fpassworddoif test "$fname" = "$name"thenbreakfidone < /home/user/userinfo.datelseecho System Error:userinfo.dat does not exist!fiif test "$fname" != "$name"thenecho "不存在该用户!"elif test "$fpassword" != "$password"thenecho "密码不正确!"elseecho "你的记录:"echo "---------"cat -b /home/user/check.dat|grep $nameecho "---------"fi;;4)echo "欢迎你的使用,再见!"exsig=1;;*)echo "请输入合法的选项!";;esacif test "$exsig" = "1"thenbreakfidone七.试验运行结果:#chmod +x testshell#./testshell八.注意事项1. 上面的实验需要在/home/user下有userinfo.dat文件2. 该userdat.dat文件内容可如下样式:Wang 23456Li 22233……。

相关文档
最新文档