×
廣告

必須掌握的linux命令

96
喵小攻
2018.08.14 12:36 字數 3229

? ? ? 計算機硬件是由運算器、控制器、存儲器、輸入/輸出設備等共同組成的,而讓各種硬件設備各司其職且又能協同運行的東西就是系統內核。Linux系統的內核負責完成對硬件資源的分配、調度等管理任務。由此可見,系統內核對計算機的正常運行來講是太重要了,因此一般不建議直接去編輯內核中的參數,而是讓用戶通過基于系統調用接口開發出的程序或服務來管理計算機,以滿足日常工作的需要

? ? ? ?必須肯定的是,Linux系統中有些圖形化工具(比如邏輯卷管理器[Logical Volume Manager,LVM])確實非常好用,極大地降低了運維人員操作出錯的概率,值得稱贊。但是,很多圖形化工具其實是調用了腳本來完成相應的工作,往往只是為了完成某種工作而設計的,缺乏Linux命令原有的靈活性及可控性。再者,圖形化工具相較于Linux命令行界面會更加消耗系統資源,因此經驗豐富的運維人員甚至都不會給Linux系統安裝圖形界面,需要開始運維工作時直接通過命令行模式遠程連接過去,不得不說這樣做確實挺高效的。


??用戶與Linux系統的交互


? ? ? ? ? Shell就是這樣的一個命令行工具。Shell(也稱為終端或殼)充當的是人與內核(硬件)之間的翻譯官,用戶把一些命令“告訴”終端,它就會調用相應的程序服務去完成某些工作。現在包括紅帽系統在內的許多主流Linux系統默認使用的終端是Bash(Bourne-Again SHell)解釋器。主流Linux系統選擇Bash解釋器作為命令行終端主要有以下4項優勢,讀者可以在今后的學習和生產工作中細細體會Linux系統命令行的美妙之處,真正從心里愛上它們。

1:通過上下方向鍵來調取過往執行過的Linux命令;

2:命令或參數僅需輸入前幾位就可以用Tab鍵補全;

3:具有強大的批處理腳本;

4:具有實用的環境變量功能。


執行查看幫助命令

? ?既然Linux系統中已經有了Bash這么好用的“翻譯官”,那么接下來就有必要好好學習下怎么跟它溝通了。要想準確、高效地完成各種任務,僅依賴于命令本身是不夠的,還應該根據實際情況來靈活調整各種命令的參數。比如,我們切壽司時盡管可以用菜刀,但米粒一定會撒得滿地都是,因此壽司刀上設計的用于透氣的圓孔就是為了更好地適應場景而額外增加的參數。當您學完本書并具備一定的工作經驗之后,一定能夠領悟Linux命令的奧秘。常見執行Linux命令的格式是這樣的:

命令名稱 [命令參數] [命令對象]

注意,命令名稱、命令參數、命令對象之間請用空格鍵分隔。


命令參數的長格式與短格式示例


man命令中常用按鍵以及用途


?man命令幫助信息的結構以及意義


常用系統工作命令

1.echo命令

echo命令用于在終端輸出字符串或變量提取后的值,格式為“echo [字符串?|?$變量]”。

echo命令

2.date命令

date命令用于顯示及設置系統的時間或日期,格式為“date [選項] [+指定的格式]”。

? ?只需在強大的date命令中輸入以“+”號開頭的參數,即可按照指定格式來輸出系統的時間或日期,這樣在日常工作時便可以把備份數據的命令與指定格式輸出的時間信息結合到一起。例如,把打包后的文件自動按照“年-月-日”的格式打包成“backup-2017-9-1.tar.gz”,用戶只需要看一眼文件名稱就能大概了解到每個文件的備份時間了


?date命令中的參數以及作用


3.reboot命令

reboot命令用于重啟系統,其格式為reboot。

由于重啟計算機這種操作會涉及硬件資源的管理權限,因此默認只能使用root管理員來重啟,其命令如下:

4.poweroff命令

poweroff命令用于關閉系統,其格式為poweroff。

該命令與reboot命令相同,都會涉及硬件資源的管理權限,因此默認只有root管理員才可以關閉電腦,其命令如下:


5.wget命令

wget命令用于在終端中下載網絡文件,格式為“wget [參數] 下載地址”。


?wget命令的參數以及作用

6.ps命令

? ?ps命令用于查看系統中的進程狀態,格式為“ps [參數]”。

? 第一次執行這個命令時都要驚呆一下—怎么會有這么多輸出值,這可怎么看得過來?將ps命令與管道符技術搭配使用,用來抓取與某個指定服務進程相對應的PID號碼。ps命令的常見參數以及作用


ps命令的參數以及作用

? ?Linux系統中時刻運行著許多進程,如果能夠合理地管理它們,則可以優化系統的性能。在Linux系統中,有5種常見的進程狀態,分別為運行、中斷、不可中斷、僵死與停止,其各自含義如下所示。

R(運行):進程正在運行或在運行隊列中等待。

S(中斷):進程處于休眠中,當某個條件形成后或者接收到信號時,則脫離該?? 狀態。

D(不可中斷):進程不響應系統異步信號,即便用kill命令也不能將其中斷。

Z(僵死):進程已經終止,但進程描述符依然存在, 直到父進程調用wait4()系統函數后將進程釋放。

T(停止):進程收到停止信號后停止運行。


? 進程狀態

7.top命令

top命令用于動態地監視進程活動與系統負載等信息,其格式為top。

top命令相當強大,能夠動態地查看系統運維狀態,完全將它看作Linux中的“強化版的Windows任務管理器”。top命令的運行界面


top命令的運行界面

8.pidof命令

pidof命令用于查詢某個指定服務進程的PID值,格式為“pidof [參數] [服務名稱]”。

每個進程的進程號碼值(PID)是唯一的,因此可以通過PID來區分不同的進程。例如,可以使用如下命令來查詢本機上sshd服務程序的PID:


9.kill命令

kill命令用于終止某個指定PID的服務進程,格式為“kill [參數] [進程PID]”。

接下來,我們使用kill命令把上面用pidof命令查詢到的PID所代表的進程終止掉,其命令如下所示。這種操作的效果等同于強制停止sshd服務。


10.killall命令

killall命令用于終止某個指定名稱的服務所對應的全部進程,格式為:“killall [參數] [服務名稱]”。

通常來講,復雜軟件的服務程序會有多個進程協同為用戶提供服務,如果逐個去結束這些進程會比較麻煩,此時可以使用killall命令來批量結束某個服務程序帶有的全部進程。下面以httpd服務程序為例,來結束其全部進程。由于RHEL7系統默認沒有安裝httpd服務程序


如果我們在系統終端中執行一個命令后想立即停止它,可以同時按下Ctrl + C組合鍵(生產環境中比較常用的一個快捷鍵),這樣將立即終止該命令的進程。或者,如果有些命令在執行時不斷地在屏幕上輸出信息,影響到后續命令的輸入,則可以在執行命令時在末尾添加上一個&符號,這樣命令將進入系統后臺來執行。

系統狀態檢測命令

? ?作為一名合格的運維人員,想要更快、更好地了解Linux服務器,必須具備快速查看Linux系統運行狀態的能力,網卡網絡、系統內核、系統負載、內存使用情況、當前啟用終端數量、歷史登錄記錄、命令執行記錄以及救援診斷等相關命令

1.ifconfig命令

ifconfig命令用于獲取網卡配置與網絡狀態等信息,格式為“ifconfig [網絡設備] [參數]”。

使用ifconfig命令來查看本機當前的網卡配置與網絡狀態等信息時,其實主要查看的就是網卡名稱、inet參數后面的IP地址、ether參數后面的網卡物理地址(又稱為MAC地址),以及RX、TX的接收數據包與發送數據包的個數及累計流量(即下面加粗的信息內容):


2.uname命令

uname命令用于查看系統內核與系統版本等信息,格式為“uname [-a]”。

在使用uname命令時,一般會固定搭配上-a參數來完整地查看當前系統的內核名稱、主機名、內核發行版本、節點名、系統時間、硬件名稱、硬件平臺、處理器類型以及操作系統名稱等信息。


順帶一提,如果要查看當前系統版本的詳細信息,則需要查看redhat-release文件,其命令以及相應的結果如下:


4.free命令

free用于顯示當前系統中內存的使用量信息,格式為“free [-h]”。

? 為了保證Linux系統不會因資源耗盡而突然宕機,運維人員需要時刻關注內存的使用量。在使用free命令時,可以結合使用-h參數以更人性化的方式輸出當前內存的實時使用量信息。表2-8所示為在劉遄老師的電腦上執行free -h命令之后的輸出信息。


?執行free -h命令后的輸出信息

5.who命令

who用于查看當前登入主機的用戶終端信息,格式為“who [參數]”。

這三個簡單的字母可以快速顯示出所有正在登錄本機的用戶的名稱以及他們正在開啟的終端信息


執行who命令的結果

6.last命令

last命令用于查看所有系統的登錄記錄,格式為“last [參數]”。

使用last命令可以查看本機的登錄記錄。但是,由于這些信息都是以日志文件的形式保存在系統中,因此黑客可以很容易地對內容進行篡改。千萬不要單純以該命令的輸出信息而判斷系統有無被惡意入侵!


7.history命令

history命令用于顯示歷史執行過的命令,格式為“history [-c]”。

? ? history命令應該是作者最喜歡的命令。執行history命令能顯示出當前用戶在本地計算機中執行過的最近1000條命令記錄。如果覺得1000不夠用,還可以自定義/etc/profile文件中的HISTSIZE變量值。在使用history命令時,如果使用-c參數則會清空所有的命令歷史記錄。還可以使用“!編碼數字”的方式來重復執行某一次的命令。總之,history命令有很多有趣的玩法等待您去開發。


? ? 歷史命令會被保存到用戶家目錄中的.bash_history文件中。Linux系統中以點(.)開頭的文件均代表隱藏文件,這些文件大多數為系統服務文件,可以用cat命令查看其文件內容。


8.sosreport命令

? ? sosreport命令用于收集系統配置及架構信息并輸出診斷文檔,格式為sosreport。

當Linux系統出現故障需要聯系技術支持人員時,大多數時候都要先使用這個命令來簡單收集系統的運行狀態和服務配置信息,以便讓技術支持人員能夠遠程解決一些小問題,亦或讓他們能提前了解某些復雜問題。在下面的輸出信息中,加粗的部分是收集好的資料壓縮文件以及校驗碼,將其發送給技術支持人員即可:


linux基礎
Web note ad 1
东京食尸鬼unravel原唱