m3-第6周作业

 

1
shell题目:如果/oldboy不存在则创建他(不能用if判断)

回答:
[root@template ~]# [ -d /oldboy ] || mkdir /oldboy
[root@template ~]# echo $?
0
[root@template ~]# ls -ld  /oldboy
drwxr-xr-x. 6 oldboy root 4096 Jul 17 18:12 /oldboy

 

 

2
书写一个判断语句: 如果脚本参数个数 不等于2则显示input error并退出脚本

回答:
[root@template ~]# vim var.sh 
 
if [ $# -ne 2 ] ; then
echo "input error" 
exit 1;
fi
[root@template ~]# bash var.sh 4 5 6
input error
[root@template ~]# bash var.sh 4 
input error
[root@template ~]# bash var.sh 4 5

 

3
按要求写一个脚本:
命令行传递两个参数
判断参数个数如果不是2则显示使用帮助并退出脚本
计算两个参数的加减乘除四则运算并显示结果

回答:
[root@template ~]# vim test.sh 
 
if [ $# -ne 2 ] ; then
echo "USAGE:bash $0 var1 var2" 
exit 1;
 
else
        echo "$1 + $2 =" $(($1+$2))
        echo "$1 - $2 =" $(($1-$2))
        echo "$1 * $2 =" $(($1*$2))
        echo "$1 / $2 =" $(($1/$2))
fi
 
[root@template ~]# bash test.sh 8 4 5
USAGE:bash test.sh var1 var2
[root@template ~]# bash test.sh 8 4 
8 + 4 = 12
8 - 4 = 4
8 * 4 = 32
8 / 4 = 2

 

4 如何显示出如下字符串:

welcome to 01oldboyedu.com class01
welcome to 02oldboyedu.com class02
welcome to 03oldboyedu.com class03
welcome to 04oldboyedu.com class04
welcome to 05oldboyedu.com class05
welcome to 06oldboyedu.com class06
welcome to 07oldboyedu.com class07
welcome to 08oldboyedu.com class08
welcome to 09oldboyedu.com class09
welcome to 10oldboyedu.com class10


回答:
[root@template week6]# vim t1.sh 
#!/bin/bash 
#
#
#
 
for num in {01..10}
do 
    echo "welcome to ${num}oldboyedu.com class${num}"
done
 
 
[root@template week6]# bash t1.sh 
welcome to 01oldboyedu.com class01
welcome to 02oldboyedu.com class02
welcome to 03oldboyedu.com class03
welcome to 04oldboyedu.com class04
welcome to 05oldboyedu.com class05
welcome to 06oldboyedu.com class06
welcome to 07oldboyedu.com class07
welcome to 08oldboyedu.com class08
welcome to 09oldboyedu.com class09
welcome to 10oldboyedu.com class10

 

5 不显示文件中的空行或只有空格的行(至少三种方法)

回答:
创建环境
[root@template ~]# cat spaceline.txt -A
101,oldboy,CEO$
$
102,zhangyao,CTO$
103,Alex,COO$
$
104,yy,CFO$
$
105,feixue,CIO$
$
方法1:
grep -v '^$' spaceline.txt
方法2:
sed '/^$/d' spaceline.txt
方法3:
awk '!/^$/' spaceline.txt
方法4:
[root@template ~]# sed -n '/^$/!p' spaceline.sh 
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO

 

6 把文件中每一对{}中的oldboy替换为oldgirl.
oldboy
{
oldboy
oldgirl
}
oldboy
{
oldboy
oldgirl
}
 
回答:
创建文件
[root@template ~]# cat boytogirl.txt 
oldboy
{
oldboy
oldgirl
}
oldboy
{
oldboy
oldgirl
}
 
替换
[root@template ~]# sed -n '/{/,/}/p' boytogirl.txt|sed 's#oldboy#oldgirl#g'
{
oldgirl
oldgirl
}
{
oldgirl
oldgirl
}

7 显示出/etc/passwd中以0或5开头的uid的用户名和他使用的命令解释器

答案
[root@template ~]# awk -F ":" '$3~/^(0|5)/{print $1, $7}' /etc/passwd
root /bin/bash
sync /bin/sync
mygirl /bin/bash
oldboy /bin/bash 

检验答案
[root@template ~]# awk -F ":" '$3~/^(0|5)/{print $1,$3, $7}' /etc/passwd
root 0 /bin/bash
sync 5 /bin/sync
mygirl 500 /bin/bash
oldboy 501 /bin/bash

8 叙述并绘图表示三次握手四次挥手过程

 
回答:

1.由主机A发送建立TCP连接的请求报文,其中报文中包含seq序列号,是由发送端随机生成的,并且还将报文中SYN字段置为1,表示需要建立TCP连接

2.主机B会回复A发送的TCP连接请求报文,其中包含seq序列号,是由回复端随机生成的,并且将回复报文的SYN字段置1,而会产生ACK字段,ACK字段数值是在A发过来的seq序列号基础上加1进行回复,以便A收到信息时,知晓自已的TCP建立请求已得到了验证

3.A端收到B端发送的TCP建立验证请求后,会使自已的序列号加1表示,并且再次回复ACK验证请求,在B端发送过来的seq基础上加1,进行回复

    1、主机A发送断开TCP连接请求的报文,其中报文中包含seq序列号,是由发送端随机生成的,并且还将报文中FIN字段置为1,表示需要断开TCP连接

    2、主机B会回复A发送的TCP断开请求报文,其中包含seq序列号,是则回复端随机生成的,而且会产生ACK字段,ACK字段数值,是在A发过来的seq序列号基础上加1进行回复,以便A收到信息时,知晓自己的TCP断开请求已得到了验证

    3、主机B在回复完A的TCP断开请求后,不会马上就进行TCP连接的断开,主机B会先确保断开前,所有传输到A的数据是否已经传输完毕,一旦确认传输数据完毕就会将回复报文的FIN字段置1,并产生随机seq序列号。

    4、主机A收到主机B的TCP断开请求后,会回复主机B的断开请求,包含随机生成的seq字段和ack字段,ack字段会在主机B的TCP点开请求的seq基础上加1,从而完成主机B请求的验证回复。

    5、至此TCP断开的4次挥手过程完毕

9 叙述DNS解析过程

回答:
1 当客户端在浏览器访问一个网址(www.qq.com)的时候,DNS客户端会检查自己的host文件及本地的DNS缓存,如果没有对应的记录

2 DNS客户端联系自己本地的DNS服务器,查询域名www.qq.com

3 NServer服务器检查自己的权威区域和本地区域缓存区域,
没有找到对应值。于是,联系根提示中的某个根域服务器查询域名www.qq.com

4 根域服务器也不知道www. qq. com的对应值于是就向 SErver返回一个参考答复,告诉其com顶级域的权威服务器

5 NServer联系.com顶级域的权威DNS服务器查询域名www.qq.com

6 .com顶级域服务器也不知道www.qq.com DNS的对应值,于是想 NServer返回一个参考答 告诉它qq.com域的权威DNS服务器的地址

7 NServer联系qq.com域的权威DNS服务器查询域名

8 qq.com的权威DNS服务器知道对应值,并返回给 NServer服务器

9 Nserver向原DNS客户端返回 www.qq.com的ip地址此时解析完成

 

转载于:https://www.cnblogs.com/wenyule/articles/10530777.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值