• 马哥博客第二次月考


    一 、判断题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的奇数行? ( C
    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地址)之间的转换。

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

    7、DHCP 是动态主机配置协议的简称,其作用是:(用于给局域网内的机器自动分配IP地址) 。

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

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

    10、docker采用了一种(宿主机磁盘目录对应容器目录 -v)挂载的方式实现了可写层

    三、操作题一共5道、一题8分。
    1、简述Raid0、Raid1、Raid5、Raid10的区别?
    答:
    raid0:将两块或多块磁盘串联在一起,形成一个大的磁盘组,容量为所有磁盘总和,有读写性能好的优点,但没冗余功能,一块磁盘出现问题整个阵列损坏。
    raid1:将两块或2以上的偶数个磁盘组成阵列,每个磁盘对应一个镜像磁盘,写入性能下降,磁盘利用率为50%,每组磁盘中一个出现故障不会丢失数据,安全性较高。
    raid5:将3块以上磁盘组成阵列,把数据和奇偶校验信息存储到每个磁盘上,磁盘利用率为N-1,阵列中一块磁盘出现故障不会丢失数据,读写性能较好。
    raid10:将4块或4的倍数个磁盘组成阵列,分组顺序为两个或2的倍数个磁盘为一组做成raid1共两组,然后将两组raid1组成raid0,磁盘利用率为50%,读写速度快安全性高。

    2、通过shell脚本部署一个httpd服务。
    答:
    #!/bin/bash
    set -u
    # 变量
    URL=https://mirrors.tuna.tsinghua.edu.cn/apache//httpd/
    FILE=httpd-2.4.43.tar.gz
    INSTALL_DIR=/apps/httpd2
    RESD="E[$[RANDOM%7+31];1m"
    END="E[0m"

    # 包名
    PACKAGE=`echo $FILE |sed -nr 's/(.*[0-9.]+).[[:alpha:]]+.*/1/p'`
    # 基名
    BASEDIR=`basename $INSTALL_DIR`
    # 后缀名
    SUFFIX=`echo httpd-2.4.43.tar.bz2 |sed -nr 's/.*.([^.]+)/1/p'`

    echo -en "$RESD----------install is httpd.service----------$END"
    sleep 3

    # 安装依赖包
    cd /usr/local/src/
    yum install -y gcc make apr-devel apr-util-devel pcre-devel openssl-devel redhat-rpm-config

    # 下载包
    ping -W1 -c 2 www.baidu.com &> /dev/null
    if [ $? -eq 0 ]; then
        wget $URL$FILE
        case $SUFFIX in
    gz|bz2|xz|tar)
        tar -xvf $FILE
        ;;
    zip)
        unzip $FILE
        ;;
    *)
        echo "后缀识别不了,错误"
        exit 2
    esac
    else
        echo -e "E[31m网络不通!!E[0m"
        cp /root/$FLIE /usr/local/src/
    fi
    # 编译安装
    cd $PACKAGE
    ./configure --prefix=$INSTALL_DIR --sysconfdir=/etc/$BASEDIR
    make && make install

    # 创建一个启动Apache用户
    useradd -r -s /sbin/nologin -u 50 apache
    # 修改配置文件用户
    sed -ri -e 's/^(User).*/1 apache/' -e 's/^(Group).*/1 apache/' /etc/$BASEDIR/httpd.conf
    echo "PATH=$INSTALL_DIR/bin:$PATH" > /etc/profile.d/$BASEDIR.sh
    source /etc/profile.d/$BASEDIR.sh
    sed -ri 's#(^.*<h1>)(.*)(</h1>.*$)#16.18 Go! 3 #' $INSTALL_DIR/htdocs/index.html
    apachectl start
    cd ..
    rm -rf $FILE $PACKAGE
    echo -en "$RESD----------httpd.service is finished----------$END"

    3、通过dockerfile实现nginx的部署
    答:
    1)准备工作
    关闭防火墙
    关闭selinux
    安装好docker-ce,并准备好docker设置加速
    2)拉取centos7系统镜像
    docker pull centos:centos7.8.2003
    3)创建准备文件目录结构,方便后期镜像比较多可以进行分类
    [root@localhost ~]# mkdir /data/dockerfile/{system/{centos,ubuntu},web/{apache,nginx}} -pv
    [root@localhost ~]# cd /data/dockerfile/system/
    [root@localhost /data/dockerfile/system]# vim Dockerfile
    FROM centos:centos7.8.2003
    LABEL maintainer="liaolongxuan <root@liaolongxuan.com>"
    RUN yum -y install wget && rm -rf /etc/yum.repos.d/*
            && wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/Centos-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
            && yum -y install vim-enhanced tcpdump lrzsz tree telnet bash-completion net-tools wget bzip2 lsof zip unzip nfs-utils gcc make gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel
            && yum clean all
            && rm -rf /etc/localtime
            && ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime
            && rm -rf /var/cache/yum/*
    4)写个脚本执行构建
    [root@localhost /data/dockerfile/system]# cat build.sh
    #!/bin/bash
    TAG=$1
    docker build -t centos7-base:$TAG .
    授可执行权限
    [root@localhost /data/dockerfile/system]# chmod +x build.sh
    执行构建
    [root@localhost /data/dockerfile/system]#./build.sh v1.0
    5)制作Nginx编译镜像,宿主机下载有Nginx编译包并做好模板配置文件
    [root@localhost /data/dockerfile/web/nginx]# ll
    -rwxr-xr-x 1 root root 56 Aug 3 00:24 build.sh
    -rw-r--r-- 1 root root 400 Aug 3 21:26 Dockerfile
    -rw-r--r-- 1 root root 14 Aug 3 00:11 index.html
    -rw-r--r-- 1 root root 1032630 Aug 3 00:22 nginx-1.16.1.tar.gz
    -rw-r--r-- 1 root root 2680 Aug 3 21:17 nginx.conf

    修改配置并添加一行
    [root@localhost /data/dockerfile/web/nginx]# cat nginx.conf
    user www;
    worker_processes 1;
    daemon off; # 添加的这行,前台运行Nginx

    [root@localhost /data/dockerfile/web/nginx]# cat Dockerfile
    FROM centos7-base:v1.0
    LABEL maintainer="liaolongxuan <root@liaolongxuan.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 -s /sbin/nologin -M
    COPY nginx.conf /apps/nginx/conf/
    COPY index.html /apps/nginx/html/
    EXPOSE 80
    CMD ["/apps/nginx/sbin/nginx"]

    6)编写构建执行脚本
    [root@localhost /data/dockerfile/web/nginx]# vim build.sh
    #!/bin/bash
    TAG=$1
    docker build -t nginx-centos7:$TAG .

    7)授可执行权限
    [root@localhost /data/dockerfile/web/nginx]# chmod +x build.sh

    8)执行脚本构建镜像
    [root@localhost /data/dockerfile/web/nginx]# ./build.sh v1.0

    9)启动
    [root@localhost /data/dockerfile/web/nginx]# docker run -d -p 80:80 nginx-centos7:v1.0

    10)测试
    [ root@localhost ~]# curl 10.0.0.10
    Test is nginx

    4、简述TCP三次握手的过程?
    答:
    第一次:客户端发送连接请求报文,将SYN标识位设为1,同时选择一个初始序号seq=x,然后进入SYN_SEND状态。

    第二次:服务器收到SYN报文段进行确认,在确认报文段中把SYN和ACK位都设为1,确认号为ack=x+1,同时也为自己选择一个初始序号seq=y,然后进入SYN_RECV状态(半连接状态)

    第三次:客户端再进行一次确认,将ACK设为1,确认号为ack=y+1,自己的序号seq=x+1,此时TCP连接已经建立,客户端进入ESTABLISHED状态。服务器收到客户端的确认信息后,也会进入ESTABLISHED状态

    5、docker容器时间跟本地时间不一致怎样解决
    答:
    修改时区:[ root@localhost ~]# rm -rf /etc/localtime
    [ root@localhost ~]# ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    如果修改的时区后时间还有偏差,使用ntpdate 命令同步时间。

  • 相关阅读:
    eclipse 闪退原因
    Ansj分词的使用
    pycharm实现sublime的显示效果,很惊艳哦
    使用pycharm以及用pycharm句子切分调试
    安装pytorch0.4.0
    vim设置一个tab为4个空格,设置行号
    读取html文件,让其中的内容和notepad打开这个html的样子一样。
    把变量,比如矩阵的值存储到文件里面去
    xpath分析 html文件抽正文的过程
    quepy
  • 原文地址:https://www.cnblogs.com/xuanlv-0413/p/13472231.html
Copyright © 2020-2023  润新知