作為一個程式設計師,我們在進行專案部署和運維時,經常會用到一些linux命令,可是這些命令老是忘記,每次用到的時候都要去谷歌百度,很是麻煩!這不,為了自己使用方便,對常見的linux命令進行了系統的總結,以便在用到時能夠快速地找到相關命令,同時有需要的朋友也可以參考蒐藏該篇文章!文章對講到的每個命令都有詳細的引數解釋,並且給出一些常用例子,因此也非常適合用來學習!
全文命令分為以下6個模組:
1、常用系統工作命令
2、系統狀態檢測命令
3、工作目錄切換命令
4、文字檔案編輯命令
5、檔案目錄管理命令
6、打包壓縮與搜尋命令
在說具體命令之前,讀者應該清楚linux命令的基本格式,如下:
linux命令的格式
以下內容為具體的命令詳解:
一、常用系統工作命令
1、echo命令
2、date命令
3、reboot命令(相當於windows的重啟)
4、poweroff命令(相當於windows的關機)
5、wget命令
wget命令用於在終端中下載網路檔案,格式為“ wget [引數 ] 下載地址”。
6、ps命令
ps命令用於檢視系統中的程序狀態,格式為“ ps [引數 ]”。
常用用法:ps aux或者ps lax
7、top命令(相當於window中的任務管理器)
top命令用於動態地監視程序活動與系統負載等資訊,預設每10秒重新整理一次。
8、pidof命令
pidof命令用於查詢某個指定服務程序的 PID值,格式為“ pidof [引數 ] [服務名稱 ]”。
9、kill命令
kill命令用於終止某個指定 PID的服務程序,格式為“ kill [引數 ] [程序 PID]”。
10、killall命令
通常來講,複雜軟體的服務程式會有多個程序協同為使用者提供服務,如果逐個去結束這
些程序會比較麻煩,此時可以使用 killall命令來批次結束某個服務程式帶有的全部程序。下
面以 httpd服務程式為例,來結束其全部程序。
二、系統狀態檢測命令
1、ifconfig命令
此命令被用來獲取網路介面配置資訊並對此進行修改。
由於此命令叫複雜,可以參考此篇文章進行學習:https://xp9802.iteye.com/blog/2120351
2、uname命令
uname命令用於檢視系統核心與系統版本等資訊,格式為“ uname [-a]”。
在使用uname命令時,一般會固定搭配上 -a引數來完整地檢視當前系統的核心名稱、主
機名、核心發行版本、節點名、系統時間、硬體名稱、硬體平臺、處理器型別以及作業系統名
稱等資訊。
3、uptime命令
uptime用於檢視系統的負載資訊,格式為 uptime。
uptime命令真的很棒,它可以顯示當前系統時間、系統已執行 時間、啟用終端數量以
及平均負載值等資訊。平均負載值指的是系統在最近 1分鐘、 5分鐘、 15分鐘內的壓力情
況(下面加粗的資訊部分);負載值越低越好,儘量不要長期超過 1,在生產環境中不要超
過 5。
4、free命令
free用於顯示當前系統中記憶體的使用量資訊,格式為“ free [-h]”。
為了保證Linux系統不會因資源耗盡而突然宕機,運維人員需要時刻關注記憶體的使用量。
在使用 free命令時,可以結合使用 -h引數以更人性化的方式輸出當前記憶體的實時使用量資訊。
表 2-8所示為電腦上執行 free -h命令之後的輸出資訊。需要注意的是,輸出信
息中的中文註釋是作者自行新增的內容,實際輸出時沒有相應的引數解釋。
5、who命令
who用於檢視當前登入主機的使用者終端資訊,格式為“ who [引數 ]”。
這三個簡單的字母可以快速顯示出所有正在登入本機的使用者的名稱以及他們正在開啟的
終端資訊。
6、last命令
last命令用於檢視所有系統的登入記錄,格式為“ last [引數 ]”。
使用last命令可以檢視本機的登入記錄。但是,由於這些資訊都是以日誌檔案的形式保
存在系統中,因此駭客可以很容易地對內容進行篡改。千萬不要單純以該命令的輸出資訊而
判斷系統有無被惡意入侵!
7、history命令
用於顯示歷史執行過的命令,格式為“ history [-c]”。
history命令應該是作者最喜歡的命令。執行 history命令能顯示出當前使用者在本地計算機
中執行過的最近 1000條命令記錄。如果覺得 1000不夠用,還可以自定義 /etc/profile檔案中的
HISTSIZE變數值。在使用 history命令時,如果使用 -c引數則會清空所有的命令歷史記錄。
還可以使用“!編碼數字”的方式來重複執行某一次的命令。總之, history命令有很多有趣的玩法等待您去開發。
歷史命令會被儲存到使用者家目錄中的.bash history檔案中。 Linux系統中以點(.)開
頭的檔案均代表隱藏檔案,這些檔案大多數為系統服務檔案,可以用 cat命令檢視其檔案
內容。
要清空當前使用者在本機上執行的Linux命令歷史記錄資訊,可執行如下命令:
三、工作目錄切換命令
1、pwd命令
pwd命令用於顯示使用者當前所處的工作目錄,格式為“ pwd [選項 ]”。
2、cd命令
cd命令用於切換工作路徑,格式為“ cd [目錄名稱 ]”。
這個命令應該是最常用的一個
Linux命令了。可以透過 cd命令迅速、靈活地切換到不同
的工作目錄。除了常見的切換目錄方式,還可以使用“ cd -”命令返回到上一次所處的目錄
使用“ cd..”命令進入上級目錄 以 及使用“ cd ~”命令切換到當前使用者的家目錄,亦或使用
cd ~username”切換到其他使用者的家目錄。例如,可以使用 cd 路徑”的方式切換進 /etc目
錄中:
同樣的道理,可使用下述命令切
換到 /bin目錄中:
此時,要返回到上一次的目錄(即
/etc目錄),可執行如下命令:
還可以透過下面的命令快速切換到使用者的家目錄:
3、ls命令
ls命令用於顯示目錄中的檔案資訊,格式為“ ls [選項 ] [檔案 ] ”。
所處的工作目錄不同,當前工作目錄下的檔案肯定也不同。使用 ls命令的“ “-a”引數看
到全部檔案(包括隱藏檔案),使用“ “-l”引數可以檢視檔案的屬性、大小等詳細資訊。將這
兩個引數整合之後,再執行 ls命令即可檢視當前目錄中的所有檔案並輸出這些檔案的屬性
資訊:
如果想要檢視目錄屬性資訊,則需要額外新增一個-d引數。例如 ,可使用如下命令檢視
/etc目錄的許可權與屬性資訊:
四、文字檔案編輯命令
Linux系統中“一切都是檔案”,而對服務程式進行配置自然也就是編輯程式的配置檔案。如
果不能熟練地查閱系統或服務的配置檔案,那以後工作時可就真的要尷尬了。本節將講解幾
條用於檢視文字檔案內容的命令。
1、cat命令
cat命令用於檢視純文字檔案(內容較少的),格式為“ cat [選項 ] [檔案 ]”。
Linux系統中有多個用於檢視文字內容的命令,每個命令都有自己的特點,比如這個 cat命令就是用於檢視內容較少的純文字檔案的。 cat這個命令也很好記,因 為 cat在英語中是“貓”
的意思,小貓咪是不是給您一種嬌小、可愛的感覺呢?
如果在檢視文字內容時還想順便顯示行號的話,不妨在
cat命令後面追加一個 -n引數:
2、more命令
more命令用於檢視純文字檔案(內容較多的),格式為“ more [選項 ]檔案”。
如果需要閱讀長篇小說或者非常長的配置檔案,那麼“小貓咪”可就真的不適合了。因
為一旦使用 cat命令閱讀長篇的文字內容,資訊就會在螢幕上快速翻滾,導致自己還沒有來得
及看到,內容就已經翻篇了。因此對於長篇的文字內容,推薦使用 more命令來檢視。 more命
令會在最下面使用百分比的形式來提示您已經閱讀了多少內容。您還可以使用空格鍵或回車
鍵向下翻頁:
3、head命令
head命令用於檢視純文字文件的前 N行,格式為“ head [選項 ] [檔案 ]”。
在閱讀文字內容時,誰也難以保證會按照從頭到尾的順序往下看完整個檔案。如果只想
檢視文字中前 20行的內容,該怎麼辦呢? head命令可以派上用場了:
4、tail命令
tail命令用於檢視純文字文件的後 N行或持續重新整理內容,格式為“ tail [選項 ] [檔案 ]”。
我們可能還會遇到另外一種情況,比如需要檢視文字內容的最後
20行,這時就需要用到
tail命令了。 tail命令的操作方法與 head命令非常相似,只需要執行“ tail -n 20 檔名”命令
就可以達到這樣的效果。 tail命令最強悍的功能是可以持續重新整理一個檔案的內容,當想要實時
檢視最新日誌檔案時,這特別有用,此時的命令格式為“ tail -f 檔名”:
5、tr命令
tr命令用於替換文字檔案中的字元,格式為“ tr [原始字元 ] [目標字元 ]”。
在很多時候,我們想要快速地替換文字中的一些詞彙,又或者把整個文字內容都進行替
換,如果進行手工替換,難免工作量太大,尤其是需要處理大批次的內容時,進行手工替換更
是不現實。這時,就可以先使用 cat命令讀取待處理的文字,然後透過管道符把這些文字內容傳遞給 tr命令進行替換操作即可。例如,把某個文字內容中的英文全部替換
為大寫:
6、wc命令
wc命令用於統計指定文字的行數、字數、位元組數,格式為“ wc [引數 ] 文字”。
說起這個命令,總有同學會聯想到一種公共設施,其實這兩者毫無關聯。
Linux系統中的 wc命令用於統計文字的行數、字數、位元組數等。如果為了方便自己記住這個命令的作用,也可以聯想到上廁所時好無聊,無聊到數完了手中的如廁讀物上有多少行字。
wc的引數以及相應的作用如表 2-10所示。
在Linux系統中, passwd是用於儲存系統賬戶資訊的檔案,要統計當前系統中有多少個
使用者,可以使用下面的命令來進行查詢,是不是很神奇:
7、stat命令
stat命令用於檢視檔案的具體儲存資訊和時間等資訊,格式為“ stat 檔名稱”。
stat命令可以用於檢視檔案的儲存資訊和時間等資訊,命令 stat anaconda-ks.cfg會顯示出
檔案的三種時間狀態(已加粗): Access、 Modify、 Change。這三種時間的區別將在下面的 touch命令中詳細詳解:
8、diff命令
diff命令用於比較多個文字檔案的差異,格式為“ diff [引數 ] 檔案”。
在使用diff命令時,不僅可以使用 --brief引數來確認兩個檔案是否不同,還可以使用 -c參
數來詳細比較出多個檔案的差異之處,這絕對是判斷檔案是否被篡改的有力神器。例如,先
使用 cat命令分別檢視 diff A.txt和 diff B.txt檔案的內容,然後進行比較:
接下來使用
diff --brief命令顯示比較後的結果,判斷檔案是否相同:
最後使用帶有
-c引數的 diff命令來描述檔案內容具體的不同:
五、檔案目錄管理命令
1、touch命令
touch命令用於建立空白檔案或設定檔案的時間,格式為“ touch [選項 ] [檔案 ]”。
在建立空白的文字檔案方面,這個
touch命令相當簡捷,簡捷到沒有必要鋪開去講。
比如, touch linuxprobe命令可以創建出一個名為 linuxprobe的空白文字檔案。對 touch命
令來講,有難度的操作主要是體現在設定檔案內容的修改時間( mtime)、檔案許可權或屬性
的更改時間( ctime)與檔案的讀取時間 atime)上面。 touch命令的引數及其作用如表 2-11所示。
接下來,我們先使用ls命令檢視一個檔案的修改時間,然後修改這個檔案,最後再透過 touch命令把修改後的檔案時間設定成修改 之前 的時間(很多駭客就是這樣做的呢):
2、mkdir命令
mkdir命令用於建立空白的目錄,格式為“ mkdir [選項 ] 目錄”。
在Linux系統中,資料夾是最常見的檔案型別之一。除了能建立單個空白目錄外, mkdir命令還可以結合 -p引數來遞迴創建出具有巢狀疊層關係的檔案目錄。
3、cp命令
cp命令用於複製檔案或目錄,格式為“ cp [選項 ] 原始檔 目標檔案”。
大家對檔案複製操作應該不陌生,在
Linux系統中,複製操作具體分為 3種情況:
1、如果目標檔案是目錄,則會把原始檔複製到該目錄中;
2、如果目標檔案也是普通檔案,則會詢問是否要覆蓋它;
3、如果目標檔案不存在,則執行正常的複製操作。
cp命令的引數及其作用如表 2-12所示。
接下來,使用touch建立一個名為 install.log的普通空白檔案,然後將其複製為一份名為x.log的備份檔案,最後再使用 ls命令檢視目錄中的檔案:
4、mv命令
mv命令用於剪下檔案或將檔案重新命名,格式為“ mv [選項 ] 原始檔 [目標路徑 |目標檔名 ]”。
在同一個目錄中對一個檔案進行剪下操作,其實也就是對其進行重新命名:
5、rm命令
6、dd命令
dd命令用於按照指定大小和個數的資料塊來複制檔案或轉換檔案,格式為“ dd [引數 ]”。
dd命令是一個比較重要而且比較有特色的一個命令,它能夠讓使用者按照指定大小和個數
的資料塊來複制檔案的內容。 dd命令的引數及其作用如下表。
例如我們可以用dd命令從 /dev/zero裝置檔案中取出一個大小為 560MB的資料塊,然後
儲存成名為 560 file的檔案。在理解了這個命令後,以後就能隨意建立任意大小的檔案了:
dd命令的功能也絕不僅限於複製檔案這麼簡單。如果您想把光碟機裝置中的光碟製作成 iso格
式的映象檔案,在 Windows系統中需要藉助於第三方軟體才能做到,但在 Linux系統中可以直接
使用 dd命令來壓制出光碟映象檔案,將它 變成 一個可立即使用的 iso映象:
7、file命令
file命令用於檢視檔案的型別,格式為“ file 檔名”。
在Linux系統中,由於文字、目錄、裝置等所有這些一切都統稱為檔案,而我們又不能
單憑字尾就知道具體的檔案型別,這時就需要使用 file命令來檢視檔案型別了。
六、打包壓縮與搜尋命令
在網路上,人們越來越傾向於傳輸壓縮格式的檔案,原因是壓縮檔案體積小,在網速相
同的情況下,傳輸時間短。下面將學習如何在 Linux系統中對檔案進行打包壓縮與解壓,以
及讓使用者基於關鍵詞在文字檔案中搜索相匹配的資訊、在整個檔案系統中基於指定的名稱或
屬性搜尋特定檔案。本節雖然只有 3條命令,但是其功能都比較複雜而且引數很多,因此放
到了最後講解。
1、tar命令
tar命令用於對檔案進行打包壓縮或解壓,格式為“ tar [選項 ] [檔案 ]”。
在Linux系統中,常見的檔案格式比較多,其中主要使用的是 .tar或 .tar.gz或 .tar.bz2格式,我
們不用擔心格式太多而記不住,其實這些格式大部分都是由 tar命令來生成的。 tar命令的引數及其作用如表 2-14所示。
首先,-c引數用於建立壓縮檔案, ,-x引數用於解壓檔案,因此這兩個引數不能同時使用。
其次, ,-z引數指定使用 Gzip格式來壓縮或解壓檔案, ,-j引數指定使用 bzip2格式來壓縮或解
壓檔案。使用者使用時則是根據檔案的字尾來決定應使用何種格式引數進行解壓。在執行某些
壓縮或解壓操作時,可能需要花費數個小時,如果螢幕一直沒有輸出,您一方面不好判斷打
包的進度情況,另一方面也會懷疑電腦宕機了,因此非常推薦使用 -v引數向用戶不斷顯 示壓
縮或解壓的過程。 -C引數用於指定要解壓到哪個指定的目錄。 -f引數特別重要,它必須放到
引數的最後一位,代表要壓縮或解壓的軟體包名稱。劉遄老師一般使用“ tar -czvf 壓縮包名
稱 .tar.gz 要打包的目錄”命令把指定的檔案進行打包壓縮;相應的解壓命令為“ tar -xzvf 壓縮
包名稱 .tar.gz”。下面我們來逐個演示下打包壓縮與解壓的操作。先使用 tar命令把 /etc目錄通
過 gzip格式進行打包壓縮,並把檔案命名為 etc.tar.gz
接下來將打包後的壓縮包檔案指定解壓到/root/etc目錄中(先使用 mkdir命令來建立/root/etc目錄):
2、grep命令
grep命令用於在文字中執行關鍵詞搜尋,並顯示匹配的結果,格式為“ grep [選項 ] [檔案 ]”。
grep命令的引數及其作用如下表。
grep命令是用途最廣泛的文字搜尋匹配工具,雖然有很多引數,但是大多數基本上都用不到。我們在這裡只講兩個最最常用的引數 :-n引數用來顯示搜尋到資訊的行號; ;-v引數用於反選資訊(即沒有包含關鍵詞的所有資訊行)。這兩個引數幾乎能完成您日後 80%的工作需要,至於其他上百個引數,即使以後在工作期間遇到了,再使用 man grep命令查詢也來得及。在Linux系統中, ,/etc/passwd檔案是儲存著所 有的使用者資訊,而一旦使用者的登入終端被設定成 /sbin/nologin,則不再允許登入系統,因此可以使用 grep命令來查找出當前系統中不允許登入系統的所有使用者資訊:
3、find命令
find命令用於按照指定條件來查詢檔案,格式為“ find [查詢路徑 ] 尋找條件 操作”。
“Linux系統中的一切都是檔案”,接下來就要見證這句話的分量了。
在 Linux系統中,搜尋工作一般都是透過 find命令來完成的,它可以使用不同的檔案特性作
為尋找條件(如檔名、大小、修改時間、許可權等資訊),一旦匹配成功則預設將資訊顯示到
螢幕上。 find命令的引數以及作用如表 2-16所示。
這裡需要重點講解一下
-exec引數重要的作用。這個引數用於把 find命令搜尋到的結果交
由緊隨其後的命令作進一步處理,它十分類似於管道符技術,並且由於 find命令對引數的特殊要求,因此雖然 exec是長格式形式,但依然只需要一個減號(-)。
根據檔案系統層次標準(Filesystem Hierarchy Standard)協議 Linux系統中的配置檔案
會儲存到 /etc目錄中。如果要想獲取到該目錄中所有以 host開頭的檔案列表,
可以執行如下命令:
如果要在整個系統中搜索許可權中包括
SUID許可權的所有檔案(詳見第 5章),只需使用 -4000即可:
好了,以上就是關於我總結的linux基本命令。