LinuxShell自动化运维-课后习题答案_第1页
LinuxShell自动化运维-课后习题答案_第2页
LinuxShell自动化运维-课后习题答案_第3页
LinuxShell自动化运维-课后习题答案_第4页
LinuxShell自动化运维-课后习题答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LinuxShell自动化运维■课后习题答案

1.填空题

(1)环境变量、位置变量和预定义变量。

(2)脚本名,所有的参数

(3)使用read命令赋值、使用命令行的输出结果赋值、从文件读取赋值。

(4)hello

(5)与,或

2.选择题

(1)C

⑵C

(3)B

(4)A

(5)B

3.思考题

(l)Shell变量的自增运算符是i++和++i,i++表示先赋值再自加,++i表示先自加再赋值。

⑵be、expr、let

4.编程题

(1)#当变量a为null时则var=b

var=${a-b}

#当变量a为null或为空字符串时则var=b

var=${a:-b}

(2)printf("\033[字背景颜色;字体颜色m字符串\033[0m”);

1.填空题

(1)顺序语句,分支语句(条件语句),循环语句。

(2)if[条件表达式]

then

代码块1

else

代码块2

fi

(3)可读性较好,可执行条件一目了然。

(4)case变量值in

条件表达式1)

代码块1

条件表达式2)

代码块2

条件表达式3)

代码块3

*)

无匹配后代码块

esac

(5)if[条件表达式l];then

代码块1

elif[条件表达式2];then

代码块2

elif[条件表达式3];then

代码块3

else

代码块4

fi

2.选择题

(1)C

(2)A

(3)A

(4)D

⑸A

3.思考题

(1)IF语句和CASE语句相比,case语句的可读性较好,它把条件中所有可能出现的情况全部

列出来了,可执行条件一目了然。而且CASE语句的执行过程不像IF语句那样又一个逐项条

件顺序比较的过程。CASE语句中条件句的次序是不重要的,它的执行过程更接近于并行方

式。

4.编程题

(1)#!/bin/bash

#使用死循环实时显示ethO网卡发送的数据包流量

while:

do

echo,本地网卡ethO流量信息如下:'

ifconfigethO|grep"RXpack”|awk'(print$5}'

ifconfigethO|grep"TXpack”|awk'{print$5}'

sleep1

Done

1.填空题

(1)for变量名in取值列表

do

循环体

done

(2)for循环,while循环、util循环

(3)用于守护进程或持续运行的程序,其中循环的次数可以是固定的,也可以不固定。

(4)for循环实现、for循环放在后台执行和Linux管道实现高并发

(5)有名管道,无名管道

2.选择题

(1)C

(2)B

⑶B

⑷A

⑸B

3.思考题

(1)for循环主要用于固定次数的循环,而不是用于守护进程及无限循环,while循环语句主

要用来重复执行一组命令或语句,常用于守护进程或持续运行的程序,其中循环的次数可以

是固定的,也可以不固定。

4.编程题

(1)#!/bin/bash

source/etc/init.d/functions

foriin10.0.0.{1..22};do

ping-c1-w1$i&>/dev/null&&action$i&

done

(2)#!/bin/bash

#提取根分区剩余空间

disk_size=$(df-h/|awk7\〃{print$4}')

#提取内存剩余空间

disk_size=$(df-h/|awk7\〃{print$4}')

while:

do

#注意内存和磁盘提取的空间大小都是以Kb为单位

if[$disk_size-Ie512000-a$mem_size-Ie1024000];then

mail-sWarningroot«EOF

Insufficientresources,资源不足

EOF

fi

Done

L填空题

(1)Shell数组是相同数据类型的元素按一定顺序排列的元素集合,把有限个相同类型的变

量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,用于区分不

同内容的编号称为数组下标。

(2)普通数组关联数组

(3)关联数组使用之前需要声明,与普通数组最大的区别是关联数组由特定格式的键值对组

(4)数组的定义方法有直接定义数组、下标定义数组、间接定义数组和从文件中读入定义数

(5)array_name=(valuelvalue2value3.......)

数组名=(变量值1变量值2变量值3。。。。。。)

2.选择题

⑴A

(2)C

(3)D

(4)A

⑸B

3.编程题

(1)#!/bin/bash

username="mayuan"

获取字符串的长度

#!/bin/bash

username="mayuan,,

echo${#username}#6

(2)$arry_name[indexl]=valuel

$array_name[index2]=value2

数组名[下标上变量值

1.填空题

(1)强制退出最近的一层循环,用于for、while^repeat语句中强制退出

⑵函数名(乂

函数要实现的功能代码

)

或:

function函数名{

函数要实现的功能代码

)

⑶函数名参数1参数2

(4)传递到脚本的参数个数

(5)0-255

2.选择题

(1)C

(2)A

(3)C

(4)D

(5)D

3.编程题

(1)定义在子程序中的变量

(2)[root@db02scripts]#catdownload.sh

#!/bin/sh

[-f/etc/init.d/functions]&&./etc/init.d/functions##加载系统函数库

URL=$1##传参

DIR=$2

if[$#-ne2];then#判断传参个数

action"sh$0"/bin/false

echo"Warning:Lackparameter"

echo"USAGE:sh$0WEB_URLDIR_PATH"

exit1

fi

download(){##定义函数

If(!-d$DIR];then

read-p"$DIRnotexistneedcreate?(y/n)"char#read读入

if["$char"="y"]##if判断字符串比较""双引号括起来用=等号比较

then#整数比较不用引号可以用-eq

mkdir$DIR-p

cd$DIR

wget$URL&>/dev/null

if[$?-ne0];then

return"52"#return函数中的返回值,类似于exit

fi

else

return"51"

fi

fi

)

download$URL$DIR##前面dcwnload是函数名;$URL位置是函数的第一个参数,也是脚

本的第一个参数=$1

if[$?-eq0];then

action"wget$URL"/bin/true

else

sleep1

action"wget$URL"/bin/false

sleep1

exit1

fi

1.填空题

(1)一些普通字符一些元字符tmetacharacters)o

(2)普通字符包括大小写的字母数字,具有特殊的含义

(3)最少匹配m次且最多匹配n次

(4)匹配X或V。例如,“zlfood”能匹配“z”或“food”(此处请谨嗔)。“zf]ood”则匹配

“zood”或“food”

(5)grep[OPTIONS选项]PATTERN[FILENAMEFILENAME.......]

2.选择题

(1)A

(2)B

(3)D

(4)D

(5)B

3.简答题

(1)正则表达式与扩展正则表达式类似,只是扩展正则表达式表达更加简单

正则表达式需要打'转义字符来表示某些字符的意思,而扩展正则表达式则不需要:

(2)vicheckjp.sh

#!/usr/bln/sh

ChecklPAddr()

(

echo$11grep"A[0-9]\{1,3\}\.\([0-9]\{1,3\}\.\)\{2\}[0-9]\{1/3\}$">/dev/null;

#IP地址必须为全数字

if[$?-ne0]

then

return1

fi

ipaddr=$l

a='echo$ipaddr|awk-F.,{print$1}'、#以”.“分隔,取出每个列的值

b='echo$ipaddr|awk-F.'{print$2}'、

c='echo$ipaddr|awk-F.'{print$3}'、

d='echo$ipaddr|awk-F.'{print$4}'、

fornumin$a$b$c$d

do

if[$num-gt255]11[$num-It0]#每个数值必须在0-255之间

then

return1

fi

done

return0

)

if[$#-ne1];then#判断传参数量

echo"Usage:$0ipaddress."

exit

else

ChecklPAddr$l

Fi

1.填空题

(1)StreamEDitor即流编辑器模式匹配的过滤及修改文本

(2)sed一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为模式空间

(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容输出

到屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使

用重定向存储输出。sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写

转换程序等。

(3)模式空间(patternspace)、保持空间又称作暂存缓冲区(holdingspace)。

(4)sed[options]commandfilelfile2…

或:

sed[options]-fscriptfile

(5)A,$,.,*,[],1],\<\>,\(\),\{\}

2.选择题

(1)A

(2)C

⑶D

⑷c

⑸B

3.简答题

(1)第一步:sed每次将标准输入中的内容中的一行读入模式空间。

第二步:之后根据模式空间中的匹配条件进行匹配,符合条件进入下一阶段即普通编辑,不

满足则默认至标准输出,结束。

第三步:普通编辑之后分三个阶段,(1)普通编辑之后选择性显示至S

TDOUT,结束:(2)进入holdingspace进行高级编辑,编辑结束后选择性显示至模式空间,

之后再次根据编辑命令重复(2)-(3)过程;(3)若是出现多次编辑命令则需要再返回模

式空间根据编辑条件再次进行(2)-(3)步骤。

(2)sed'l!G;h;$!d'12345.txt

L填空题

(1)awk的处理文本和数据的流程方式是这样的。它逐行扫描文件,从第一行到最后一行,

寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把

匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。

(2)BEGIN和END

(3)awk'pattern'filename

或:

awk'{action}'filename

或:

awk'pattern{action}'filename

(4)if(条件表达式)

语句1

else

语句2

或:

if(条件表达式)语句1;else语句2

(5)break、continue语句

2.选择题

(1)A

(2)B

(3)C

(4)D

(5)C

3.简答题

(1)ifconfigethO|grep'inetaddr'|awk-F'{print$2}'|awk'{print$1}'

(2)arp-n|awk7A[l-9]/{system("arp-d"$!)}'

1.填空题

(1)CPU、网络、磁盘、内存

(2)vmstatssar、iostat、netstatsfree、ps、top、mpstat以及第三方开发工具,如:dstat、

collectl及开源监控项目tsar等

(3)服务器的CPU使用率、内存使用、虚拟内存交换情况、10读写情况。

(4)显示了多少进程在等待cpu,多少进程正在不可中断的休眠(等待10)。

(5)sar[options][-A][-ofile]t[n]

2.选择题

⑴A

(2)B

⑶c

(4)B

(5)B

3.简答题

(1)#netstat-i

KernelInterfacetable

IfaceMTUMetRX-OKRX-ERRRX-DRPRX-OVRTX-OKTX-ERRTX-DRPTX-OVRFig

et

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论