[筆試考試試題命令部分](總滿分 72 分,每題 4 分)
1.一個目錄中有很多文件(ls -l 查看時好多屏)疆液,想用一條命令最快速度查看到最近更新的文件雳窟。如何看?
ls -rtl
ls 命令中 -t按時間排序 -r是反轉(zhuǎn)排序
2.在配置 apache 服務(wù)時 執(zhí)行了 ./configure --prefix=/application/apache2.2.17 來編譯apche票腰,在 make install 完成后城看,希望用戶訪問 apache 路徑更簡單,需要給 /application/apache2.2.17目錄做一個軟鏈接 /application/apache,使得內(nèi)部開發(fā)或管理人員通過 /application/apache 就可以訪問apache 的安裝目錄 /application/apache2.2.17 下的內(nèi)容杏慰,請你給出實現(xiàn)的命令测柠。
ln –s /application/apache2.2.17 /application/apache
這道題開發(fā)人員需要一個簡單的命令來實現(xiàn)直接訪問/application/apache2.2.17 只需要創(chuàng)建一個指向/application/apache2.2.17的軟連接.
3.已知 Nginx 服務(wù)的訪問日志按天記錄在服務(wù)器本地目錄/app/logs 下,由于磁盤空間緊張,現(xiàn)在要求只能保留最近 7 天的訪問日志缘滥!請問如何解決轰胁? 請給解決辦法或配置或處理命令。
00 00 * * * /usr/bin/find /app/logs -type f -mtime +7 |xargs rm -f &>/dev/null 或 >/dev/null 2>&1
00 00 * * * /usr/bin/find /app/logs -type f -mtime +7 –exec rm –f{} \; &> /dev/null 或 >/dev/null 2>&1
00 00 * * * rm -f $(find /app/logs -type f -mtime +7) &> /dev/null或 >/dev/null 2>&1
先使用find命令取出需要刪除的文件朝扼,注意-mtime參數(shù)的使用软吐,(定時任務(wù)中命令需要使用全路徑)最后做成腳本運行
4.調(diào)試系統(tǒng)服務(wù)時,希望能實時查看/var/log/messages 系統(tǒng)日志的更新吟税,如何做凹耙?
tail –f /var/log/messages
tail –F /var/log/messages
tailf /var/log/messages
tail -f追蹤文件尾部信息 -F一直跟蹤文件哪怕文件刪除,只要創(chuàng)建出命令中需要跟蹤的文件肠仪,他就會自動追蹤
5.打印輕量級 web 服務(wù)的配置文件 nginx.conf 內(nèi)容的行號及內(nèi)容肖抱,該如何做?
cat –n nignx.conf
grep –n '.' nginx.conf
awk '{print NR异旧,$0}' nginx.conf
vim :set nu
sed '=' nginx.conf
less –N nginx.conf
上述命令都可以顯示行號意述,只需要顯示出全文就可以
6.已知如下命令及結(jié)果:
[oldboy@test ~]$ echo "I am oldboy,my qq is 31333741" >>oldboy.txt
[oldboy@test ~]$ cat oldboy.txt
I am oldboy,my qq is 31333741
現(xiàn)在需要從文件中過濾出“oldboy”和“31333741”字符串,請給出命令。
grep –Eo 'oldboy|31333741'oldboy.txt
egrep –o 'oldboy|31333741' oldboy.txt
sed –r 's#am (.*),.*is (.*)#\1\2#g' oldboy.txt
awk –F '[ ,]' ‘{print $3,$NF}' oldboy.txt
過濾兩個字符串grep需要用擴展正則荤崇,加-E 可以過濾多個字符串拌屏,加-o只過濾整個字符串-w出來就會把只要帶這些字符的字符串過濾出來
7.問題:請問在一個命令上加什么參數(shù)可以實現(xiàn)下面命令的內(nèi)容在同一行輸出。
echo "oldboy";echo "oldboy"
echo –n "oldboy";echo "oldboy"
echo -n 參數(shù)為不換行顯示
8.如何快速查到 ifconfig 命令的全路徑(假如你不知道其路徑)术荤,請給出命令倚喂。
which ifconfig
whereis ifconfig
which查看文件全路徑
whereis 查看與該命令相關(guān)的所有路徑
9.查找/oldboy/目錄下所有文件,并把文件中的 www.etiantian.org 字符串換成www.oldboyedu.com
find /oldboy/ -type f |xargs sed 's#www.etiantian.org#www.oldboyedu.com#g'
find /oldboy/ -type f -exec sed 's#www.etiantian.org#www.oldboyedu.com#g'
sed 's#www.etiantian.org#www.oldboyedu.com#g' $(find /oldboy/ -type f )
共三種方法瓣戚,同理第三題
10.過濾出/etc/services 文件包含 3306 或 1521 兩數(shù)據(jù)庫端口的行的內(nèi)容端圈。
grep -E '3306|1521' /etc/services
egrep '3306|1521' oldboy.txt
sed –nr '/3306|1521/p' oldboy.txt
awk '/3306|1521/' oldboy.txt
過濾一般用grep,因為是兩個字符串所以需要-E 因為用到了擴展正則
sed因為需要使用擴展正則用到 -r參數(shù) awk自動識別擴展正則
11.請將 ifconfig eth0 和 ip add 結(jié)果中的 eth0 網(wǎng)卡對應(yīng) ip 地址取出(不低于 2 種方法)子库。
[root@oldboyedu ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.201 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::9fdb:66ba:dc7f:3fe5 prefixlen 64 scopeid 0x20<link>
[root@oldboyedu ~]# ip add
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:2a:ca:54 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.201/24 brd 10.0.0.255 scope global noprefixroute eth0
ifconfig eth0|sed -rn 's#.*t (.*) net.*#\1#gp'
ifconfig eth0|awk -F'[ :]+' 'NR==2{print $3}'
ip addr|awk -F'[ /]+' 'NR==9{print $3}'
ip add|sed -rn 's#.*inet (.*) \/24.*#\1##gp'
這道題主要是用來檢測三劍客命令的使用
12.如何賦予 oldboy.txt 文件如下權(quán)限舱权、用戶、用戶組屬性仑嗅。
-w--rw-rwx. 1 oldboy sa 24 Mar 13 11:46 oldboy.txt
chmod 267 oldboy.txt
chmod u=w g=rw o=rwx oldboy.txt
chown oldboy.sa oldboy.txt
chown oldboy:sa oldboy.txt
chmod是設(shè)置用戶權(quán)限宴倍,chown是改變文件屬主和屬組 的命令屬主和屬組中間需要用.或:隔開
13.某系統(tǒng)管理員需每天做一定的重復(fù)工作,請按照下列要求仓技,編寫一個解決方案啊楚,請按步驟寫清楚每一步操作:
(1)在下午 4:50 刪除/abc 目錄下的全部子目錄和全部文件。
(2)每逢星期一下午五點將/data 目錄下的所有目錄和文件歸檔并壓縮為以當(dāng)天日期命名的tar.gz 結(jié)尾打包文件浑彰。
(1) 50 16 * * * /bin/rm –rf /abc/* >/dev/null 2>&1
腳本:
路徑/server/scripts/rm_abc.sh
#!/bin/bash
#在下午4:50刪除/abc目錄下的全部子目錄和全部文件
/bin/rm -rf /abc/*
執(zhí)行腳本
crontab -e
50 16 * * * /bin/sh /server/scripts/rm_abc.sh >/dev/null 2>&1
(2) 00 17 * * 1 /bin/tar zcf ./date_$(date +\%F).tar.gz ./data >/dev/null 2>&1
腳本:
路徑/server/scripts/tar_data.sh
#!/bin/bash
#打包data目錄下的所有目錄
/bin/cd /&&
tar zcf data_$(date +%F ).tar.gz ./data
執(zhí)行腳本
crontab -e
00 17 * * 1 /bin/sh /server/scripts/tar_data.sh
定時任務(wù)的執(zhí)行需要注意前面的每個星號的代表(分時日月周)后面追加>/dev/null2>&1 把文件產(chǎn)生的報錯定義到空恭理,減少磁盤的占用,因為有時候定時任務(wù)不止一個放在腳本里一塊執(zhí)行
14.如何取得/etc/hosts 文件的權(quán)限對應(yīng)的數(shù)字內(nèi)容郭变,如-rw-r--r-- 為 644颜价,要求使用命令取得644這樣的數(shù)字(不低于 2 種方法)。
stat /etc/hosts -c %a
stat /etc/hosts|awk -F'[0/]' 'NR==4{print $2}'
stat /etc/hosts|sed -nr 's#.*\(0(.*)/-.*#\1#gp'
使用sed和awk 可以取出來诉濒,sed使用替換排除前后的字符周伦,awk使用分列取列
15.Linux 下通過 mkdir 命令創(chuàng)建一個新目錄/oldboy/ett,它的硬鏈接數(shù)是多少未荒,為什么专挪?如果在/oldboy/ett 下面再創(chuàng)建一個目錄 test。再問/oldboy/ett 的硬鏈接數(shù)是多少片排?為什么寨腔。
2 目錄本身是一個硬鏈接,.
3 目錄本身是一個硬鏈接率寡,.也是一個迫卢,..也是一個
目錄本身為一個硬鏈接,該目錄內(nèi)會有一個.的隱藏文件屬于當(dāng)前目錄的硬鏈接冶共,而他下面的每個目錄里后會有一個..的隱藏文件乾蛤,也是屬于當(dāng)前目錄的硬鏈接每界,下面的目錄越多硬鏈接數(shù)越多
16. 企業(yè) 故障案例 1 :(參考問題 9)
作為運維工程師,你在工作中遇到的一個實際問題家卖,情況是:一個 lnmp 的服務(wù)器眨层,站點目錄下所有的文件均被植入了如下內(nèi)容:
<scriptlanguage=javascriptsrc=http://%4%66E%78%6F%72%67%2E%70%6F/x.js?google_ad=93x28_ad></script>(可用 A 代替此行內(nèi)容解答)
包括圖片文件也被植入了,當(dāng)用戶網(wǎng)站打開時就會調(diào)用這個地址,顯示一個廣告,請問你如何解決.
第一步:
備份
第二步:
find / -type f |xargs sed ‘s#A##g’
定位到文件內(nèi)容后上荡,將其替換掉趴樱,確認(rèn)無誤再加-i 參數(shù)
總結(jié)報告并查找故障原因,進(jìn)行針對性防護
運維的核心職責(zé)榛臼,在操作文件時提前備份,然后查找出被添加的內(nèi)容進(jìn)行刪除窜司,最后做總結(jié)沛善,之后針對相同問題進(jìn)行預(yù)防
17.請輸出當(dāng)前日期和時間、3 天前的日期塞祈、未來 10 天的日期金刁。
date +%F
date –d “-3 day” +%F
date –d +10 day +%F
date -d參數(shù)顯示字符串的時間,而不是現(xiàn)在的時間
18.寫出 10 個以上 Linux 命令行中特殊字符及對應(yīng)含義议薪。
* 表示所有
尤蛮?匹配單個字符,有且只有一個
[abcd] 匹配里面任意一個字符
[a-z] 匹配連續(xù)的任意單個字符
[!a-z] 取反也是單個字符 斯议!=^
~ 用戶家目錄
- 上次的目錄
. 當(dāng)前目錄
.. 上一級目錄
'單引號' 所見即所得
"雙引號"引用字符串 解析變量命令,推薦使用
`` 反引號 引用命令 解析命令 等價$() 替代`` 希望系統(tǒng)把字符串當(dāng)做命令
产捞;分號 表示命令分隔符
# 1.管理員提示符 2.注釋
$ 1.普通用戶提示符 2.調(diào)用變量使用
| 管道符 將前面的數(shù)據(jù)流交給后面處理
\ 轉(zhuǎn)義字符 讓字符還原本來的意義
{}1.生成序列 2.引用變量
!1.取反 2.vim 強制 3.調(diào)用最近符合字符開頭的命令
&&并且 前面正確后面才輸出
||或者 or 前面錯誤 后面才輸出
標(biāo)準(zhǔn)輸入:代碼0哼御,配合<或<<使用
標(biāo)準(zhǔn)輸入 0<或<
清空已有內(nèi)容
追加輸入0<<或<<
追加到已有內(nèi)容尾部
標(biāo)準(zhǔn)輸出:代碼為1坯临,配合 >或>>使用
標(biāo)準(zhǔn)輸出1>或>
正常輸出到重定向到文件,會清空文件已有內(nèi)容
追加輸出1>>或>>
將內(nèi)容追加重定向文件底部恋昼,不會清空存在內(nèi)容
標(biāo)準(zhǔn)錯誤:代碼為2看靠,配合>或>>使用
錯誤輸出重定向2>
將標(biāo)準(zhǔn)錯誤內(nèi)容重定向到文件,如果文件存在內(nèi)容則清空
錯誤輸出追加重定向2>>
將標(biāo)準(zhǔn)錯誤內(nèi)容和最佳到文件底部液肌,不會清空
特殊重定向用法
將標(biāo)準(zhǔn)錯誤重定向到標(biāo)準(zhǔn)輸出
echo "I am oldboy" &>>oldbiy.txt
echo "I am oldboy" 1>>oldbiy.txt 2>>oldboy.txt
echo "I am oldboy" >>oldboy.txt 2>&1
[筆試考試試題理論部分] (總滿分 28 分挟炬,每題 4 分)
1. 請說出軟鏈接和硬鏈接的區(qū)別。
硬鏈接不占用 inode 軟連接占用一個 inode
硬鏈接不可以跨文件系統(tǒng)創(chuàng)建嗦哆,軟鏈接不影響
刪除源文件對硬鏈接無影響谤祖,但是軟鏈接會失效
硬鏈接不可以給目錄創(chuàng)建,軟連接可以
2.描述 ls -lhi 輸出中老速,每一列的意義泊脐。
33631870 -rw-r--r--. 1 root root 21 Oct 6 2020 oldboy.txt
33631870:inode節(jié)點號
-rw-r--r--.:文件類型及權(quán)限.代表selinux開啟
1 :硬鏈接數(shù)
root:屬主
root:屬組
21 :文件大小
Oct:月份
6:日期
2020:年份
oldboy.txt:文件名不屬于文件屬性
2. 什么是 PATH 環(huán)境變量,它有什么作用烁峭?
PATH 是命令的搜索路徑
PATH 可以在其他子 shell 中定義命令的目錄路徑
3. 描述 Linux 下文件刪除的原理容客?
硬鏈接數(shù)為 0 link 為 0
進(jìn)程數(shù)為 0 icount 為 0
4. 企業(yè) 故障案例 2 :往磁盤中寫入數(shù)據(jù)出現(xiàn) no space left on device 故障秕铛,請寫出可能原因。
inode 滿 : 定時任務(wù)書寫有誤缩挑,導(dǎo)致郵件產(chǎn)生大量小文件但两,把 把 inode 占用完了
block 滿:df –h du –sh 定位 到大文件,并將其刪除
5. 企業(yè)例 故障案例 3 : Tomcat 服務(wù)器磁盤滿了供置,臨時刪除對應(yīng)日志文件但是發(fā)現(xiàn)空間未釋放,可能原因是?如何解決
進(jìn)程占用谨湘,ps –ef|grep delete 相應(yīng)的服務(wù)進(jìn)程,并將其重啟即可釋放空間
6. 企業(yè)例 故障案例 4 :定時任務(wù)的腳本手工可以執(zhí)行芥丧,但是放到定時任務(wù)里無法執(zhí)行紧阔,可能的原因是什么?
原因 一:環(huán)境變量問題,沒有使用絕對路徑執(zhí)行定時任務(wù)
原因 二 :定時任務(wù)寫錯了