ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:165.70KB ,
资源ID:8202813      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8202813.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(linux实验及课程设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

linux实验及课程设计.docx

1、linux实验及课程设计Linux操作系统基础课程设计参考文档Linux操作系统基础课程设计1、(必做)使用虚拟机VMware安装linux系统(1)把一个10G的硬盘进行合理分区,其中有有安装系统的区域,有存放数据的区域,并创建合理的交换分区文件。(2)加载第2块硬盘(8G),该硬盘分为3个分区,1个主分区(2G)和2个逻辑分区(分别为3G)。(3)新建目录/mnt/ljp1,/mnt/ljp2,把第2块硬盘的逻辑分区1和逻辑分区2分别挂载到/mnt/ljp1和/mnt/ljp2(要求系统启动后可以自动挂载分区)。手动挂载: mount /dev/sdb5 /mnt/ljp1 mount /

2、dev/sdb6 /mnt/ljp2自动挂载: vi /etc/fstab /dev/sdb5 /mnt/ljp1 ext3 defaults 0 0 /dev/sdb6 /mnt/ljp2 ext3 defaults 0 0 2、(必做)在根目录下有四个文件 m1.txt,m2.txt,m3.txt,m4.txt,用 Shell 编程,实现自动 创建 m1,m2,m3,m4 四个目录,并将 m1.txt,m2.txt,m3.txt,m4.txt 四个文件分别拷贝到各自相应的目录下。3、(必做)编写一个 Shell 程序,用户输入1个数字,实现如下功能:(1)计算从1到用户输入数字的和。(1+

3、2+3+n)(2)计算从1到用户输入数字的所有奇数数字的和。(1+3+5)4、(必做)编写一个 Shell 程序,实现如下功能:(1). 当运行一个程序的时候,这个程序会让使用者选择 Y 或 N ;(2)如果使用者输入 Y 或 y 时,就显示 OK, continue (3)如果使用者输入 n 或 N 时,就显示 Oh, interrupt !(4)如果不是 Y/y/N/n 之内的其他字节,就显示 I dont know what your choice is (利用中括号、 & 与 | 来实现)5、(必做)某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决方案:(1)在下午 4

4、 :50 删除/abc 目录下的全部子目录和全部文件;(2)从早 8:00下午 6:00 每小时读取/xyz 目录下 x1 文件中每行第一个域的全部数据加入 到/backup 目录下的 bak01.txt 文件内;(3)每逢星期一下午 5:50 将/data 目 录 下 的所 有 目 录 和 文 件 归档 并 压 缩 为 文 件 :backup.tar.gz;(4)在下午 5:55 将 IDE 接口的 CD-ROM 卸载(假设:CD-ROM 的设备名为 hdc);(注:使用计划任务cron来实现)6、(选做)使用者输入一个文档名,做出以下判断:(1). 这个文件是否存在,若不存在则给予一个“F

5、ilename does not exist”的信息,并中断程序;(2). 若这个文件存在,则判断他是个文件或目录,结果输出“Filename is regular file”或“Filename is directory”;(3). 判断一下,运行者的身份对这个文件或目录所拥有的权限,并输出权限数据!(注意利用 test 与 & 还有 | 等标志!)7、(选做)撰写一支程序,他的作用是:1.) 先查看一下 /root/test/logical 这个名称是否存在;2.) 若不存在,则创建一个文件,使用 touch 来创建,创建完成后离开; 3.) 如果存在的话,判断该名称是否为文件,若为文件则

6、将之删除后创建一个目录,档名为 logical ,之后离开; 4.) 如果存在的话,而且该名称为目录,则移除此目录!8、(选做)(任选其一)(1)编写一个 Shell 程序,键盘输入两个数及+、-、*、与/中的任一运算符,计算这两个数的运算 结果。(2)编写 4 个函数分别进行算术运算+、-、*、/,并编写一个菜单,实现运算命令。运算符9、(选做)编写一个 Shell 程序,呈现一个菜单,有 0-5 共 6 个命令选项,1 为挂载 U 盘,2 为 卸载 U 盘,3 为显示 U 盘的信息,4 把硬盘中的文件拷贝到 U 盘,5 把 U 盘中的文件拷贝到硬盘 中,选 0 为退出。程序分析:把此程序分

7、成题目中要求的 6 大功能模块,另外加一个菜单显示及选择的主模板。第 1章 Shell 脚本编程 Shell 命令行的运行 编写、修改权限和执行 Shell 程序的步骤 在 Shell 程序中使用参数和变量 表达式比较、循环结构语句和条件结构语句 在 Shell 程序中使用函数和调用其他 Shell 程序1-1 Shell 命令行书写规则 Shell 命令行的书写规则对 Shell 命令行基本功能的理解有助于编写更好的 Shell 程序,在执行 Shell 命令时多个命 令可以在一个命令行上运行,但此时要使用分号(;)分隔命令,例如:rootlocalhost root# ls a* -l;f

8、ree;df长 Shell 命令行可以使用反斜线字符()在命令行上扩充,例如: rootlocalhost root# echo “this is long command”This is long command注意: “”符号是自动产生的,而不是输入的。1-2 编写/修改权限及执行 Shell 程序的步骤 编写 Shell 程序 执行 Shell 程序Shell 程序有很多类似 C 语言和其他程序设计语言的特征,但是又没有程序语言那样复杂。 Shell 程序是指放在一个文件中的一系列 Linux 命令和实用程序。在执行的时候,通过 Linux 操 作系统一个接一个地解释和执行每条命令。首先

9、,来编写第一个 Shell 程序,从中学习 Shell 程序的编写、修改权限、执行过程。1-2-1 编辑 Shell 程序编辑一个内容如下的源程序,保存文件名为 date,可将其存放在目录/bin 下。 rootlocalhost bin#vi date#! /bin/shecho “Mr.$USER,Today is:”echo &date “+%B%d%A”echo “Wish you a lucky day !”注意:#! /bin/sh 通知采用 Bash 解释。如果在 echo 语句中执行 Shell 命令 date,则需要在 date命令前加符号“&”,其中%B%d%A 为输入格式

10、控制符。1-2-2 建立可执行程序编辑完该文件之后不能立即执行该文件,需给文件设置可执行程序权限。使用如下命令。rootlocalhost bin#chmod +x date1-2-3 执行 Shell 程序执行 Shell 程序有下面三种方法: 方法一:rootlocalhost bin#./ dateMr.root,Today is:二月 06 星期二Wish you a lucky day !方法二:另一种执行 date 的方法就是把它作为一个参数传递给 Shell 命令: rootlocalhost bin# Bash dateMr.root,Today is:二月 06 星期二Wis

11、h you a lucky day !方法三:为了在任何目录都可以编译和执行 Shell 所编写的程序,即把/bin 的这个目录添加到整个 环境变量中。具体操作如下: rootlocalhost bin#. dateMr.root,Today is:二月 06 星期二Wish you a lucky day !实例 1-1:编写一个 Shell 程序 mkf,此程序的功能是:显示 root 下的文件信息,然后建立一个 kk 的文件夹,在此文件夹下建立一个文件 aa,修改此文件的权限为可执行。 分析:此 Shell 程序中需要依次执行下列命令为:进入 root 目录:cd /root显示 roo

12、t 目录下的文件信息:ls l新建文件夹 kk: mkdir kk进入 root/kk 目录:cd kk新建一个文件 aa: vi aa #编辑完成后需手工保存 修改 aa 文件的权限为可执行:chmod +x aa回到 root 目录:cd /root因此该 Shell 程序只是以上命令的顺序集合,假定程序名为 mkfrootlocalhost root#vi mkf cd /rootls l mkdir kk cd kkvi aachmod +x aa cd /root1-3 在 Shell 程序中使用的参数 位置参数 内部参数如同 ls 命令可以接受目录等作为它的参数一样,在 Shell

13、 编程时同样可以使用参数。Shell程序中的参数分为位置参数和内部参数等。1-3-1 位置参数由系统提供的参数称为位置参数。位置参数的值可以用$N 得到,N 是一个数字,如果为 1, 即$1。类似 C 语言中的数组,Linux 会把输入的命令字符串分段并给每段进行标号,标号从 0 开 始。第 0 号为程序名字,从 1 开始就表示传递给程序的参数。如$0 表示程序的名字,$1 表示传 递给程序的第一个参数,以此类推。1-3-2 内部参数上述过程中的$0 是一个内部变量,它是必须的,而$1 则可有可无,最常用的内部变量有$0、$#、$?、$*,它们的含义如下。 $0:命令含命令所在的路径。 $1:

14、 传递给程序的第1个参数。 $2: 传递给程序的第2个参数。(以此类推) $#:传递给程序的总的参数数目。 $?:Shell 程序在 Shell 中退出的情况,正常退出返回 0,反之为非 0 值。 $*:传递给程序的所有参数组成的字符串。 $:当前进程的进程号。实例 1-2:编写一个 Shell 程序,用于描述 Shell 程序中的位置参数为:$0、$#、$?、$*,程序名为 test1,代码如下: rootlocalhost bin#vi test1#! /bin/shecho “Program name is $0”;echo “There are totally $# parameter

15、s passed to this program ”;echo “The last is $?”;echo “The parameter are $*”;执行后的结果如下:rootlocalhost bin# test1 this is a test program /传递 5 个参数Program name is /bin/test1 /给出程序的完整路径和名字There are totally 5 parameters passed to this program / 参数的总数The last is 0 /程序执行效果The parameters are this is a test p

16、rogram / 返回由参数组成的字符串注意:命令不计算在参数内。实例 1-3:利用内部变量和位置参数编写一个名为 test2 的简单删除程序,如删除的文件名为 a,则在终端中输入的命令为:test a分析:除命令外至少还有一个位置参数,即$#不能为 0,删除不能为$1,程序设计过程如下。(1) 用 vi 编辑程序 rootlocalhost bin#vi test2#! /bin/shif test $# -eq 0 thenecho “Please specify a file!”elsegzip $1 /现对文件进行压缩mv $1.gz $HOME/dustbin /移动到回收站echo

17、 “File $1 is deleted !”fi(2) 设置权限 rootlocalhost bin#chmod +x test2 (3) 运行rootlocalhost bin# test2 a (如果 a 文件在 bin 目录下存在) File a is deleted!1-4 在 Shell 程序中的使用变量 变量的赋值 变量的访问 变量的输入1-4-1 变量的赋值在 Shell 编程中,所有的变量名都由字符串组成,并且不需要对变量进行声明。要赋值给 一个变量,其格式如下:变量名=值注意:等号(=)前后没有空格 例如:x=6a=”How are you ”表示把 6 赋值给变量 x,字

18、符串“How are you ”赋值给变量 a。1-4-2 访问变量值如果要访问变量值,可以在变量前面加一个美元符号“$”,例如: rootlocalhost bin#a=”How are you ”rootlocalhost bin#echo “He just said:$a” He just said:How are you 一个变量给另一个变量赋值可以写成:变量 2=$变量 1例如:x=$ii+可以写成:i=$i+11-4-3 键盘读入变量值在 Shell 程序设计中,变量的值可以作为字符串从键盘读入,其格式为:read 变量 例如: rootlocalhost bin#read str

19、read 为读入命令,它表示从键盘读入字符串到 str。实例 1-4:编写一个 Shell 程序 test3,程序执行时从键盘读入一个目录名,然后 显示这个目录下所有文件的信息。分析:存放目录的变量为 DIRECTORY,其读入语句为:read DIRECTORY显示文件的信息命令为:ls a rootlocalhost bin#vi test3#! /bin/shecho “please input name of directory”read DIRECTORY cd $DIRECTORY ls l (2)设置权限rootlocalhost bin#chmod +x test3 (3)执行

20、rootlocalhost bin#./test3 注意:输入路径时需间隔符“/”结果。实例 1-5:运行程序 test4,从键盘读入 x、y 的值,然后做加法运算,最后输出(1)用 vi 编辑程序 rootlocalhost bin#vi test4#! /bin/shecho “please input x y”read x,y z=expr $x+$yecho “The sum is $z”(2)设置权限 rootlocalhost bin#chmod +x test4 (3)执行rootlocalhost bin#./ test445 78The sum is 123 注意:表达式 t

21、otal=expr $total +$num及 num=expr $num +1中的符号“”为键盘左上角的“”键。1、特殊符号(1)引用符号在bash中,许多字符有特殊的含义。如果希望bash忽略某些字符的特殊含义,可以使用一种称为“引用”的技术,通知Shell暂时忽略被引用字符的特殊含义,将其作为普通字符处理。Shell在使用“引用”时用到三种字符:转义符“”、单引号“”和双引号“”引用符号1 转义符“”将转义符“”放在Shell特殊字符之前,则Shell忽略该字符原有的特殊含义。用这种方式时,必须在每一个欲忽略其特殊含义的特殊字符之前添加一个“”字符。引用符号2 单引号“”将字符串放在一对

22、单引号之间,则单引号内的所有字符的特殊含义都被忽略,而只作为普通字符解释。例1:下面两条命令是等效的。# echo f*?# echo f*?例2:# string=$PATH# echo $string$PATH例3:# name=liuhongqis home引用符号3 双引号“”使用双引号的引用与单引号的类似,括在双引号内的大部分特殊字符将被看作普通字符,但也有一些特殊字符即便用双引号括起来之后仍然保留着其特殊的意义,比如$、”和。例:假定变量PATH的值为/usr/bin# string=“$PATH and $PATH”# echo $string/usr/bin and $PATH

23、(2) 命令替换符“”命令替换符“”(反引号)的作用跟引用字符的作用相反。反引号括起来的字符串被Shell解释为命令行,在执行时,Shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。这个字符所对应的键一般位于键盘的左上角。例1:# pwd/root# string=“Current directory is pwd”# echo $stringCurrent directory is /root例2:# today=date# echo Today is $todayToday is Mon Jan 15 16:20:12 CST 20022、expr 命令

24、expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串。 格式为: expr Expression (命令读入Expression 参数,计算它的值,然后将结果写入到标准输出)参数应用规则:用空格隔开每个项;用 (反斜杠) 放在 shell 特定的字符前面;对包含空格和其他特殊字符的字符串要用引号括起来expr用法实例讲解 (1)整数运算# expr 14 % 95# expr 1000 + 9001900# expr 30 / 3 / 25# expr 30 * 3 (使用乘号时,必须用反斜线屏蔽其特定含义。)90# expr 30

25、* 3expr: Syntax error(2)计算字串长度# expr length “this is a test”14(3)增量计数说明:expr在循环中用于增量计算。先将变量初始化为0,然后循环值加1,反引号的用法为命令替代。# LOOP=0# LOOP=expr $LOOP + 11-5 表达式的比较 字符串操作符 逻辑运算符 用 tes t 比较的运算符 数字比较符 文件操作符在 Shell 程序中,通常使用表达式比较来完成逻辑任务。表达式所代表的操作符有字符操作 符、数字操作符、逻辑操作符、以及文件操作符。其中文件操作符是一种 Shell 所独特的操作符。 因为 Shell 里的

26、变量都是字符串,为了达到对文件进行操作的目的,于是才提供了文件操作符。1-5-1 字符串比较作用:测试字符串是否相等、长度是否为零,字符串是否为 NULL。 常用的字符串操作符如表 1-1所示.。表 1-1 常用的字符串操作符字符串操作符含义及返回值=比较两个字符串是否相同,相同则为“真”!=比较两个字符串是否不相同,不同则为“真”-n比较两个字符串长度是否大于零,若大于零则为“真”-z比较两个字符串长度是否等于零,若等于零则为“真”实例 1-6:从键盘输入两个字符串,判断这两个字符串是否相等,如相等输出。【例1】 字符串比较的使用。# str1=abcd# test $str1 = abcd

27、# echo $?【例2】 含有空格的字符串的比较。# strl=“”# test $str1# echo $?# test “$str1”# echo $?# test n “$str1”# echo $?test 命令的测试功能test是Shell程序中的一个表达式,用test命令去判断文件的存在与性质,变量的相互关系;如果条件为真,则返回一个 0 值。如果表达式不为真,则返回一个大于 0 的值, 也可以将其称为假值。检查最后所执行命令的状态的最简便方法是使用 $? 值。test 命令期望在命令行中找到一个参数,当 shell 没有为变量赋值时,则将该变量视为空。这意味着在处理脚本时,一旦

28、脚本寻找的参数不存在,则 test 将报告该错误。test 和 命令虽然 Linux 和 UNIX 的每个版本中都包含 test 命令,但该命令有一个更常用的别名 左方括号:。test 及其别名通常都可以在 /usr/bin 或 /bin (取决于操作系统版本和供应商)中找到。当您使用左方括号而非 test 时,其后必须始终跟着一个空格、要评估的条件、一个空格和右方括号。右方括号不是任何东西的别名,而是表示所需评估参数的结束。条件两边的空格是必需的,这表示要调用 test。test 和 的语法如下:test expression测试的标志代表意义1. 关於某个档名的文件类型判断,如 test

29、-e filename 表示存在否-e 该档名是否存在?(常用)-f 该档名是否存在且为文件(file)?(常用)-d 该档名是否存在且为目录(directory)?(常用)-b 该档名是否存在且为一个 block device 装置?-c 该档名是否存在且为一个 character device 装置?-S 该档名是否存在且为一个 Socket 文件?-p 该档名是否存在且为一个 FIFO (pipe) 文件?-L 该档名是否存在且为一个连结档?2. 关於文件的权限侦测,如 test -r filename 表示可读否 (但 root 权限常有例外)-r 侦测该档名是否存在且具有可读的权限?-w 侦测该档名是否存在且具有可写的权限?-x 侦测该档名是否存在且具有可运行的权限?-u 侦测该档名是否存在且具有SUID的属性?-g 侦测该档名是否存在且具有SGID的属性?-k 侦测该档名是否存在且具有Sticky bit的属性?-s 侦测该档名是否存在且为非空白文件?3. 两个文件之间的比

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1