linux shell编程实验
实验三 LINUX SHELL编程

实验三LINUX SHELL 编程四、实验内容本实验包含两个具体的SHELL程序编写任务,较为全面地涉及了SHELL 程序的设计方法和技术。
内容如下:1、创建以下菜单程序:USER: ****HOST: ********DATE: **/**/20**A:创建子目录并复制文件B:文件权限测试C:文件字符转换D:文件总数及文本行数统计E:文件查找Q: 退出系统———————————————————————————————A :在用户家目录下创建名字为本人姓名的子目录,其存取权限为(drwxr-xr-x)。
测试目录确实存在后,将已存在的 file1、file2 两文件拷入其中并分别显示两文件的内容。
显示完成后将file1、file2两文件截断为大小为0的空文件。
B:测试当前用户对系统中某文件是否有 r、w、x 的权限,输出测试结果。
C:将 file1、file2 两文件中的小写字符转换为大写,并将转换后的内容分别写入新文件。
判断上述操作成功后分别显示转换后的新文件的内容。
D:统计/dev 目录下目录文件和符号链接文件的数目;统计系统中某文本文件中空行的行数;显示当前系统中所有环境变量。
E:在/dev 目录下查找由 s 开头且文件名由 5 个字符组成的文件,找到后用file 命令显示其文件类型。
#!/bin/bashUSER=WWcHOST=`hostname -s`MYDATE=`date +%d/%m/%y`doclearcat << MAYDAY------------------------------------------------------------------User:$USER Host:$HOST Date:$MYDATE------------------------------------------------------------------A:创建子目录并复制文件B:文件权限测试C:文件字符转换D:文件总数及文本行数统计E:文件查找Q:退出系统-----------------------------------------------------------------MAYDAYecho -n "Please Choose [A,B,C,D,E,Q]"read CHOICEcase $CHOICE inA)echo "A:创建子目录并复制文件"echo "输入要创建的文件名:"read FILEmkdir $FILEchmod 755 $FILEtest -d $FILEif [ $? -eq 0 ]thencp file1 $FILEcp file2 $FILE:>$FILE/file1echo "file2内容"cat file2echo "#:>file2"fi;;B)echo "B:文件权限测试"echo "请输入要测试的文件绝对路径" read NAME1test -r $NAME1if [ $? -eq 0 ]thenecho "可读"elseecho "不可读"fitest -w $NAME1if [ $? -eq 0 ]thenecho "可写"elseecho "不可写"fitest -x $NAME1if [ $? -eq 0 ]thenecho "可执行"elseecho "不可执行"fiecho "C:文件字符转换"cat file1 | tr "[a-z]" "[A-Z]" >file1.outdiff -q file1 file1.outif [ $? -eq 1 ]thenecho "file1.out内容"cat file1.outficat file2 | tr "[a-z]" "[A-Z]" >file2.outdiff -q file2 file2.outif [ $? -eq 1 ]thenecho "file2.out内容"cat file2.outfi;;D)echo "/dev 目录下目录文件和符号链接文件的数目" find /dev -type d | wc -lfind /dev -type l | wc -lecho "file1空行行数统计"grep ^$ file1 | wc -lecho "显示当前系统中所有环境变量"env;;E)echo "文件查找"find /dev -name 's' | xargs file;;Q)exit 0echo "请输入ABCDEQ"esacread DDdone2、文件 pc.txt 中保存了三个班级的学生选课成绩,试编写一段 shell 程序对文件内容进行统计、计算后输出各个班级选课的学生人数及每班选课成绩的优秀率。
Linux shell编程实验作业(含答案)

Linux shell实验作业参考1.编写一个Shell脚本,实现输入一个数字,输出该数字的阶乘。
思路:使用for循环,从1到输入的数字进行累乘,最终输出结果。
#!/bin/bashecho "请输入一个数字:"read numfact=1for ((i=1;i<=$num;i++))dofact=$(($fact*$i))doneecho "阶乘为:$fact"2. 编写一个Shell脚本,实现输入一个目录,输出该目录下所有文件名和文件大小。
#!/bin/bash# 获取目录路径read -p "请输入目录路径:" dir_path# 判断目录是否存在if [ ! -d "$dir_path" ]; thenecho "目录不存在!"exit 1fi# 遍历目录下所有文件for file in "$dir_path"/*do# 判断是否是文件if [ -f "$file" ]; then# 获取文件名和大小file_name=$(basename "$file")file_size=$(du -h "$file" | awk '{print $1}')echo "$file_name : $file_size"fidone使用方法:➢将以上代码保存为一个.sh文件,例如:`list_files.sh`➢给该文件添加执行权限:`chmod +x list_files.sh`➢在终端中运行该脚本:`./list_files.sh`,然后输入目录路径即可。
3. 编写一个Shell脚本,实现输入一个字符串,输出该字符串中所有大写字母的个数。
脚本的基本思路是遍历输入的字符串,对于每个字符,判断是否为大写字母,如果是则计数器加一。
linux shell实验报告

linux shell实验报告《Linux Shell实验报告》摘要:本实验报告主要介绍了在Linux操作系统中使用Shell进行实验的过程和结果。
通过实验,我们深入了解了Shell的基本概念、常用命令和操作技巧,同时掌握了Shell脚本编写和执行的方法。
实验结果表明,Shell在Linux系统中具有重要的作用,能够提高工作效率和操作便利性。
一、实验目的本实验旨在通过实际操作,加深对Linux Shell的理解和掌握,探索Shell在Linux系统中的应用和作用。
二、实验内容1. Shell的基本概念在实验中,我们首先了解了Shell的基本概念,包括Shell是什么、其作用和特点等内容。
通过实际操作,我们发现Shell是一种命令行解释器,能够接收用户输入的命令并将其转化为操作系统能够理解的指令,从而实现对系统资源的管理和控制。
2. 常用Shell命令在实验中,我们学习了一些常用的Shell命令,如cd、ls、mkdir、rm等,以及它们的用法和功能。
通过实际操作,我们发现这些命令能够帮助我们在Linux 系统中进行文件和目录的管理,实现对系统资源的快速访问和操作。
3. Shell脚本编写和执行在实验中,我们还学习了如何编写和执行Shell脚本。
通过实际操作,我们发现Shell脚本能够帮助我们实现对一系列命令的批量执行,从而提高工作效率和操作便利性。
三、实验结果通过实验,我们深入了解了Shell的基本概念、常用命令和操作技巧,同时掌握了Shell脚本编写和执行的方法。
实验结果表明,Shell在Linux系统中具有重要的作用,能够提高工作效率和操作便利性。
四、结论本实验通过实际操作,加深了对Linux Shell的理解和掌握,探索了Shell在Linux系统中的应用和作用。
通过实验,我们发现Shell在Linux系统中具有重要的作用,能够提高工作效率和操作便利性,对于Linux系统的管理和维护具有重要的意义。
Linux实验四 shell编程(一)

实验四shell编程(一)(二) SHELL中的特殊字符1、通配符通常的通配符有三种:* 星号,它匹配任意字符的0次或多次出现。
但注意,文件名前面的圆点(.)和路径名中的斜线(/)必须显示匹配。
?问号,它匹配任意一个字符。
应该注意:字符 * 和?在一对方括号外面是通配符,若出现在其内部,它们就失去通配符的能力了。
!叹号,若它紧跟在一对方括号的左方括号[之后,则表示不在一对方括号中所列出的字符。
分析:字符 * 和?在一对方括号外面是通配符,若出现在其内部,它们就失去通配符的能力了。
分析:除了file文件,其他都列出来2、引号在SHELL中引号分为三种:单引号、双引号、和倒引号。
(1)双引号由双引号括起来的字符,除$、倒引号和反斜线(\)仍保留其功能外,其余字符通常作为普通字符对待。
(2)单引号由单引号括起来的字符都作为普通字符出现。
(3)倒引号分析:单引号括起来的字符都作为普通字符出现;反引号包围起来的字符串被运行,date显示当前的日期。
(4)反斜线转义字符,若想在字符串中使用反斜线本身,则必须采用(\\)的形式,其中第一个反斜线作为转义字符,而把第二个反斜线变为普通字符。
(三)条件测试1.字符串比较= 比较两个字符串是否相等!= 比较两个字符串是否不相等-n 判断字符长度是否大于零-z 判断字符长度是否等于零分析:条件测试中,字符串比较有两种方法:1、test 字符操作符字符;2[ 字符操作符字符 ],用echo $?显示结果,条件成立时,测试结果返回值为0,否则为1。
上图中字符串 sss不等于ssss,返回值为12.数字比较-eq 比较两个数是否相等-ge 比较一个数是否大于或是等于另一个数-le 比较一个数是否大于或是等于另一个数-ne 比较两个数是否不等-gt 比较一个数是否大于另一个数-lt 比较一个数是否小于另一个数分析:数字比较有两种方法:1、test 整数操作符整数;2[ 整数操作符整数 ],用echo $?显示结果,条件成立时,测试结果返回值为0,否则为1。
linuxshell编程实验总结

linuxshell编程实验总结Linux Shell编程实验总结在Linux系统中,Shell编程是一种强大的工具,可以帮助用户进行自动化任务、脚本编写和系统管理。
通过学习和实践Shell编程,我深深地体会到了其在提高工作效率和简化任务流程方面的重要性。
在这篇文章中,我将总结我在Linux Shell编程实验中的经验和心得。
一、实验概述在这次Linux Shell编程实验中,我学习并应用了Shell脚本语言,掌握了基本的语法和命令,并通过实验来加深对Shell编程的理解和掌握。
实验的内容包括变量的定义和使用、条件语句的实现、循环结构的应用等。
二、变量的定义和使用在Shell编程中,变量的定义和使用是非常重要的一部分。
通过实验,我学会了如何使用“=”符号来给变量赋值,并可以在后续的命令中使用这个变量。
在实践中,我发现给变量加上$符号可以获取变量的值,并且可以在字符串中插入变量。
这在编写脚本时非常有用,可以将一些可变的部分定义为变量,提高程序的可读性和可维护性。
三、条件语句的实现条件语句在Shell编程中起到了重要的作用,可以根据不同的条件执行不同的命令。
通过实验,我掌握了Shell中常用的条件判断语句,如if语句和case语句。
在编写条件语句时,我注意到要使用适当的比较运算符(如“-eq”表示等于、“-ne”表示不等于等),并在语句块的结尾加上“fi”或“esac”来结束条件语句的定义。
四、循环结构的应用在实践中,我发现循环结构是Shell编程中非常重要的一部分,可以重复执行特定的任务。
通过实验,我掌握了两种常见的循环结构:for循环和while循环。
在编写循环结构时,我注意到要使用适当的循环控制语句,如“break”可以用于跳出循环,“continue”可以用于跳过当前循环中的剩余命令,继续下一次循环。
五、实验心得通过这次实验,我深刻认识到了Shell编程在自动化任务和脚本编写方面的重要性。
Shell编程既可以简化日常工作中的重复性任务,又可以提高工作效率和减少出错的可能性。
linuxshell编程实验总结

Linux Shell 编程实验总结1.引言本文档总结了在学习Li nu xS he ll编程过程中的实验经验和心得体会。
通过对L in ux Sh el l编程实验的实施和总结,我们能够更好地理解S h el l脚本的运行机制,掌握Sh el l脚本的基本语法和常用命令,提高编写高效、精确的Sh e ll脚本的能力。
2.实验一:S hell 脚本基础2.1实验目的本实验旨在帮助学员熟悉Sh el l脚本的基本语法和常用命令,掌握脚本的编写与执行方法。
2.2实验内容在本实验中,我们学习了如何编写具有特定功能的Sh el l脚本,如输出H el lo Wo rl d、计算两个数之和、判断文件是否存在等。
2.3实验心得通过本实验的实施,我对Sh el l脚本的基本语法有了更深入的理解。
在编写脚本的过程中,我发现使用变量、条件判断和循环结构可以极大地提高脚本的灵活性和实用性。
同时,我也加深了对常用命令的认识和掌握,如e ch o、re ad、i f-e ls e、fo r循环等。
这些基本的知识将为后续的实验和项目实践打下坚实的基础。
3.实验二:文件和目录操作3.1实验目的本实验旨在帮助学员了解Li nu x文件系统的基本操作,掌握S he ll脚本中与文件和目录相关的命令。
3.2实验内容在本实验中,我们学习了如何创建、复制、重命名和删除文件、目录,以及如何查询文件和目录的属性信息等。
3.3实验心得通过本实验的实施,我对Li nu x文件系统有了更深入的了解。
我学会了如何使用S he ll脚本快速处理文件和目录,并且能够根据需求编写相应的脚本来操作文件。
例如,通过使用fi n d命令来查找文件,使用g r ep命令来搜索文件内容等。
这些技能在日常工作中非常有用,能够提高工作效率和准确性。
4.实验三:文本处理4.1实验目的本实验旨在帮助学员掌握Sh el l脚本中处理文本的常用命令和技巧,能够快速有效地处理常见的文本数据。
linux实验五、Shell脚本程序编制实验

实验五Shell脚本程序编制实验●编写一个Shell命令脚本程序的基本步骤如下:●(1)编辑包含用户命令脚本程序的文本文件●(2)添加Shell定义语句,使Linux操作系统可以知道用户使用哪一种Shell●(3)编写Shell命令脚本程序内容●(4)保存脚本程序并退出。
用“chmod +x ”命令改变该脚本程序的存取权限和执行权限,使其可以被适当的用户使用。
●(5)运用该命令脚本程序以进行测试●(6)如有必要,可进行程序纠错。
●(7)如有必要,可把完整的命令脚本程序移动到相应位置●(8)如有必要,可在path语句中加上此脚本的路径练习:编写书本P107welcome Shell脚本程序运行脚本程序的三种方法:a.bash 脚本文件名b.bash < 脚本文件名c.chmod u(或g,o,a)+x 脚本文件名#为脚本添加执行权限Shell定义的环境变量shell在开始执行时就已经定义了一些和系统的工作环境有关的变量,这些变量用户还可以重新定义,常用的shell环境变量有:●HOME:用于保存注册目录的完全路径名。
●PATH:用于保存用冒号分隔的目录路径名,shell将按PATH变量中给出的顺序搜索这些目录,找到的第一个与命令名称一致的可执行文件将被执行。
●TERM:终端的类型。
●UID:当前用户的标识符,取值是由数字构成的字符串。
●PWD:当前工作目录的绝对路径名,该变量的取值随cd命令的使用而变化。
●PS1:主提示符,在特权用户下,缺省的主提示符是“#”,在普通用户下,缺省的主提示符是“$”。
●PS2:在shell接收用户输入命令的过程中,如果用户在输入行的末尾输入“\”然后回车,或者当用户按回车键时shell判断出用户输入的命令没有结束时,显示这个辅助提示符,提示用户继续输入命令的其余部分,缺省的辅助提示符是“>”。
练习:使用echo显示上述环境变量内容注意:PS1 提示符设定标记:●\d 日期●\H 完整主机名\h 主机名第一段●\t 24小时时间\T 12小时时间●\u 用户名●\V Bash版本信息●\w 完整的工作路径\W 最后一层目录名●\# 下达的第几个命令●\\$ 提示符(root $,普通用户#)练习:输入以下命令,思考设置PS1环境变量的作用PS1=‟\u-\w(\#)\\$‟PS1=[\u@\h \W]\\$定义变量格式:变量名=变量值引用变量$变量名只读变量readonly 变量名export命令对已定义的变量进行输出,使变量可被子shell使用位置参数位置参数是一种在调用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语句判断条件并执行对应的代码块。
条件可以使用比较运算符(如大于、小于、等于)和逻辑运算符(如与、或、非)进行判断。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux编程课程设计报告题目: Linux Shell编程
专业网络工程
学号姓名
指导教师
日期
题目:Linux Shell编程
一、设计目的和任务
实验目的:1.熟悉Shell环境和Shell的执行
2.熟悉Shell的基本语法和语句
3.了解Shell程序的调试方法
实验内容:1.编写Shell程序
2.调试和执行Shell程序
二、设计原理
Linux是一种开放源码、能够免费使用及自由传播的类似于UNIX操作系统。
它可运行于各种平台之上。
因为它不但具有UNIX系统的良好性能(如稳定性、安全性),同由于其具有开源和免费的特点,也越来越广泛地应用于各种嵌入式系统中。
Shell是用户和Linux操作系统内核程序间的一个借口。
Shell既是命令解释器,有事一种编程语言。
作为命令解释器,Shell为用户使用Linux 操作系统提供丰富的工具界面。
若用户输入命令,Shell负责解释执行该命令并向用户返回结果。
作为编程语言,它利用自身的语言结构将工具命令组合起来提供更复杂的功能。
三、实验环境和总体设计
1.PC一台
2.安装虚拟机版的Linux操作系统
四、详细设计步骤
1.打开vmware软件,启动Linux系统
2.用root用户名和密码登入系统中
3.将某目录下面所有的文件名后面加上所有者的名字,如a.txt的所有者为owner,修改后为a[owner].txt文件。
基本要求:
①使用方法为usage:程序名称目录名称
若没有“目录名称”参数,则修改当前目录下文件名称
②对目录中的子目录不做变化。
③ 给出实验结果。
五、结果测试与分析
六、存在的问题
Linux 系统的shell 作为操作系统的外壳,为用户提供使用操作系统的接口。
它是命令语言、命令解释程序及程序设计语言的统称。
Shell 是一个命令语言解
释器,他拥有自己内建的命令集,shell也能被系统中其他程序所调用。
用户在提示符下输入的命令都是由shell先解释后传给linux核心的。
所以学好shell编程很有必要。