2023年8月2日发(作者:)
实验三Linux下的程序设计实验三 Vi编辑器及SHELL编程编辑器⼀、实验⽬的●掌握Vi编辑器的启动与退出。●掌握Vi编辑器的三种模式及使⽤⽅法。⼆、实验内容练习Vi编辑器的启动与退出;练习Vi编辑器的使⽤⽅法。三、实验步骤●使⽤touch命令创建⼀个新的空⽂件:[root@x-study -as4 ~]# touch newfile●使⽤vi编辑器打开这个⽂件:[root@x-study -as4 ~]# vi newfile●在打开的⽂件中输⼊以下内容:When we work—and also when we play—we use up energy. The energy may be physical or mental or a combination of thetwo. When our work or play is prolonged, we become tired and want to stop and rest or change to some other activity. If wedo not stop, we become gradually less efficient.●练习在命令模式下复制、粘贴、删除等命令。四、实验思考题1.在Linux操作系统中编写程序,实现“鸡兔同笼”问题,要求头数和脚数从键盘输⼊整形数据2.在Linux操作系统中,实现万年历,并提供友好的⽤户界⾯。五、实验报告要求●实验⽬的。●实验内容。●实验步骤。●实验中的问题和解决⽅法。●回答实验思考题。●实验⼼得与体会。●建议与意见。编程⼀、实验⽬的●掌握shell程序的建⽴和执⾏⽅式;●掌握shell中各种变量的使⽤;●熟练掌握shell程序设计中各种控制结构语句是使⽤;●了解shell编程中特殊字符的含义。⼆、项⽬背景某单位的系统管理员计划⽤Shell编程编写⼀个程序实现USB设备的⾃动挂载。程序的功能如下:●运算程序时,提⽰⽤户输⼊“y”或“n”,确定是不是挂载USB设备。●如果⽤户输⼊“y”,则挂载这个USB设备。●提⽰⽤户输⼊“y”或“n”,确定是不是复制⽂本。●如果⽤户输⼊“y”,则显⽰⽂件列表,然后提⽰⽤户是否复制⽂件。●程序根据⽤户输⼊的⽂件名复制相应的⽂件,然后提⽰是否将计算机中的⽂件复制到USB中。●完成⽂件的复制以后,提⽰⽤户是否卸载USB设备。三、实验内容练习Shell程序设计⽅法及Shell环境变量、管道、输⼊输出重定向的使⽤⽅法。四、实验步骤(⼀)shell程序的建⽴和执⾏1.依次执⾏下列命令,理解反馈信息的意义。$ date$ pwd$ cd ..$ cd2.建⽴shell程序脚本$ vi ex1datepwdcd ..cd存盘退出。3.检查⽂件是否存在。$ ls4.执⾏shell程序ex1,显⽰反馈信息与单步命令操作相同。⽅式⼀:输⼊定向到shell脚本$ bash < ex1⽅式⼆:以脚本名作为参数$ bash ex1$ bash ex1 /usr⽅式三:将shell脚本的权限设置为可执⾏,然后在提⽰符下直接执⾏它步骤1:$ chmod a+x ex1步骤2:$ mv ex1 /usr/bin步骤3:$ ex1$ ex1 /usr5. 在⽂本编辑器中录⼊下⾯shell程序,保存为ex2,然后执⾏之。#!/bin/bash# If no arguments, then listing the current directory.# Otherwise, listing each test $# = 0then ls .elsefor idols -l $i | grep '^d'donefi(⼆)shell变量1.⽤户定义的变量。单步执⾏下述命令,练习变量赋值,理解反馈信息。$ dir=/home/mengqc/ex1$ echo $dir$ echo dir$ today=Sunday$ echo $today $Today$ str=”Happy New Year.”$ echo "Wish You $str"2.read命令。(1)单步执⾏下述命令:$ read name -----输⼊read命令zhangsan -----输⼊name的值$ echo "Your Name is $name."Your Name is zhangsan -----显⽰输出的结果$ read a b c -----read命令有三个参数cuit cn edu -----输⼊三个字符串,中间以空格隔开$ echo "Email : $a. $c. $b"Email : /doc/ -----显⽰输出结果(2)将上述四个单步命令编辑为shell程序,取名ex3。$ vi ex3 (输⼊四⾏命令,编后存盘)。(3)运⾏shell程序ex3。$ bash ex33.特殊变量(1)建⽴⼀个内容如下的shell程序ex4:echo “Program name is $0”echo “There are totally $# parameters passed to this program”echo “The last is $?”echo “The parameters are $*”(2)按如下执⾏程序ex4,观察反馈信息:$ bash ex4 this is a test program(三)控制结构1.if语句(1)理解并建⽴shell程序ex5:echo “The current directory is `pwd`”if test -f "$1"# 如果位置参数$1对应的⽂件then echo "$1 is an ordinary file." # 是普通⽂件“- F”则显⽰本⾏else echo "$1 is not an ordinary file." # 否则显⽰本⾏fi执⾏ex5,并理解反馈信息:$ bash ex5 ex4(2)理解并建⽴shell程序ex6:if test -f "$1"then cat $1else if test -d "$1"then (cd $1 ; cat * )else echo "$1 is neither a file nor a directory."fifi执⾏ex6,并理解反馈信息。2.while语句(1)理解并建⽴shell程序ex7:while [ $1 ]doif [ -f $1 ]then echo "display : $1"cat $1else echo " $1 is not a file name."fishift #后续位置参数左移done执⾏ex7,并理解反馈信息。(2)编写求前五个偶数之和的shell程序ex8:loopcount=0result=0while [ $loopcount –lt 5 ]do((loopcount=loopcount+1))((increment=loopcount * 2))let “result=result + increment”doneecho "result is $result"3.for语句(1)理解并建⽴shell程序ex9:for day in Monday Wednesday Friday Sundaydoecho $daydone执⾏ex9,并理解反馈信息。(2)理解并建⽴shell程序ex10:mkdir backupfor filename in `ls`docp $filename backup/$filenameif [ $? -ne 0 ]thenecho “copy for $filename failed”fidone执⾏ex10,并理解反馈信息。4.Select语句理解并建⽴shell程序ex11:select item in Continue Finshdoif [ $item = “Finsh”]; thenbreakfidone执⾏ex11,并理解反馈信息。理解并建⽴shell程序ex12:while truedoselect menuItem in create input delete exitdocase “$menuItem”increate) echo “create a file.”break;;input) echo “input data to file.”break;;delete)) echo “delete the file.”break;;exit) exit;;esacdonedone执⾏ex12,并理解反馈信息。(四)应⽤实例●在Linux系统的图形界⾯下利⽤Vi编辑器输⼊程序代码,部分主要程序代码如下。●将⽂件保存为/program/,并利⽤chmod命令修改的权限,使其可以执⾏。●设置PATH环境变量,将/program⽬录添加到系统的PATH环境变量中,使得每次直接执⾏就可以完成U盘的⾃动挂载。●去掉的执⾏权限,将改⽂件的内容分别利⽤输出重定向输出到/program/⽂件和屏幕上。五、实验思考题1.将本实验的USB项⽬的程序完成,并进⾏实际测试。写出测试环境和测试结果。2.修改系统的配置⽂件,使得⽂件在⽤户每次登陆系统的时候可以⾃动执⾏。六、实验报告要求●实验⽬的。●实验内容。●实验步骤。●实验中的问题和解决⽅法。●回答实验思考题。●实验⼼得与体会。●建议与意见。
2023年8月2日发(作者:)
实验三Linux下的程序设计实验三 Vi编辑器及SHELL编程编辑器⼀、实验⽬的●掌握Vi编辑器的启动与退出。●掌握Vi编辑器的三种模式及使⽤⽅法。⼆、实验内容练习Vi编辑器的启动与退出;练习Vi编辑器的使⽤⽅法。三、实验步骤●使⽤touch命令创建⼀个新的空⽂件:[root@x-study -as4 ~]# touch newfile●使⽤vi编辑器打开这个⽂件:[root@x-study -as4 ~]# vi newfile●在打开的⽂件中输⼊以下内容:When we work—and also when we play—we use up energy. The energy may be physical or mental or a combination of thetwo. When our work or play is prolonged, we become tired and want to stop and rest or change to some other activity. If wedo not stop, we become gradually less efficient.●练习在命令模式下复制、粘贴、删除等命令。四、实验思考题1.在Linux操作系统中编写程序,实现“鸡兔同笼”问题,要求头数和脚数从键盘输⼊整形数据2.在Linux操作系统中,实现万年历,并提供友好的⽤户界⾯。五、实验报告要求●实验⽬的。●实验内容。●实验步骤。●实验中的问题和解决⽅法。●回答实验思考题。●实验⼼得与体会。●建议与意见。编程⼀、实验⽬的●掌握shell程序的建⽴和执⾏⽅式;●掌握shell中各种变量的使⽤;●熟练掌握shell程序设计中各种控制结构语句是使⽤;●了解shell编程中特殊字符的含义。⼆、项⽬背景某单位的系统管理员计划⽤Shell编程编写⼀个程序实现USB设备的⾃动挂载。程序的功能如下:●运算程序时,提⽰⽤户输⼊“y”或“n”,确定是不是挂载USB设备。●如果⽤户输⼊“y”,则挂载这个USB设备。●提⽰⽤户输⼊“y”或“n”,确定是不是复制⽂本。●如果⽤户输⼊“y”,则显⽰⽂件列表,然后提⽰⽤户是否复制⽂件。●程序根据⽤户输⼊的⽂件名复制相应的⽂件,然后提⽰是否将计算机中的⽂件复制到USB中。●完成⽂件的复制以后,提⽰⽤户是否卸载USB设备。三、实验内容练习Shell程序设计⽅法及Shell环境变量、管道、输⼊输出重定向的使⽤⽅法。四、实验步骤(⼀)shell程序的建⽴和执⾏1.依次执⾏下列命令,理解反馈信息的意义。$ date$ pwd$ cd ..$ cd2.建⽴shell程序脚本$ vi ex1datepwdcd ..cd存盘退出。3.检查⽂件是否存在。$ ls4.执⾏shell程序ex1,显⽰反馈信息与单步命令操作相同。⽅式⼀:输⼊定向到shell脚本$ bash < ex1⽅式⼆:以脚本名作为参数$ bash ex1$ bash ex1 /usr⽅式三:将shell脚本的权限设置为可执⾏,然后在提⽰符下直接执⾏它步骤1:$ chmod a+x ex1步骤2:$ mv ex1 /usr/bin步骤3:$ ex1$ ex1 /usr5. 在⽂本编辑器中录⼊下⾯shell程序,保存为ex2,然后执⾏之。#!/bin/bash# If no arguments, then listing the current directory.# Otherwise, listing each test $# = 0then ls .elsefor idols -l $i | grep '^d'donefi(⼆)shell变量1.⽤户定义的变量。单步执⾏下述命令,练习变量赋值,理解反馈信息。$ dir=/home/mengqc/ex1$ echo $dir$ echo dir$ today=Sunday$ echo $today $Today$ str=”Happy New Year.”$ echo "Wish You $str"2.read命令。(1)单步执⾏下述命令:$ read name -----输⼊read命令zhangsan -----输⼊name的值$ echo "Your Name is $name."Your Name is zhangsan -----显⽰输出的结果$ read a b c -----read命令有三个参数cuit cn edu -----输⼊三个字符串,中间以空格隔开$ echo "Email : $a. $c. $b"Email : /doc/ -----显⽰输出结果(2)将上述四个单步命令编辑为shell程序,取名ex3。$ vi ex3 (输⼊四⾏命令,编后存盘)。(3)运⾏shell程序ex3。$ bash ex33.特殊变量(1)建⽴⼀个内容如下的shell程序ex4:echo “Program name is $0”echo “There are totally $# parameters passed to this program”echo “The last is $?”echo “The parameters are $*”(2)按如下执⾏程序ex4,观察反馈信息:$ bash ex4 this is a test program(三)控制结构1.if语句(1)理解并建⽴shell程序ex5:echo “The current directory is `pwd`”if test -f "$1"# 如果位置参数$1对应的⽂件then echo "$1 is an ordinary file." # 是普通⽂件“- F”则显⽰本⾏else echo "$1 is not an ordinary file." # 否则显⽰本⾏fi执⾏ex5,并理解反馈信息:$ bash ex5 ex4(2)理解并建⽴shell程序ex6:if test -f "$1"then cat $1else if test -d "$1"then (cd $1 ; cat * )else echo "$1 is neither a file nor a directory."fifi执⾏ex6,并理解反馈信息。2.while语句(1)理解并建⽴shell程序ex7:while [ $1 ]doif [ -f $1 ]then echo "display : $1"cat $1else echo " $1 is not a file name."fishift #后续位置参数左移done执⾏ex7,并理解反馈信息。(2)编写求前五个偶数之和的shell程序ex8:loopcount=0result=0while [ $loopcount –lt 5 ]do((loopcount=loopcount+1))((increment=loopcount * 2))let “result=result + increment”doneecho "result is $result"3.for语句(1)理解并建⽴shell程序ex9:for day in Monday Wednesday Friday Sundaydoecho $daydone执⾏ex9,并理解反馈信息。(2)理解并建⽴shell程序ex10:mkdir backupfor filename in `ls`docp $filename backup/$filenameif [ $? -ne 0 ]thenecho “copy for $filename failed”fidone执⾏ex10,并理解反馈信息。4.Select语句理解并建⽴shell程序ex11:select item in Continue Finshdoif [ $item = “Finsh”]; thenbreakfidone执⾏ex11,并理解反馈信息。理解并建⽴shell程序ex12:while truedoselect menuItem in create input delete exitdocase “$menuItem”increate) echo “create a file.”break;;input) echo “input data to file.”break;;delete)) echo “delete the file.”break;;exit) exit;;esacdonedone执⾏ex12,并理解反馈信息。(四)应⽤实例●在Linux系统的图形界⾯下利⽤Vi编辑器输⼊程序代码,部分主要程序代码如下。●将⽂件保存为/program/,并利⽤chmod命令修改的权限,使其可以执⾏。●设置PATH环境变量,将/program⽬录添加到系统的PATH环境变量中,使得每次直接执⾏就可以完成U盘的⾃动挂载。●去掉的执⾏权限,将改⽂件的内容分别利⽤输出重定向输出到/program/⽂件和屏幕上。五、实验思考题1.将本实验的USB项⽬的程序完成,并进⾏实际测试。写出测试环境和测试结果。2.修改系统的配置⽂件,使得⽂件在⽤户每次登陆系统的时候可以⾃动执⾏。六、实验报告要求●实验⽬的。●实验内容。●实验步骤。●实验中的问题和解决⽅法。●回答实验思考题。●实验⼼得与体会。●建议与意见。
发布评论