小試牛刀



第一題:

將用戶xiaobai被誤刪除的家目錄恢復,複製/etc/shadow到xiaobai家目錄中,並設置只有用戶xioabai可以取/home/xiaobai/shadow

cp -r /etc/skel/. /home/xiaobai
chown mage:mage /home/xiaobai
cp /etc/shadow/home/xiaobai/
chmod 400 /home/xiaobai/shadow


第二題:

下載編譯安裝httpd 2.4最新版本,寫出安裝過程

下載httpd-2.4.tar.gz 至物理機
使用rz命令將windows的httpd-2.4.tar.gz移動至Linux中
tar -zxv -f httpd-2.4.tar.gz ~/#解包解壓
cd ~/httpd-2.4 
cat INSTALL #查看安裝的步驟
./configure --prefix=/app/apache #設置安裝的目錄
yum groupinstall "Development tools" #安裝這個包組才能進行編譯
make
make install


第三題:

過濾ifconfig命令結果中所有大於0且小於255的三位數

ifconfig |grep -E '/<(([1-9])|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-4]))/>'


第四題:

誤刪除/lib64/libc.so.6系統庫文件,如何恢復,實驗說明(詳細解釋請參考https://blog.51cto.com/13570193/2082578)

重啓系統,出現白色進度條的時候ESC進入類似BIOS的界面;
進入救援模式
進入終端,系統提示——原系統的目錄被mount到/mnt/sysimage下,於是進入/mnt/sysimage
cp /lib64/libc.so.6 /mnt/sysimage 或者 ln -s libc-2.12.so /mnt/sysimage/lib64/libc.so.6
libc.so.6只是一個軟鏈接文件


第五題:

計算2+4+6+...+98+100的和

echo {1..100..2} |tr " " "+" |bc


第六題:

yum源的配置和使用

base源指向https://mirrors.aliyun.com/centos/7/os/x86_64/

epel源指向https://mirrors.aliyun.com/epel/7Server/x86_64/

vim /etc/yum.repos.d/test.repo
[base]
name=testbase
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/

wget https://mirrors.aliyun.com/epel/7Server/x86_64/Packages/e/epel-release-7-11.noarch.rpm
rpm -ivh epel-release-7-11.noarch.rpm


第七題:

編寫/root/bin/create.sh 可以生成新的腳本包括作者、聯繫方式、版本、時間和描述等,並且可以直接對其進行編輯,編輯完後自動加上執行權限

#!/bin/bash
touch  /root/bin/$1
chmod u+x /root/bin/$1
cat << EOF > /root/bin/$1
#!/bin/bash
# ------------------------------------------
# 文件名:      $1
# 版本:        1.0
# 日期:        $(date +%F)
# 作者:        xiaobai
# ------------------------------------------
# License:     GPL
EOF 
vim /root/bin/$1


第八題:

統計/var/log/httpd/access.log日誌訪問頻繁前十的地址,並從大到小排序

cat /var/log/httpd/access.log \
> | egrep -o "\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])" \
> | sort |uniq -c |sort -nr | head -n 10


第九題:編寫腳本/root/bin/sysinfo.sh,顯示當前主機系統信息,包括主機名、操作系統版本、內核版本、CPU型號、內存大小、硬盤分區

#!/bin/bash
echo 主機名 $(hostname)
echo 操作系統版本 $(cat /etc/redhat-release)
echo 內核版本 $(uname -r)
echo cpu型號 $(cat /proc/cpuinfo |egrep "model name" |uniq |cut -d: -f2)
echo 內存大小 $(echo $[$(cat /proc/meminfo |egrep MemTotal |tr -s " " :|cut -d: -f2)/1024]) MB
echo 硬盤分區:
fdisk -l


第十題:

描述三次握手,四次揮手

三次握手

第一次握手:建立連接時,客戶端發送SYN=1,的報文到服務器,並進入SYN_SENT狀態,等待服務器發送確認;


第二次握手:服務器收到連接請求,必須確認客戶的SYN=1,同時自己也發送一個SYN=1的報文,即SYN+ACK,

此時服務器進入SYN_RECV狀態;


第三次握手:客戶端收到服務器的SYN+ACK報文,向服務器發送確認包,此包發送完畢,

客戶端和服務器進入ESTABLISHED(TCP連接成功)狀態,完成三次握手


四次揮手

第一次揮手:客戶端向服務器發送FIN報文:FIN=1發送後,客戶端進入FIN-WAIT-1狀態。

第二次揮手:服務器接收到該FIN報文後,發送一個確認報文,發送後,服務器進入CLOSE-WAIT狀態。


客戶端收到來自服務器的確認之後,進入FIN-WAIT-2狀態。等待服務器發送連接釋放報文

此時整個TCP連接進入連接半關閉狀態,服務器可能還會向客戶端發送一些數據。


第三次揮手:如果服務器已經沒有要發送的數據,則釋放TCP連接,向客戶端發送報文:FIN=1,服務器進入LAST-ACK狀態。


第四次揮手:客戶端收到服務器的連接釋放報文後,對該報文發出確認,發送此報文後,等待2個msl時間後,進入CLOSED狀態。

服務器收到客戶端的確認後,也進入CLOSED狀態並撤銷傳輸控制塊



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章