常見執行Linux命令的格式:命令名稱 [命令參數] [命令對象] ;
注意:命令名稱,命令參數,命令對象之間使用空格分隔;
命令對象一般是指要處理的文件,目錄,用戶等資源,而命令參數可以用長格式(完整的選項名稱),也可以使用短格式(單個字母的縮寫),兩者分別用--與-作為前綴。
長短格式示例:
長格式:man --help;
短格式:man -h;
查看幫助命令:man
man命令中常用按鍵用途:
空格鍵:向下翻一頁;
PaGe down:向下翻一頁;
PaGe up:向上翻一頁;
home:直接前往首頁;
end:直接前往尾頁;
/:從上至下搜索某個關鍵詞,如:/whatis;
?:從上至下搜索某個關鍵詞,如:?whatis;
n:定位到下一個搜索到的關鍵詞;
N:定位到上一個搜索到的關鍵詞;
q:退出幫助文檔;
man命令幫助信息的結構以及意義:
NAME:命令的名稱;
SYNOPSIS:參數的大致使用方法;
DESCRIPTION:介紹說明;
EXAMPLES:演示(附帶簡單說明);
OVERVIEW:概述;
DEFAULTS:默認的功能;
OPTIONS:具體的可用選項(帶介紹);
ENVIRONMENT:環境變量;
FILES:用到的文件;
SEE ALSO:相關的資料;
HISTORY:維護歷史與聯繫方式;
系統工作命令:
echo:命令用於在終端輸出字符串或變量提取後的值;
格式:echo [字符串 | $變量];
示例:把指定字符串輸出到終端,使用$變量的方式提取變量SHELL的值;
date:命令用於顯示及設置系統的時間或日期;
格式:date [選項] [+指定的格式];
date命令的參數以及作用:
%t:Tab鍵;
%H:小時(0~23);
%I:小時(0~12);
%M:分鐘(00~59);
%S:秒(00~59);
%j:今年中的第幾天;
示例:顯示當前系統時間,使用格式查看當前系統時間,重置系統時間,查看今天是今年的第幾天;
reboot:重啟系統;
格式:reboot;
poweroff:關閉系統;
格式:poweroff;
wget:用於在終端中下載網絡文件;
格式:wget [參數] 下載地址;
wget常用參數以及作用:
-b:後臺下載模式;
-P:下載到指定目錄;
-p:下載頁面內所有資源,包括圖片,視頻等;
-t:最大嘗試次數;
-c:斷點續傳;
-r:遞歸下載;
示例:
下載Nginx文件
下載網頁,下載完成後自動保存到當前路徑下一個名為www.baidu.com的目錄中
ps:用於查看系統中的進程狀態;
格式:ps [參數];
ps命令的參數以及作用:
-a:顯示所有進程(包括其他用戶的進程);
-u:用戶以及其他詳細信息;
-x:顯示沒有控制終端的進程;
一般情況下需要配合管道符(grep)使用用來查看指定進程名的進程信息;
在Linux系統中的命令參數有長短格式之分,長格式與長格式之間不能合併,長格式與短格式之間也不能合併,
但短格式與短格式之間可以合併,合併後僅保留一個-(減號)即可;另外ps命令可以不加減號(-),因此也可直接寫成ps aux;
USER:進程的所有者;
PID:進程ID號;
%CPU:cpu佔用率;
%MEM:內存佔用率;
VSZ:虛擬內存使用量(單位KB);
RSS:佔用的固定內存量(單位KB);
TTY:所在終端;
-
STAT:進程狀態;
START:被啟動的時間;
TIME:時間使用cpu時間;
COMMAND:命令名稱與參數;
Linux系統中常見的進程狀態:運行,中斷,不可中斷,僵死與停止;
R(運行):進程正在運行或在運行隊列中等待;
S(中斷):進程處於休眠中,當某個條件形成後或接收到信號時,則脫離該狀態;
D(不可中斷):進程不響應系統異步信號,即便使用kill命令也不能將其中斷;
Z(僵死):進程已經終止,當進程描述符依然存在,直到父進程調用wait4()系統函數後將進程釋放;
T(停止):進程收到停止信號後停止運行;
top:用於動態地監視進程活動與系統負載信息;
格式:top;
下圖分別是:
系統時間,運行時間,登錄終端數,系統負載(三個數分別為1分鐘,5分鐘,15分鐘內的平均值,值越小意味著負載越低);
進程總數,運行中的進程數,睡眠中的進程數,停止的進程數,僵死的進程數;
用戶佔用資源百分比,系統內核佔用資源百分比,改變過優先級的進程資源百分比,空閒的資源百分比,例如:99.7 id表示有99.7%的cpu是空閒;
物理內存總量,內存空閒量,內存使用量,作為內核緩存的內存量;
虛擬內存總量,虛擬內存空閒量,虛擬內存使用量,已被提前加載的內存量;
pidof:用於查詢某個指定服務進程的PID值;
格式:pidof [參數] [服務名];
kill:用於終止某個指定PID的服務進程;
格式:kill [參數] [進程PID號];
killall:用於終止某個指定名稱的服務所對應的全部進程;
格式:killall [參數] [進程名稱];
系統狀態檢查命令:
ifconfig:用於獲取網卡配置與網絡狀態等信息;
格式:ifconfig [網絡設備] [參數];
主要查看網卡名稱,inet參數後面的IP地址,ether參數後面的網卡物理地址(MAC地址),以及RX,TX的接收數據包與發送數據包的個數及累計流量。
uname:用於查看系統內核與系統版本等信息;
格式:uname [-a];
在使用uname命令時,一般會固定搭配上-a參數來完整地查看當前系統的內核名稱,主機名,內核發行版本,節點名,系統時間,硬件名稱,硬件平臺,處理器類型已經操作系統名稱等信息;
uptime:用於查看系統的負載信息;
格式:uptime;
顯示當前系統時間,系統已運行時間,啟動終端數量以及平均負載值等信息(最近1分鐘,5分鐘,15分鐘)。
free:用於顯示當前系統中內存的使用量信息;
格式:free [-h];
-b:以Byte為單位顯示;-k:以KB為單位顯示;-m:以MB為單位顯示;-g:以GB為單位顯示;-s:以指定秒執行一次;
total:內存總量;used:已用量;free:空閒的或可以使用的內存總量;
shared:進程共享的內存量;buff:磁盤緩存的內存量;available:可以使用的內存總量;
who:用於查看當前登入主機的用戶終端信息;
格式:who [參數];
last:用於查看所有系統的登錄記錄;
格式:last [參數];
使用last命令可以查看本機的登記記錄;
history:用於顯示歷史執行過的命令;
格式:history [-c];
history命令能顯示當前用戶在本地計算機中執行過的最近1000條記錄。
可以自定義/etc/profile文件中的HISTSIZE變量值。
歷史命令被保存到用戶家目錄中的.bash_history文件中。
可以使用history -c清空歷史記錄;
sosreport:用於手機系統配置以及架構信息並輸出診斷文檔。
格式:sosreport;
簡單收集系統的運行狀態和服務配置信息。
工作目錄切換命令:
pwd:用於顯示用戶當前所處的工作目錄;
格式:pwd [選項];
cd:用於切換工作路徑;
格式:cd [目錄名稱];
cd-:返回到上一次所處的目錄;
cd~:切換到當前用戶的家目錄;
cd ..:進入上級目錄,點與cd有空格;
ls:用於顯示目錄中的文件信息;
格式:ls [選項] [文件];
ls -a:顯示包含隱藏文件;
ls -ld /data查看目錄屬性信息;
cat:用於查看純文本文件(內容較少的);
格式:cat [選項] [文件];
cat -n 文件名:顯示內存順便顯示行號;
more:用於查看純文本文件(內容較多的);
格式:more [選項] 文件;
head:用於查看純文本文件的前N行;
格式:head [選項] [文件];
head -n 20 文件名:查看文本前20行內容;
tail:用於查看純文本文件的後N行或持續刷新內容;
格式:tail [選項] [文件];
tr:用於替換文本文件的字符;
格式:tr [原始字符] [目標字符];
將英文全部替換為大寫;
wc:用於統計指定文本的行數,字數,字節數;
格式:wc [參數] 文本;
-l:只顯示行數;-w:只顯示單詞數;-c:只顯示字節數;
stat:用於查看文件的具體存儲信息和時間等信息;
格式:stat 文件名稱;
cut:用於按"列"提取文本字符;
格式:cut [參數] 文本;
提取passwd文件中的用戶名信息,即提取以冒號為間隔符號的第一列內容:
diff:用於比較多個文本文件的差異;
格式:diff [參數] 文件;
使用diff --brief顯示比較後的結果;
使用-c命令查看具體不同內容;
文件目錄管理命令:
touch:用於創建空白文件或設置文件的時間;
格式:touch [選項] [文件];
touch命令的參數以及作用:
-a:僅修改“讀取時間”;
-m:僅修改"修改時間";
-d:同時修改atime與mtime;
先使用ls命令查看一個文件的修改時間,然後修改這個文件後,最後通過touch命令把修改時間設置為其他時間;
mkdir:用於創建空白的目錄;
格式:mkdir [選項] 目錄;
創建txt目錄:
cp:用於複製文件或目錄;
格式:cp [選項] 源文件 目標文件;
cp命令的參數以及作用:
-p:保留原始文件的屬性;
-d:若對象”鏈接文件“,則保留改”鏈接文件“的屬性;
-r:遞歸持續複製(用於目錄);
-i:若目標文件存在則詢問是否覆蓋;
-a:相當於-pdr(p,d,r為上述參數);
將robots.txt複製到txt目錄中:
mv:用於剪切文件或者文件重命名;
格式:mv [選項] 源文件 [目標路徑 | 目標文件名];
rm:用於刪除文件或目錄;
格式:rm [選項] 文件;
dd:用於按照指定大小和個數的數據塊來複制文件或者轉換文件;
格式:dd [參數];
dd命令的參數以及作用:
if:輸入的文件名稱;
of:輸出的文件名稱;
bs:設置每個"塊"的大小;
count:設置要複製“塊”的個數;
它能夠讓用戶按照指定大小 和個數的數據塊來複制文件的內容。還可以在複製過程中轉換其中的數據;
file:用於查看文件的類型;
格式:file 文件名;
由於文本,目錄,設備等所有這些一切都稱為文件,我們不能單憑後綴知道具體的文件類型;
打包壓縮與搜索命令:
tar:用於對文件進行打包壓縮或壓縮;
格式:tar [選項] [文件];
tar命令的參數以及作用:
-c:創建壓縮文件;
-x:解壓壓縮文件;
-t:查看壓縮包內有哪些文件;
-z:用Gzip壓縮或解壓;
-j:用bzip2壓縮或解壓;
-v:顯示壓縮或解壓的過程;
-f:目標文件名;
-p:保留原始的權限與屬性;
-P:使用絕對路徑來壓縮;
-
-C:指定壓縮到的目錄;
grep:用於在文本中執行關鍵詞搜索,並顯示匹配的結果;
格式:grep [選項] [文件];
grep命令的參數與作用:
-b:將可執行文件當作文本文件來搜索;
-c:僅顯示找到的行數;
-i:忽略大小寫;
-n:顯示行號;
-v:反向選擇--僅列出沒有“關鍵詞”的行;
查找當前系統中不允許登錄系統的所有用戶信息:
find:用於按照指定條件來查找文件;
格式:find [查找路徑] 尋找條件 操作;
find命令的參數以及作用:
-name:匹配名稱;
-perm:匹配權限(mode為完全匹配,-mode為包含即可);
-user:匹配所有者;
-group:匹配所有組;
-mtim -n +n:匹配修改內容的時間(-n指n天內,+n指n天前);
-atime -n +n:匹配訪問文件的時間(-n指n天內,+n指n天前);
-ctime -n +n:匹配修改文件權限的時間(-n指n天內,+n指n天前);
-nouser:匹配無所有者的文件;
-nogroup:匹配無所有組的文件;
-newer f1 !f2:匹配比文件f1新但比f2舊的文件;
--type b/d/c/p/l/f:匹配文件類型(後面的字幕參數依次表示塊設備,目錄,字符設備,管道,鏈接文件,文本文件);
-size:匹配文件的大小(+500KB查找超過500KB文件,-500KB查找小於500KB的文件);
-prune:忽略某個目錄;
-exec ...... {} \:後面可跟用於進一步處理搜索結果的命令;
查找該目錄以host開頭的文件列表:
查到整個系統權限中包含 SUID權限(-4000)的所有文件;
在整個文件系統中查到所有歸屬root用戶的文件並複製到/root/findresults目錄:
以上內容以及後面分享的都來自《Linux就該這麼學》書中的學習筆記;
閱讀更多 JavaCodingfarmer 的文章