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下檢視服務程式佔用的埠命令是什麼?( B

)
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行的內容?( A,B,C )
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地址,使網路環境中的主機動態的獲得IP地址、Gateway地址、DNS伺服器地址等資訊 ) 。
8、 唯一標識每一個使用者的是 ( 使用者ID ) 和 ( 使用者名稱 ) 。
9、docker和虛擬機器的區別在於虛擬機器有( 核心 )。
10、docker採用了一種( 聯合 )掛載的方式實現了可寫層


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


1、簡述Raid0、Raid1、Raid5、Raid10的區別?
答: RAID0可以把多塊(至少兩塊)磁碟通過軟體或硬體的方式串聯在一起,組成一個大的卷組,並將資料寫入到各個磁碟中。這樣裝置的讀寫效能會提升數倍,但是若任意一塊磁碟發生故障將導致整個系統的資料都受到破壞。RAID0能夠有效的提升磁碟資料的讀寫速度,但是不具備資料備份和錯誤修復能力,安全性低。
  RAID1是把兩塊以上的磁碟進行繫結,在寫入資料時,是將資料同時寫入到多塊磁碟上,形成映象備份。當其中某一塊磁碟發生故障後,一般會立即自動以熱交換的方式來恢復資料的正常使用。RAID1雖然使資料的安全性得到保證,但是因為是在多塊磁碟中寫入了相同的資料,不但增大了機器的負載,而且磁碟利用率也十分低下。
  RAID5基於RAID0的基礎上會在每一塊磁碟上預留一個數據奇偶校驗資訊,雖然沒有備份磁碟中的真實資料資訊,但是當某塊磁碟出現問題後,可以通過奇偶校驗資訊來恢復損壞的資料,兼顧了磁碟的讀寫速度、資料安全性與儲存成本。
  RAID10就是先組成RAID1,然後組成RAID0。集合了RAID1和RAID0的優點,既保證了讀寫速度,也保證了安全性。缺點是磁碟的利用率低。

2、通過shell指令碼部署一個httpd服務。
答:

#安裝前準備
echo "相關軟體包安裝中"
dnf -y install gcc make autoconf apr-util-devel pcre-devel openssl-devel readhat-rpm-config &> /dev/null
wget -P /usr/local/src https://downloads.apache.org//httpd/httpd-2.4.43.tar.bz2 &> /dev/null

cd /usr/local/src
[ -e httpd-2.4.43.tar.bz2 ] && tar -xvf httpd-2.4.43.tar.bz2 || echo "沒有找到安裝包,安裝失敗";exit 1

#編譯安裝
cd httpd-2.4.43
./configure --prefix=/apps/httpd --sysconfdir=/etc/httpd --enable-ss
make -j 2 && make install

#設定環境變數
echo 'PATH=$PATH:/apps/httpd/bin' > /etc/profile.d/httpd.sh
. /etc/profile.d/httpd.sh

# 建立apache使用者
useradd -r -s /sbin/nologin -d /var/www -c Apache -u 48 apache
sed -ri.bak '/^User/s@(User).*@\1 apache@' /etc/httpd/httpd.conf
sed -ri.bak '/^Group/s@(Group).*@\1 apache@' /etc/httpd/httpd.conf

apachectl restart
echo "httpd安裝成功"

3、通過dockerfile實現nginx的部署
答: 提前準備好nginx的原始碼安裝包和配置檔案。
  docker build命令執行下面的Dockerfile。

FROM centos:7.8.2003:
LABEL maintainer="wuvikr"
ADD nginx-1.17.10.tar.gz /usr/local/src
RUN cd /usr/local/src/nginx-1.17.10 && \
./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三次握手的過程?
答:第一次握手:Client傳送標誌位SYN置為1,seq=隨機值x,並將該資料包傳送給Server,Client進入SYN_SENT狀態,等待Server的確認;
  第二次握手:Server收到資料包後由標誌位SYN=1知道Client請求建立連線,Server將標誌位SYN和ACK都置為1,ack=x+1,seq=隨機值y,並將該資料包傳送給Client以確認連線請求,Server進入SYN_RCVD狀態;
  第三次握手:Client收到資料包後,檢查ack是否為x+1,ACK是否為1,如果正確則將標誌位ACK置為1,ack=y+1,並將該資料包傳送給Server,Server檢查ack是否為y+1,ACK是否為1,如果正確則連線建立成功,Client和Server進入ESTABLISHED狀態,完成三次握手,隨後Client與Server之間可以開始傳輸資料了。

5、docker容器時間跟本地時間不一致怎樣解決
答:docker容器和系統時間不一致是因為docker容器的原生時區為0時區,而國內系統為東八區。
  解決方法是刪除容器中/etc/localtime檔案,重新建立一個Shanghai地區的軟連線檔案
  rm -f /etc/localtime
  ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime