1. 程式人生 > 實用技巧 >月考(二)

月考(二)

第二階段考試 一 、判斷題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地址)之間的轉換。 6、當LAN 內沒有條件建立DNS 伺服器,但又想讓區域網內的使用者可以使用計算機名互相訪問時,應配置 (/etc/hosts
) 檔案。 7、DHCP 是動態主機配置協議的簡稱,其作用是:(集中的管理、分配IP地址,使網路環境中的主機動態的獲得IP地址、Gateway地址、DNS伺服器地址等資訊,並能夠提升地址的使用率) 8、 唯一標識每一個使用者的是 (UID) 和 (使用者名稱) 。 9、docker和虛擬機器的區別在於虛擬機器有(自己的作業系統)。 10、docker採用了一種(資料卷)掛載的方式實現了可寫層 三、操作題一共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#初始化變數
VERSION=httpd-2.4.43.tar.bz2
DIR=/app/httpd2.4

BASENAME=`basename $DIR`
PACKAGE=`echo $VERSION|sed -rn 's/(.*[0-9]+)\.([[:alpha:]]+.*)/\1/p'`
#開始安裝
yum install -y gcc make apr-devel apr-util-devel pcre-devel 
cd /usr/local/src
[ -f $VERSION ] ||wget http://us.mirrors.quenda.co/apache//httpd/$VERSION redhat-rpm-config  
tar -xf $VERSION
cd $PACKAGE
./configure --prefix=$DIR --sysconfdir=/etc/$BASENAME
make -j 2&&make install
#新增apache使用者
useradd -r -s /sbin/nologin apache 
sed -ri -e 's/^User daemon/User apache/' -e 's/^Group daemon/Group apache/' /etc/$BASENAME/httpd.conf
#新增路徑
echo "PATH=$DIR/bin/:$PATH" > /etc/profile.d/$BASENAME.sh
/$DIR/bin/apachectl start

  

3、通過dockerfile實現nginx的部署
FROM  centos7
LABEL author=zhang
ADD   nginx-1.18.0.tar.gz /usr/local/src/
RUN   yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel && \
      cd /usr/local/src/nginx-1.18.0 &&  ./configure  --prefix=/app/nginx  && make && make install && \
      cd /usr/local/src/ && rm -rf nginx* && rm -rf /var/cache/yum/*
CMD   /app/nginx/sbin/nginx -g daemon off;

  

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容器時間跟本地時間不一致怎樣解決

rm -rf /etc/localtime

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime