文章出處

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系統從開機到登陸界面的啟動過程

屏幕快照 2017-01-19 下午3.30.42.png-292.7kB
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下軟鏈接和硬鏈接的區別。

屏幕快照 2017-01-24 上午10.08.52.png-369.3kB
1,如何創建

默認不帶參數情況下,ln命令創建的是硬鏈接,帶-s參數的ln命令創建的是軟鏈接

2,含義:

硬鏈接文件與源文件的inode節點號相同,而軟鏈接文件相當于windows下面的快捷方式(inode節點號與源文件不同)

3,特點:

不能對目錄創建硬鏈接,但可以創建軟鏈接,對目錄的軟鏈接會經常被用到。
軟鏈接可以跨文件系統,硬鏈接不可以跨文件系統

4,軟硬鏈接和源文件的刪除

刪除軟鏈接文件,對源文件及硬鏈接文件無任何影響
刪除文件的硬鏈接文件,對源文件及軟鏈接文件無任何影響
刪除鏈接文件的源文件,對硬鏈接文件無影響,會導致其軟鏈接失效(紅底白字閃爍妝)
同時刪除源文件及其硬鏈接文件,整個文件才會被真正的刪除

1.3 描述linux shell中單引號,雙引號及不加引號的簡單區別

1,單引號:

可以說是所見即所得,也就是將單引號內的內容原樣輸出,或者描述為單引號里面看到的是什么就會輸出什么。

2,雙引號:

把雙引號內的內容輸出出來,如果內容中有命令,變量等,會先把變量,命令解析出結果,然后在輸出最終內容來。

3,無引號:

與雙引號類似,但支持通配符

把內容輸出出來,可能不會將含有空格的字符串視為一個整體輸出,如果內容中有命令,變量等,會先把變量,命令解析出結果,然后在輸出最終內容來,如果字符串中帶有空格等特殊字符,則不能完整的輸出,需要改加雙引號,一般連續的字符串,數字,路徑等可以用,不過最好用雙引號替代之。

QQ20170124-105807@2x.png-51.6kB

1.4描述linux運行級別0-6的各自含義

0:關閉計算機
1:單用戶模式
2:沒有NFS網絡文件系統的多用戶模式
3:命令(文本)模式
4:保留模式
5:圖形桌面模式
6:重啟計算機

1.5描述linux下文件刪除的原理

屏幕快照 2017-01-24 上午10.59.56.png-369.7kB

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
QQ20170125-205725@2x.png-46.6kB
方法二:stat + grep + egrep
QQ20170125-211117@2x.png-62.1kB
方法三:stat + sed + awk
QQ20170125-211652@2x.png-54.3kB
方法四:stat + awk + sed
QQ20170125-213200@2x.png-44.8kB
方法五:stat +sed的反向引用
QQ20170203-113804@2x.png-101.3kB
方法六:stat +sed +cut
QQ20170203-192116@2x.png-69.4kB
方法七:stat -c
QQ20170203-192714@2x.png-60.7kB

本題方法有很多,請同學們將之前所學知識融會貫通。(相信學習到這里的同學已經漸漸開始明白sed,awk 正則之強大)

屏幕快照 2017-02-03 上午11.40.39.png-199.3kB

2.2 linux下通過mkdir命令創建一個新目錄/chensiqi/ett,它的硬鏈接數是多少,為什么?如果在/chensiqi/ett下面再創建一個目錄test。再問/chensiqi/ett的硬鏈接數是多少?為什么?

答:

新創建的文件夾默認兩個硬鏈接數

QQ20170203-193502@2x.png-43.5kB

在文件夾里在創建一個文件夾,當前文件夾硬鏈接數變成3個

QQ20170203-195559@2x.png-85.8kB

QQ20170203-200244@2x.png-28.6kB

2.3 請執行命令取出linux中eth0的IP地址(請用cut,有能力者也可以分別用awk,sed命令答)

答:
方法一:cut解決
QQ20170203-200935@2x.png-72.2kB
方法二:sed解決
QQ20170203-202212@2x.png-248.2kB
方法三:awk解決
QQ20170203-202855@2x.png-85.2kB
awk簡化實現方法
QQ20170204-102358@2x.png-107.4kB
方法四:egrep解決
QQ20170203-203632@2x.png-89.1kB

方法還是很多,這里就不一一舉例了,目前輔助訓練已經進入了第三階段,在本階段里,所有同學都應該將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解決
QQ20170204-113338@2x.png-40.2kB

方法二:xargs解決
QQ20170204-113641@2x.png-25kB

2.6 如何賦予chensiqi文件-rw-r--r-x權限屬性

答:chmod 645 文件名
QQ20170204-114002@2x.png-39.2kB

2.7 執行下面命令時發現提示需要輸入密碼,請問提示輸入的密碼是哪個用戶的密碼?

[test@chensiqi ~]$ sudo su - chensiqi

答:當前登錄的test用戶的密碼

2.8 問題:請問在一個命令上加什么參數可以實現下面命令的內容在同一行輸出。

echo "chensiqi";echo "chensiqi"
答:本題考察echo的-n參數。

屏幕快照 2017-02-04 下午1.04.08.png-23.9kB

2.9 問題:請給出如下格式的date命令 例:11-02-26.在給出實現按周輸出 比如:周六輸出為6,請分別給出命令

答:date +%F_%w
QQ20170204-134040@2x.png-152.9kB

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天后打印日期

屏幕快照 2017-02-04 下午3.06.27.png-91.9kB

2.12 已知/chensiqi/test.txt文件內容為:

屏幕快照 2017-02-04 下午3.14.46.png-29.2kB
請問如何把文件中的空格過濾掉(要求命令行實現)
答:
方法一:grep或egrep
屏幕快照 2017-02-04 下午3.25.12.png-22.5kB
如果是空行則需要^$來過濾

方法二:awk
QQ20170204-155536@2x.png-122.7kB

2.13 已知/chensiqi/ett.txt 文件內容為:

chensiqi
chhensiiqiedu
test

請使用grep或egrep正則匹配的方式過濾出前兩行內容
答:
QQ20170204-154106@2x.png-121.5kB

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(永久修改創建用戶時的默認失效時間)
    QQ20170204-181938@2x.png-144.1kB
    或直接修改下面文件的參數
    屏幕快照 2017-02-04 下午6.25.06.png-54.8kB
    還原用戶默認失效時間
    QQ20170204-182834@2x.png-73.3kB
    查看某用戶的賬戶屬性
    QQ20170204-181230@2x.png-139.3kB

方法二:修改賬戶屬性
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:命令行黏貼內容


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()