• 第二阶段考试


    第二阶段考试

    一 、判断题10道、一题3分。

    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 使用命令的输出

     

    二、填空题10道、一题3分。

    1、在linux中,某文件的权限为:drw-r–r–,该权限用数值形式表示为(644),修改文件权限用(chmod)命
    令。
    2、在Linux 系统 中,以(文件)方式访问设备 。
    3、链接分为:(软连接) 和 (硬链接)。
    4、(DHCP)可以实现动态 IP 地址分配。
    5、DNS 实际上是分布在internet 上的主机信息的 数据库 ,其作用是(IP地址)和(FQDN)之间的转换。
    6、当LAN 内没有条件建立DNS 服务器,但又想让局域网内的用户可以使用计算机名互相访问时,应配
    置 (hosts) 文件。
    7、DHCP 是动态主机配置协议的简称,其作用是:(管理分配IP地址) 。
    8、 唯一标识每一个用户的是 (UID) 和 (用户名) 。
    9、docker和虚拟机的区别在于虚拟机有(完整的操作系统、隔离性更好)。
    10、docker采用了一种(镜像复制)挂载的方式实现了可写层

     

    三、操作题一共5道、一题8分。

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

    Raid0:最少需要2块磁盘;数据条带式分布;不能应对数据安全性较高的场合;无容错能力;读写性能提升

    Raid1:最少需要2块磁盘;读性能提升,写性能略有下降;有冗余能力

    Raid5:  最少需要3块磁盘;读写性能提升;有容错能力

    Raid10:又叫Raid 1+0,最少需要4块磁盘;先按Raid 0分成两组,再分别对两组按Raid 1方式镜像;兼顾冗余(提供镜像存储)和性能(数据条带形分布);在实际应用中较为常用。

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

    #!/bin/bash
    #一键安装httpd

    #配置yum源和epel源
    rm -rf /etc/yum.repos.d/*
    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    yum clean all
    yum makecache
    yum repolist

    #下载httpd源码包
    curl -o /opt/httpd-2.4.43.tar.bz2 https://mirror.bit.edu.cn/apache/httpd/httpd-2.4.43.tar.bz2
    ls /opt
    #安装解压赖包
    yum -y install bzip2

    #安装httpd依赖包
    yum install -y gcc make apr-devel apr-util-devel pcre-devel openssl-devel redhat-rpm-config

    #创建apache用户
    useradd -r -u 48 -s /sbin/nologin -c "Apache" -d /var/www/ apache

    cd /opt/ && tar -xvf httpd-2.4.43.tar.bz2 -C /usr/local

    cd /usr/local/httpd-2.4.43
    #编译安装
    COLOR="33[1;31m"
    END="33[0m"
    ./configure --prefix=/usr/local/httpd --sysconfdir=/etc/httpd --enable-ssl
    make && make install

    if [ $? -eq 0 ] ;then echo -e "$COLOR httpd installed successful!$END"
    fi

    3、通过dockerfile实现nginx的部署

    Step  1:先构建满足nginx编译安装环境的centos镜像

    docker pull centos:centos7.7.1908

    vim Dockerfile

    #centos系统镜像
    FROM centos:centos7.7.1908                                                                                                                                            
    LABEL maintainer="yindesheng <941268778@qq.com>"
    RUN yum install -y wget && rm -rf /etc/yum.repos.d/* && wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
      && yum install -y gcc make autoconf gcc-c++ glibc glibc-devel pcre pcre-devel openssl epel-release
      openssl-devel systemd-devel zlib-devel vim lrzsz tree tmux lsof tcpdump wget
      net-tools iotop bc bzip2 zip unzip nfs-utils man-pages
      && yum clean all
      && rm -rf /etc/localtime
      && ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    CMD ["/bin/bash"]

    docker build -t centos-base:1.7 .

    Step  2:构建nginx镜像

    #nginx编译镜像
    FROM centos-base:1.7                                                                                                                                                  
    LABEL maintainer="yindesheng<941268778@qq.com>"
    ADD nginx-1.16.1.tar.gz /usr/local/src
    RUN cd /usr/local/src/nginx-1.16.1 && ./configure --prefix=/apps/nginx && make && make install
    && rm -rf /usr/local/src/nginx*
    && useradd -r nginx
    COPY nginx.conf /apps/nginx/conf/
    EXPOSE 80 443
    CMD ["/apps/nginx/sbin/nginx"]

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

    所谓的三次握手即TCP连接的建立。这个连接必须是一方主动打开,另一方被动打开的。

    握手之前主动打开连接的客户端结束CLOSED阶段,被动打开的服务器端也结束CLOSED阶段,并进入LISTEN阶段。随后开始“三次握手”:

    (1)首先客户端向服务器端发送一段TCP报文,其中:

    • 标记位为SYN,表示“请求建立新连接”;

    • 序号为Seq=X(X一般为1);

    • 随后客户端进入SYN-SENT阶段。

    (2)服务器端接收到来自客户端的TCP报文之后,结束LISTEN阶段。并返回一段TCP报文,其中:

    • 标志位为SYN和ACK,表示“确认客户端的报文Seq序号有效,服务器能正常接收客户端发送的数据,并同意创建新连接”(即告诉客户端,服务器收到了你的数据);

    • 序号为Seq=y;

    • 确认号为Ack=x+1,表示收到客户端的序号Seq并将其值加1作为自己确认号Ack的值;随后服务器端进入SYN-RCVD阶段

    (3)客户端接收到来自服务器端的确认收到数据的TCP报文之后,明确了从客户端到服务器的数据传输是正常的,结束SYN-SENT阶段。并返回最后一段TCP报文。其中:

    • 标志位为ACK,表示“确认收到服务器端同意连接的信号”(即告诉服务器,我知道你收到我发的数据了);

    • 序号为Seq=x+1,表示收到服务器端的确认号Ack,并将其值作为自己的序号值;确认号为Ack=y+1,表示收到服务器端序号Seq,并将其值加1作为自己的确认号Ack的值;

    • 随后客户端进入ESTABLISHED阶段。服务器收到来自客户端的“确认收到服务器数据”的TCP报文之后,明确了从服务器到客户端的数据传输是正常的。结束SYN-SENT阶段,进入ESTABLISHED阶段。

    在客户端与服务器端传输的TCP报文中,双方的确认号Ack和序号Seq的值,都是在彼此Ack和Seq值的基础上进行计算的,这样做保证了TCP报文传输的连贯性。一旦出现某一方发出的TCP报文丢失,便无法继续"握手",以此确保了"三次握手"的顺利完成。

    此后客户端和服务器端进行正常的数据传输。这就是“三次握手”的过程。

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

    docker exec -it container_name/ID
    rm -rf /etc/localtime
    ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime

     

  • 相关阅读:
    Android窗口管理服务WindowManagerService计算Activity窗口大小的过程分析
    软件的三层架构
    【Android小应用】颈椎保健操Android开源项目
    huffman编码——原理与实现
    30天自制操作系统之第13天 定时器(2)
    JSP中Session的使用
    [非官方]ArcGIS10.2 for Desktop扩展工具包——XTools Pro
    在C语言中,double、long、unsigned、int、char类型数据所占字节数
    nyoj 130 同样的雪花 【哈希】
    socketpair的使用
  • 原文地址:https://www.cnblogs.com/yds941268778/p/13477217.html
Copyright © 2020-2023  润新知