马哥博客作业第二阶段考试

一、选择题

1、DNS默认端口号是多少?( D

  A、443  B、80  C、25  D、53

 

2、docker中以下哪个命令不正确 ?( B

  A、docker run  B、docker file  C、docker exec  D、docker images

 

3、在shell脚本中以下哪个选项不是关键字 ( C

  A、if  B、for  C、watch  D、while

 

4、打印/etc/passwd的奇数行? ( A

  A、sed -n '1~2p' /etc/passwd  B、sed -c '1~2p' /etc/passwd  C、sed -n '1~3p' /etc/passwd

 

5、Linux下查看服务程序占用的端口命令是什么?( D

  A ps -aux  B netstat –apn  C watch  D lsof

 

6、 在linux系统中,用来存放系统所需要的配置文件和子目录是( A

  A /etc  B /var  C /root  D /home

 

7、(多选)下面哪些命令可以查看file1文件的第300-500行的内容?( BC

  A cat file1 | tail -n +300 | head -n 200  B cat file1| head -n 500 | tail -n +300  C sed -n '300,500p' file1

 

8、Linux下查看磁盘使用情况的命令是?( B

  A dd  B df  C top  D netstat

 

9、linux查看系统活跃进程的命令是?( A

  A ps  B netstat  C df  D ifconfig

 

10、在shell 中变量的赋值有四种方法,其中,采用name=12 的方法称 ( A

  A 直接赋值  B 使用read 命令  C 使用命令行参数  D 使用命令的输出

 

二、填空题

1、在linux中,某文件的权限为:drw-r--r--,该权限用数值形式表示为(),修改文件权限用()命令。

  644  chmod

 

2、在Linux 系统 中,以()方式访问设备 。

  磁盘挂载

 

3、链接分为:() 和 ()。

  软链接和硬链接  

 

4、()可以实现动态 IP 地址分配。

  DHCP服务

 

5、DNS 实际上是分布在internet 上的主机信息的数据库 ,其作用是()和()之间的转换。

  域名  IP地址

 

6、当LAN 内没有条件建立DNS 服务器,但又想让局域网内的用户可以使用计算机名互相访问时,应配置()文件。

  /etc/hosts

 

7、DHCP 是动态主机配置协议的简称,其作用是:()。

  实现动态IP地址分配

 

8、 唯一标识每一个用户的是()和()。

  uid  gid

 

9、docker和虚拟机的区别在于虚拟机有()。

  虚拟机有自己的内核,docker共用宿主机的内核

 

10、docker采用了一种()挂载的方式实现了可写层。

  写时复制

 

三、操作题

1、简述Raid0、Raid1、Raid5、Raid10的区别。

  RAID0:读写性能提升,无容错能力,最少需要两块磁盘

  RAID1:读性能提升,写性能略有下降,最少需要两块磁盘

  RAID5:读写性能提升,有容错能力,最多允许一块磁盘损坏,最少需要三块磁盘

  RAID10:读写性能提升,有容错能力,每组镜像最多只能坏一块磁盘

 

2、通过shell脚本部署一个httpd服务。

  #!/bin/bash

  echo -e "\e[32mstart install httpd\e[0m"
  sleep 3
  yum -y install httpd
  sed -Ei 's/^#ServerName.*/ServerName localhost:80/' /etc/httpd/conf/httpd.conf
  apachectl -t && systemctl enable --now httpd.service || echo "语法错误,请检查语法"
  echo -e "\e[32mhttpd is installed\e[0m"

 

3、通过dockerfile实现nginx的部署。 

1)、先制作基于基础镜像的centos系统镜像

    下载基础镜像:docker pull centos:centos7.8.2003

    制作Dockerfile文件:vim Dockerfile

    FROM centos:centos7.8.2003

    LABEL maintainer="wujianfu <root@www.com>"

    RUN yum -y install wget && rm -rf /etc/yum.repos.d/* && wget -O /etc/yum.repos.d/CentOS-Base.repo \
      https://mirrors.aliyun.com/repo/Centos-7.repo && wget -O /etc/yum.repos.d/epel.repo \

      http://mirrors.aliyun.com/repo/epel-7.repo \
      && yum -y install vim-enhanced tcpdump lrzsz bash-completion tree telnet net-tools lsof  iproute psmisc bzip2 nfs-utils \
      && rm -rf /var/cache/yum/* && rm -f /etc/localtime && ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    构建生成新的系统镜像:docker build -t centos7.8:v1.0 .

 

2)、制作nginx编译镜像

    在Dockerfile目录下准备编译安装的相关文件:

    wget http://nginx.org/download/nginx-1.18.0.tar.gz

    编辑nginx配置文件,修改下面内容:vim nginx.conf

    user nginx;

    daemon off;

    修改nginx主页面内容:

    echo "Nginx-1.18.0 In Docker" > index.html

    制作Dockerfile文件:vim Dockerfile

    FROM centos7.8:v1.0

    LABEL maintainer="wujianfu <root@www.com>"

    RUN yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel && useradd -r -s /sbin/nologin nginx \

      && yum clean all &&

    ADD nginx-1.18.0.tar.gz /usr/local/src/

    RUN cd /usr/local/src/nginx-1.18.0 && ./configure --prefix=/apps/nginx && make && make install \

      && rm -rf /usr/local/src/nginx*

    ADD nginx.cfg /apps/nginx/conf/

    COPY index.html /apps/nginx/html/

    RUN ln -s /apps/nginx/sbin/nginx /usr/sbin/nginx

    EXPOSE 80 443

    CMD ["nginx"]

    构建生成nginx镜像:docker build -t nginx1.18-centos7.8:v1.0 .

 

3)、运行nginx容器

    docker run -d -p 80:80 --name n1 nginx1.18-centos7.8:v1.0

 

4、简述TCP三次握手的过程。

   (1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。


        (2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。


        (3)第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

 

5、docker容器时间跟本地时间不一致怎样解决。

  复制本地时区信息到容器中,例如:docker cp /usr/share/zoneinfo/Asia/Shanghai nginx:/etc/localtime

posted @ 2020-08-10 15:10  富儿代  阅读(113)  评论(0编辑  收藏  举报