第二阶段月考

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行的内容?( B
 
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–,该权限用数值形式表示为( 744 ),修改文件权限用( chmod )命
令。
 
2、在Linux 系统 中,以( 文件 )方式访问设备 。
 
3、链接分为:( 软链接 ) 和 ( 硬链接 )。
 
4、( dhcp )可以实现动态 IP 地址分配。
 
5、DNS 实际上是分布在internet 上的主机信息的 数据库 ,其作用是( IP地址 )和( 主机名 )之间的转换。
 
6、当LAN 内没有条件建立DNS 服务器,但又想让局域网内的用户可以使用计算机名互相访问时,应配
置 (etc/hosts) 文件。
 
7、DHCP 是动态主机配置协议的简称,其作用是:(自动分配IP地址给用户) 。
 
8、 唯一标识每一个用户的是 (用户名) 和 (UID) 。
 
9、docker和虚拟机的区别在于虚拟机有(内核)。

10、docker采用了一种(容器目录与宿主机目录通过-v)挂载的方式实现了可写层
 
三、操作题一共5道、一题8分。
1、简述Raid0、Raid1、Raid5、Raid10的区别?
Raid 0 (独立磁盘冗余阵列)                            Raid  1                                                        Raid  5                                                             Raid  10
必须使用两块或者两块以上硬盘组成           由两块或2倍数硬盘组成                           由三块或三块以上硬盘组成                         必须由四块等大小的硬盘组成
每块硬盘的大小必须一致                            每块硬盘大小必须一致                             每块硬盘大小必须一致                                 两两硬盘先组成Raid 1 再组成Raid 0
是所以动态磁盘中,数据读写最快的           磁盘使用率只有50%,写入速度最慢        磁盘使用率是n-1块盘                                  兼顾Raid 0 和Raid 1 的特点中和两种Raid的缺点
损坏几率相对最高                                       拥有磁盘容错功能                                    利用奇偶校验,拥有磁盘容错功能
没有磁盘容错功能                                                                                                       只支持一块硬盘损坏
2、通过shell脚本部署一个httpd服务。
#!/bin/bash
yum -y install wget gcc make autoconf apr-devel apr-util-devel pcre-devel open-devel redhat-rpm-config
wget https://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.46.tar.gz
tar xvf httpd-2.4.46.tar.gz -C /usr/local/src
cd /usr/local/src/httpd-2.4.46/ &&
./configure --prefix=/apps/httpd
make -j 2 && make install
echo 'PATH=/apps/httpd/bin:/$PATH' > /etc/profile.d/httpd.sh
. /etc/profile.d/httpd.sh
useradd -r -s /sbin/nologin -d /var/www -c Apache -u 48 apache
sed -ri 's#(User )daemon#1apache#' /etc/httpd/httpd.conf
sed -ri 's#(Group )daemon#1apache#' /etc/httpd/httpd.conf
apachectl start
 
3、通过dockerfile实现nginx的部署
 
 制作centos镜像

vim Dockerfile

FROM centos:centos7.8.2003

LABEL maintainer="duan"

RUN rm -f /etc/localtime && ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&
    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 iproute net-tools psmisc vim-enhanced tcpdump tree telnet bash-completion
    net-tools wget bzip2 lsof zip unzip nfs-utils &&
    rm -rf /var/cache/yum/* &&
     useradd -u 88 www

docker bulid  -t centos7:v1.0 -f Dockerfile

  制作nginx编译镜像

vim Dockerfile

FROM centos7:v1.0

LABEL maintainer="duan"
WORKDIR /usr/local/src/nginx-1.18.0
ENV VERSION="1.0" DATE='2020-08-01'
RUN mkdir /data/ && touch /data/test${DATE}_${VERSION}
#ADD http://nginx.org/download/nginx-1.18.0.tar.gz /data/
ADD  nginx-1.18.0.tar.gz /usr/local/src/
RUN yum -y update && yum  install -y cmake pcre pcre-devel openssl openssl-devel gd-devel
    zlib-devel gcc gcc-c++ net-tools iproute telnet wget curl &&
    yum clean all &&
    rm -rf /var/cache/yum/*
RUN ./configure && make && make install
ENV PATH $PATH:/usr/local/nginx/sbin
CMD ["nginx","-g","daemon off;"]
EXPOSE 80

docker build -t centos7.8:nginx:v1.0 .

docker run -d centos7.8:nginx:v1

curl 172.17.0.2

4、简述TCP三次握手的过程?
 
   第一次握手:Client将标志位SYN置为1,随机产生一个值seq=j,并将该数据发送给server,Client进入SYNSENT状态,等待server确认。
   第二次握手:server收到数据包后由标志位SYN=1知道client请求建立连接,server将标志位SYN和ACK都置为1, ack序号j+1,随机产生一个值seq=k,并将该数据包发送给client以确认连接请求,server进入SYN-RCVD状态。
   第三次握手: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容器时间跟本地时间不一致怎样解决
 删除原来的时间文件,找到本地时间区域指定软连接
  rm -f /etc/localtime
  ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime
原文地址:https://www.cnblogs.com/guobang/p/13461226.html