1. 程式人生 > 實用技巧 >EelemntUI中e-form表單校驗的使用以及表單校驗的規則

EelemntUI中e-form表單校驗的使用以及表單校驗的規則

一、選擇題

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 -anp

C、watch

D、lsof

6、在Linux系統中,用來存放系統所需的配置檔案和子目錄的是(A

A、/etc

B、/var

C、/root

D、/home

7、(多選)下面哪些命令可以檢視file1檔案的第300-500行的內容?(B、C

A、cat file1 | tail -n | head -n 200

B、cat file 1 | 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、使用命令的輸出

二、填空題

1、在Linux中,某檔案的許可權為:drw-r--r--,該許可權用數值形式表示為(644),修改檔案許可權用(chmod)命令。

2、在Linux系統中,以(檔案的)方式訪問裝置

3、連結分別為(硬連結)和(軟連結

4、(NAT)可以實現動態IP地址分配

5、DNS實際上是分佈在Internet上的主機資訊的資料庫,其作用是(FQDN)和(IP地址

)之間的轉換

6、當LAN內沒有條件建立DNS伺服器,但又想讓區域網內的使用者可以使用計算機名互相訪問時,應該配置(/etc/hosts)檔案

7、DHCP是動態主機配置協議的簡稱,其作用是:(伺服器控制一段IP地址範圍,客戶機登入伺服器時就可以自動獲得伺服器分配的IP地址和子網掩碼)

8、唯一標識每一個使用者的是(UID)和(使用者名稱

9、docker和虛擬機器的區別在於虛擬機器有(完整的作業系統

10、docker採用了一種(聯合)掛載的方式實現了可寫層

三、操作題

1、簡述Raid0、Raid1、Raid5、Raid10的區別?

答:

Raid0:條帶卷,將資料分為固定大小的資料塊,分別同時寫入到N個磁碟中,即每個磁碟只需讀寫1/N的資料,提高了讀寫效率。但是資料沒有冗餘,一旦有塊磁碟故障,整份資料都將不可用,安全性沒有保障

Raid1:映象卷,將資料寫入到N個磁碟中,即每個磁碟都有一份完整的資料。相當於寫了N份資料,寫磁碟效率很低,讀磁碟可從N個磁碟中同時讀取,讀磁碟效率提升,當一個磁碟損壞,還有其他的磁碟作為備份,資料安全性得到保障

Raid5:至少需要3塊磁碟,將資料分為固定大小的資料塊,分別寫到N-1塊磁碟中,剩餘的一塊用於生成校驗資訊,當有一塊磁碟故障時,可以通過校驗資訊還原資料,由於校驗資訊的壓力比較大,故所有磁碟輪流迴圈作為校驗盤。這樣即保障了讀寫效率也保障安全性

Raid10:先將磁碟組合為多組raid1,用於生成資料冗餘,再將這多組raid1組合為raid0,用於提高讀寫效率,所以Raid10至少要4塊磁碟。以4塊磁碟為例:資料會被分為n份,分別寫入到2組raid0中,然後每份資料又被寫2次,寫入到raid1的2塊磁碟中。這樣每份資料都有冗餘

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

#!/bin/bash
set -ue
RED='\e[1;31m'
GREEN='\e[1;32m'
END='\e[0m'


rpm -q httpd &> /dev/null && echo -e "${RED}httpd已經部署,無需安裝${END}"

#yum安裝依賴程式
yum install -y apr apr-devel apr-util-devel pcre-devel gcc make openssl-devel lbzip2 redhat-rpm-config

#下載並解壓原始碼包
wget -P /usr/local/src https://mirrors.aliyun.com/apache/httpd/httpd-2.4.46.tar.bz2 && cd /usr/local/src || echo -e "${RED}下載httpd原始碼包失敗,請檢查網路${END}"
tar xf httpd-2.4.46.tar.bz2 && cd httpd-2.4.46
./configure --prefix=/apps/httpd --sysconfdir=/etc/httpd --enable-ssl && make && make install
echo -e "${GREEN}httpd安裝成功${END}"

#建立apache使用者
useradd -r -s /sbin/nologin -d /var/www apache
sed -ri.bak 's/^User.*/User apache/' /etc/httpd/httpd.conf
sed -ri.bak 's/^Group.*/Group apache/' /etc/httpd/httpd.conf
#配置環境 echo
'PATH=/apps/httpd/bin:$PATH' > /etc/profile.d/httpd.sh echo -e "${GREEN}請重新讀取配置檔案/etc/profile.d/httpd.sh,之後可執行 apachectl start 或 httpd -k start 命令啟動httpd服務${END}"

3、通過dockerfile實現nginx的部署

答:

準備相關檔案

[root@ubuntu1804 dockerfile]#ls
Dockerfile  index.html  nginx-1.16.1.tar.gz  nginx.conf
[root@ubuntu1804 dockerfile]#cat nginx.conf 

user  nginx;
worker_processes  1;
...

編寫Dockerfile檔案

[root@ubuntu1804 dockerfile]#vim Dockerfile 

FROM    centos
LABEL   maintainer="jojohyj"
RUN     yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel \
&&      useradd -r -s /sbin/nologin nginx \
&&      yum clean all
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* \
&&      ln -s /apps/nginx/sbin/nginx /usr/sbin/nginx
#COPY   nginx.conf /apps/nginx/conf/
COPY    index.html /apps/nginx/html/
EXPOSE  80 443
CMD     ["nginx","-g","daemon off;"]

生成nginx映象

[root@ubuntu1804 dockerfile]#docker build --force-rm -t nginx:centos .

[root@ubuntu1804 dockerfile]#docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               centos              0f8801ce8afd        7 minutes ago       395MB
centos              latest              0d120b6ccaa8        2 days ago          215MB

生成容器測試

[root@ubuntu1804 dockerfile]#docker run -d -p 80:80 nginx:centos 
eeddc9c6faf40812a12060534c3e452b92369d0d98185e3cdfd84f3fcdbc0bc9
[root@ubuntu1804 dockerfile]#docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES
eeddc9c6faf4        nginx:centos        "nginx -g 'daemon of…"   4 seconds ago       Up 3 seconds        0.0.0.0:80->80/tcp, 443/tcp   affectionate_leakey
[root@ubuntu1804 dockerfile]#curl 127.0.0.1
nginx base on centos

4、簡述TCP三次握手過程

答:

第 1 次握手:客戶端向伺服器傳送 SYN 報文(SEQ=x,SYN=1),並進入 SYN_SENT 狀態,等待伺服器確認

第 2 次握手實際上是分兩部分來完成的,即 SYN+ACK(請求和確認)報文。

  • 伺服器收到了客戶端的請求,向客戶端回覆一個確認資訊(ACK=x+1)。
  • 伺服器再向客戶端傳送一個 SYN 包(SEQ=y)建立連線的請求,此時伺服器進入 SYN_RECV 狀態

第 3 次握手:客戶端收到伺服器的回覆(SYN+ACK 報文)。此時,客戶端也要向伺服器傳送確認包(ACK)。此包傳送完畢客戶端和伺服器進入 ESTABLISHED 狀態,完成 3 次握手

5、docker容器時間跟本地時間不一致怎麼樣解決

答;

進入容器,刪除原有localtime檔案,建立正確時區檔案的軟連結為新的localtime檔案

[root@ubuntu1804 dockerfile]#docker exec -it ee bash
[root@eeddc9c6faf4 /]# date
Thu Aug 13 05:53:50 UTC 2020
[root@eeddc9c6faf4 /]# rm -f /etc/localtime 
[root@eeddc9c6faf4 /]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@eeddc9c6faf4 /]# date
Thu Aug 13 13:54:39 CST 2020
[root@eeddc9c6faf4 /]#