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


    一、选择题

    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 httpde[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 installede[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

  • 相关阅读:
    JAVA数据库建表工具类
    HTML加CSS3太极图demo
    MD5加密(JAVA&JS)
    Base64工具类(JAVA&JS)
    JS模拟圆周运动
    JAVA读取写入excle表兼容版
    Math.PI和Math.sin() 与 Math.cos()搭配使用详解
    MySQL8.0数据库连接问题
    echarts饼状图案例
    JS前端使用MD5加密
  • 原文地址:https://www.cnblogs.com/babyblue3/p/13463597.html
Copyright © 2020-2023  润新知