《 Linux操作系统》实验指导/实验六: Shell编程基础 《 Linux操作系统》实验指导 实验六:Shel‘编程基础 、实验目的 掌握 Shell I的基础语法 2、掌握 Bash shell的基础语法 3、掌握 Shell a编程的基本思路 4、掌握正则表达式。 二、实验学时 2学时 三、实验类型 综合性 四、实验需求 1、硬件 单机虚拟化:每人配备计算机1台,计算机接入实验室局域网,且使用固定IP地址 云服务器:每人配备计算机1台、云服务器1台,云服务器提供SSH方式的远程管理。 2、软件 Windows7操作系统,安装 Mware Workstation10+、 PuTty软件。 3、网络 支持对互联网的访问。 4、工具 无 五、实验理论 1、正则表达式的基本原理 2、 Linux shell的基本内容 3、 Bash Shell E的基本内容 shell编程工具的基本内容。 六、预备知识 1、 Linux Shell下常用的命令; 2、 Linux下常用文本编辑器的使用; 3、 Linux操作系统中常见的Shll类型有哪些?请查阅相关资料,完成表1-1常见的 Shell类 型对比分析一览表 表1-1常见的She类型对比分析一览表 管理科学与工程学科/共10页第1页
《Linux 操作系统》实验指导 / 实验六:Shell 编程基础 管理科学与工程学科 / 共 10 页,第 1 页 《Linux 操作系统》实验指导 实验六:Shell 编程基础 一、实验目的 1、掌握 Shell 的基础语法; 2、掌握 Bash Shell 的基础语法; 3、掌握 Shell 编程的基本思路; 4、掌握正则表达式。 二、实验学时 2 学时 三、实验类型 综合性 四、实验需求 1、硬件 单机虚拟化:每人配备计算机 1 台,计算机接入实验室局域网,且使用固定 IP 地址。 云服务器:每人配备计算机 1 台、云服务器 1 台,云服务器提供 SSH 方式的远程管理。 2、软件 Windows 7 操作系统,安装 VMware Workstation 10+、PuTTY 软件。 3、网络 支持对互联网的访问。 4、工具 无 五、实验理论 1、正则表达式的基本原理; 2、Linux Shell 的基本内容; 3、Bash Shell 的基本内容; 4、Shell 编程工具的基本内容。 六、预备知识 1、Linux Shell 下常用的命令; 2、Linux 下常用文本编辑器的使用; 3、Linux 操作系统中常见的 Shell 类型有哪些?请查阅相关资料,完成表 1-1 常见的 Shell 类 型对比分析一览表。 表 1-1 常见的 Shell 类型对比分析一览表
《 Linux操作系统》实验指导/实验六: Shell编程基础 2 Shell类型 优点 Shel类型 优点 要求 请查阅相关资料,完成表1-1的填写,至少需要填写4种常见的She‖!类型,并将表格填写 到实验报告册中 4、请阐述 Shell的基本概念、 Shell的工作原理 要求: 请查阅相关资料,回答上述问题,并将具体的答案填写到实验报告册中。 七、实验任务 1、掌握 Shell I的常量、变量、运算符、表达式、控制语句等使用; 2、掌握函数的定义与使用方法 3、掌握常见的 Shell工具的使用 掌握正则表达式的基本内容 八、实验步骤 实验场景与实验环境准备 本实验可根据实验室的具体条件,在单机虚拟化和云服务器两种场景下开展实验教学。 (1)单机虚拟化场景下开展实验教学 实验场景: 每位学生通过物理主机上的虚拟化软件 Mware workstation安装 Ubuntu server虚拟操作 系统,虚拟操作系统 Ubuntu server配备固定I地址,并开启SSH远程管理服务。 实验准备: ①启动虚拟化软件 Mware workstation并附加上 Ubuntu server操作系统; ②配置 Ubuntu server操作系统的网络,并在虚拟主机上使用Ping命令进行网络连通性 测试 ③在虚拟主机上安装 openssh,ufw。开启 openssh服务,并设置ufw的规则为允许 172162x/24的主机访问,开放22端口 ④虚拟主机后台运行,通过物理主机上的 PuTTY软件,连接 Ubuntu Server操作系统。 (2)云服务器场景下开展实验教学 实验场景 在云服务器为学生安装部署 Linux操作系统,每个操作系统配备固定IP地址,并开启 SSH远程管理服务,并把root用户权限和远程访问信息提供给学生, 实验准备: 管理科学与工程学科/共10页第2页
《Linux 操作系统》实验指导 / 实验六:Shell 编程基础 管理科学与工程学科 / 共 10 页,第 2 页 Shell 类型 优点 Shell 类型 优点 要求: 请查阅相关资料,完成表 1-1 的填写,至少需要填写 4 种常见的 Shell 类型,并将表格填写 到实验报告册中。 4、请阐述 Shell 的基本概念、Shell 的工作原理。 要求: 请查阅相关资料,回答上述问题,并将具体的答案填写到实验报告册中。 七、实验任务 1、掌握 Shell 的常量、变量、运算符、表达式、控制语句等使用; 2、掌握函数的定义与使用方法; 3、掌握常见的 Shell 工具的使用; 4、掌握正则表达式的基本内容。 八、实验步骤 1、实验场景与实验环境准备 本实验可根据实验室的具体条件,在单机虚拟化和云服务器两种场景下开展实验教学。 (1)单机虚拟化场景下开展实验教学 实验场景: 每位学生通过物理主机上的虚拟化软件 VMware workstation 安装 Ubuntu Server 虚拟操作 系统,虚拟操作系统 Ubuntu Server 配备固定 IP 地址,并开启 SSH 远程管理服务。 实验准备: ①启动虚拟化软件 VMware workstation 并附加上 Ubuntu Server 操作系统; ②配置 Ubuntu Server 操作系统的网络,并在虚拟主机上使用 Ping 命令进行网络连通性 测试; ③在虚拟主机上安装 openssh,ufw。开启 openssh 服务,并设置 ufw 的规则为允许 172.16.2.x/24 的主机访问,开放 22 端口。 ④虚拟主机后台运行,通过物理主机上的 PuTTY 软件,连接 Ubuntu Server 操作系统。 (2)云服务器场景下开展实验教学 实验场景: 在云服务器为学生安装部署 Linux 操作系统,每个操作系统配备固定 IP 地址,并开启 SSH 远程管理服务,并把 root 用户权限和远程访问信息提供给学生。 实验准备:
Lim操作系统》实验指导/实验六:shl编程基础3 学生使用 Windows7操作系统开展实验学习,使用 PuTTY软件根据教师提供的云服务器访问 信息远程访问实验用的Linu操作系统 2、 Shell:编程基础 (1)文本信息输出 编写 Shell程序,执行时在屏幕输出“ Hello world”。程序文件名为: PrintInfo sh 参考程序 vi /home/student/PrintInfo. sh #使用ⅵ编辑器打开文件 #!/bin/bash #在文件中编写She|脚本 Printhello="Hello world echo SPrinthello chmod +x PrintInfo. sh #给文件 PrintInfo. sh添加执行权限 sh /PrintInfo. sh #执行文件 PrintInfo.sh (2)数值计算 编写She程序,分别使用$、S(O)、let命令对数值进行计算,执行时在屏幕输出“1+4= 5”。程序文件名为: Number Calculate sh 参考程序: vi /home/student/ NumberCalculate sh #!/bin/bash c=SISa+ Sb] d=s($a+$b) let e=Sa+Sb echo Sa Sb= Sc echo Sa +Sb= Sd cho sa Sb= Se chmod +x Number Calculate. sh sh NumberCalculate sh (3)获取IP地址 编写 Shell程序,获取系统中的ethO网卡的IP地址。程序文件名为: GetlpAddress.sh 参考程序 vi /home/student/ GetlPAddress sh #!/bin/bash IPAddr=ifconfig I egrep'inet addr grep-V' 1270.0.1' cut I cut-d echo "The IP Address is SIPAddr (4)文件操作 编写 Shell 7程序,读取用户输入的文件路径,判断目录文件是否存在。程序文件名为 File exist sh。 参考程序: I/bin/bash echo"Please input the file path 管理科学与工程学科/共10页第3页
《Linux 操作系统》实验指导 / 实验六:Shell 编程基础 管理科学与工程学科 / 共 10 页,第 3 页 学生使用 Windows 7 操作系统开展实验学习,使用 PuTTY 软件根据教师提供的云服务器访问 信息远程访问实验用的 Linux 操作系统。 2、Shell 编程基础 (1)文本信息输出 编写 Shell 程序,执行时在屏幕输出“Hello World”。程序文件名为:PrintInfo.sh。 参考程序: vi /home/student/PrintInfo.sh #使用 vi 编辑器打开文件 #!/bin/bash #在文件中编写 Shell 脚本 PrintHello="Hello World" echo $PrintHello chmod +x PrintInfo.sh #给文件 PrintInfo.sh 添加执行权限 sh ./PrintInfo.sh #执行文件 PrintInfo.sh (2)数值计算 编写 Shell 程序,分别使用$[]、$(())、let 命令对数值进行计算,执行时在屏幕输出“1 + 4 = 5”。程序文件名为:NumberCalculate.sh。 参考程序: vi /home/student/ NumberCalculate.sh #!/bin/bash a=1 b=4 c=$[$a + $b] d=$(( $a + $b )) let e=$a+$b echo $a + $b = $c echo $a + $b = $d echo $a + $b = $e chmod +x NumberCalculate.sh sh ./ NumberCalculate.sh (3)获取 IP 地址 编写 Shell 程序,获取系统中的 eth0 网卡的 IP 地址。程序文件名为:GetIPAddress.sh。 参考程序: vi /home/student/ GetIPAddress.sh #!/bin/bash IPAddr=`ifconfig | egrep 'inet addr' | grep -v '127.0.0.1' | cut -d: -f2 | cut -d ' ' -f1` echo "The IP Address is $IPAddr" (4)文件操作 编写 Shell 程序,读取用户输入的文件路径,判断目录文件是否存在。程序文件名为: FileExist.sh。 参考程序: #!/bin/bash echo "Please input the file path" read path if [ -e $path ] then
imx操作系统》实验指导/实验六:Sl编程基础4 echo "The file exists" else echo"Sorry, your input is wrong 要求 (1)请编写Shel脚本,读取用户输入的数据的长度,并倒序输出用户输入的数据。 (2)编写She|脚本,列出/usr目录下权限为755的文件名 请根据上述2个要求,进行具体实验,并将Shel脚本填写到实验报告册中 3、Shel控制语句 (1)if选择结构 编写 Shell程序,实现用户权限的认证。当用户输入的用户名、密码均为 student时,提示 用户权限信息正确。程序文件名为: SlOgan.sh 参考程序 vi/home/student/lsLogin sh #!/bin/bash echo "Enter your username then if ["Password"="student"] echo "welcome student else echo"Your password is error echo " Your username is error (2) until语句 编写Shel程序,使用untl语句计算1~100的和。程序文件名为: Calculate Suml. sh 参考程序 #!/bin/bash sum=0 ntil test Snumber -le 100 let number-Snumber+1 done 语句 编写Shel程序,使用 while语句计算1~100的和。程序文件名为: Calculate Sum2.h 管理科学与工程学科/共10页第4页
《Linux 操作系统》实验指导 / 实验六:Shell 编程基础 管理科学与工程学科 / 共 10 页,第 4 页 echo "The file exists" else echo "Sorry, your input is wrong" fi 要求: (1)请编写 Shell 脚本,读取用户输入的数据的长度,并倒序输出用户输入的数据。 (2)编写 Shell 脚本,列出/usr 目录下权限为 755 的文件名。 请根据上述 2 个要求,进行具体实验,并将 Shell 脚本填写到实验报告册中。 3、Shell 控制语句 (1)if 选择结构 编写 Shell 程序,实现用户权限的认证。当用户输入的用户名、密码均为 student 时,提示 用户权限信息正确。程序文件名为:IsLogin.sh。 参考程序 vi /home/student/IsLogin.sh #!/bin/bash echo “Enter your username” read username if [ "$username" = "student" ] then echo "Enter your password" read password if [ "$password" = "student" ] then echo "welcome student" else echo "Your password is error" fi else echo "Your username is error" fi (2)until 语句 编写 Shell 程序,使用 until 语句计算 1~100 的和。程序文件名为:CalculateSum1.sh。 参考程序 vi /home/student/ CalculateSum1.sh #!/bin/bash sum=0 number=1 until ! test $number -le 100 do sum=$[ $sum + $number ] let number=$number+1 done echo "The summary is $sum" (3)while 语句 编写 Shell 程序,使用 while 语句计算 1~100 的和。程序文件名为:CalculateSum2.sh
Lim操作系统》实验指导/实验六:shl编程基础5 参考程序 vi /home/studentCalculate Sum2 sh #!/bin/bash sum=O while((i<=100)) sum=(S((Ssum+Si)) i=($(Si+1)) echo "The Summary is ssum" (4)for语句 编写Shel程序,统计当前目录下文件的个数。程序文件名为: Filecount sh 参考程序 #!/bin/bash cd /home/student for file in‘ls if![-d Sfile ther let count=Scount+ echo "There are Scount files" 要求 (1)请编写She‖脚本,判断用户输入的年份是否为闰年。 (2)请编写She‖脚本,打印给定的行数的*号。第一行打印1个,第二行打印2个,以此 类推。行数由用户输入确定 请根据上述2个要求,进行具体实验,并将She脚本填写到实验报告册中。 4、函数定义及其使用 Shell有自定义函数的功能,通过定义函数可以使She|脚本结构性更为清晰且易于维护。 (1)编写She程序,读取用户输入的数据并进行计算。程序文件名为: ReadCalculate sh 参考程序 vi/home/student/ReadCalculate sh #!/bin/bash if[$#-eq2] for var in S let "sum + Sva one echo sum is Ssum" elif 管理科学与工程学科/共10页第5页
《Linux 操作系统》实验指导 / 实验六:Shell 编程基础 管理科学与工程学科 / 共 10 页,第 5 页 参考程序: vi /home/student/CalculateSum2.sh #!/bin/bash i=1 sum=0 while(($i<=100)) do sum=($(($sum+$i))) i=($(($i+1))) done echo "The Summary is $sum" (4)for 语句 编写 Shell 程序,统计当前目录下文件的个数。程序文件名为:FileCount.sh。 参考程序: #!/bin/bash cd /home/student for file in ‘ls’ do if ! [ -d $file ] then let count=$count+1 fi done echo "There are $count files" 要求: (1)请编写 Shell 脚本,判断用户输入的年份是否为闰年。 (2)请编写 Shell 脚本,打印给定的行数的*号。第一行打印 1 个,第二行打印 2 个,以此 类推。行数由用户输入确定。 请根据上述 2 个要求,进行具体实验,并将 Shell 脚本填写到实验报告册中。 4、函数定义及其使用 Shell 有自定义函数的功能,通过定义函数可以使 Shell 脚本结构性更为清晰且易于维护。 (1)编写 Shell 程序,读取用户输入的数据并进行计算。程序文件名为:ReadCalculate.sh。 参考程序: vi /home/student/ReadCalculate.sh #!/bin/bash Sum() { if [ $# -eq 2 ] then for var in $*; do let "sum += $var" done echo "sum is $sum" elif