Linux 面試常考題總結(jié)大全【建議收藏】

點(diǎn)擊上方藍(lán)字關(guān)注我們
系統(tǒng)
#?uname?-a???#?查看內(nèi)核/操作系統(tǒng)/CPU信息
#?head?-n?1?/etc/issue?#?查看操作系統(tǒng)版本?
#?cat?/proc/cpuinfo?#?查看CPU信息
#?hostname?#?查看計(jì)算機(jī)名
#?free?-m??#?查看內(nèi)存使用量和交換區(qū)使用量
資源
#?df?-h????#?查看各分區(qū)使用情況
#?du?-sh?<目錄名>?#?查看指定目錄的大小
#?grep?MemTotal?/proc/meminfo?#?查看內(nèi)存總量?
#?grep?MemFree?/proc/meminfo?#?查看空閑內(nèi)存量?
#?uptime?#?查看系統(tǒng)運(yùn)行時間、用戶數(shù)、負(fù)載?
#?cat?/proc/loadavg?#?查看系統(tǒng)負(fù)載
網(wǎng)絡(luò)
#?ifconfig?#?查看所有網(wǎng)絡(luò)接口的屬性
#?iptables?-L??#?查看防火墻設(shè)置
#?route?-n??#?查看路由表
#?netstat?-lntp??#?查看所有監(jiān)聽端口
#?netstat?-antp??#?查看所有已經(jīng)建立的連接
#?netstat?-s???#?查看網(wǎng)絡(luò)統(tǒng)計(jì)信息
用戶
#?w??#?查看活動用戶
#?id?<用戶名>??#?查看指定用戶信息
#?last??#?查看用戶登錄日志
#?cut?-d:?-f1?/etc/passwd??#?查看系統(tǒng)所有用戶?
#?cut?-d:?-f1?/etc/group???#?查看系統(tǒng)所有組
#?crontab?-l????#?查看當(dāng)前用戶的計(jì)劃任務(wù)
進(jìn)程
#?ps?-ef?#?查看所有進(jìn)程
#?ps?-ef?#?查看所有進(jìn)程?
#?top?#?實(shí)時顯示進(jìn)程狀態(tài)
來源:公眾號【碼農(nóng)編程進(jìn)階筆記】
stat命令一般用于查看文件的狀態(tài)信息。stat命令的輸出信息比ls命令的輸出信息要更詳 細(xì)。
wc命令一般用于統(tǒng)計(jì)文件的信息,比如文本的行數(shù),文件所占的字節(jié)數(shù)。?
du命令一般用于統(tǒng)計(jì)文件和目錄所占用的空間大小。
ls 命令一般用于查看文件和目錄的信息,包括文件和目錄權(quán)限、擁有者、所對應(yīng)的組、 文件大小、修改時間、文件對應(yīng)的路徑等等信息。?
df命令用于顯示包含每個文件名參數(shù)的文件系統(tǒng)上可用的磁盤空間量,默認(rèn)磁盤空間以 1K塊為最小單位。
netstat -ntlp | grep 端口號 查看端口被占用情況?
lsof filename 查看文件被進(jìn)程占用情況
3.Find grep 命令區(qū)別
grep命令是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹配的行打 印出來。
Find 從指定的起始目錄開始,遞歸地搜索其各個子目錄,查找滿足尋找條件的文件并對
之采取相關(guān)的操作
簡單是:grep是查找匹配條件的行,find是搜索匹配條件的文件
4.Awk 內(nèi)置變量
|
變量
|
用法
|
|
$0
|
當(dāng)前記錄(這個變量中存放著整個行的內(nèi)容)
|
|
$1~$n
|
當(dāng)前記錄的第n個字段,字段間由FS分隔
|
|
FS
|
輸入字段分隔符 默認(rèn)是空格或\t
|
|
NF
|
當(dāng)前記錄中的字段個數(shù),就是有多少列
|
|
NR
|
已經(jīng)讀出的記錄數(shù),就是行號,從1開始,如果有多個文件話,這個值也是不斷累加 中。
|
|
FNR
|
當(dāng)前記錄數(shù),與NR不同的是,這個值會是各個文件自己的行號
|
|
RS
|
輸入的記錄分隔符, 默認(rèn)為換行符
|
|
OFS
|
輸出字段分隔符, 默認(rèn)也是空格
|
|
ORS
|
輸出的記錄分隔符,默認(rèn)為換行符
|
|
FILENAME
|
當(dāng)前輸入文件的名字
|
#?打印每一行的第二和第三個字段?
awk?'{print?$2,?$3}'?file?
#?統(tǒng)計(jì)文件的行數(shù)
awk?'?END?{print?NR}'?file?
#?對?awk?處理的行做過濾
awk?'NR?5'??#行號小于5
awk?'NR==1,NR==4?{print}'?file??#行號等于1和4的打印出來
awk?'/linux/'??#包含linux文本的行(可以用正則表達(dá)式來指定,超級強(qiáng)大)?awk?'!/linux/'??#不包含linux文本的行
#?使用?-F?來設(shè)置定界符(默認(rèn)為空格)
awk?-F:?'{print?$NF}'?/etc/passwd
#?awk?實(shí)現(xiàn)head?命令
awk?'NR<=10{print}'?filename
#?實(shí)現(xiàn)tail命令
awk?'{buffer[NR%10]?=?$0;}?END{for(i=0;i<11;i++){print?buffer[i?%10]}?}?'?filename
?#?查詢訪問最頻繁的100個請求,主要是各種參數(shù)都包含了
?grep?-v?".php"?access.log?|?awk?'{print?$7}'?|?sort?|uniq?-c?|sort?-rn?|?head?-n?100
#?查詢訪問?100?次以上的?ip
awk?'{print?$1}'?access.log?|?sort?-n?|uniq?-c?|awk?'{if($1?>100)?print?$0}'|sort?-rn
#?查詢指定?ip?訪問最多的?100?個頁面
grep?'112.97.250.255'?access.log?|awk?'{print?$7}'|sort?|uniq?-c?|sort?-rn?|head?-n?100
#?查詢最近?1000?條請求訪問最多的地址
tail?-1000?access.log?|awk?'{print?$7}'|sort|uniq?-c|sort?-?nr|less
#?按每秒統(tǒng)計(jì)請求數(shù),顯示top?100?的時間點(diǎn)?cut是截取?14-21?位,分鐘為?14-18?小時為?14-15
?awk?'{print?$4}'?access.log?|cut?-c?14-21|sort|uniq?-c|sort?-?nr|head?-n?100
來源:公眾號【碼農(nóng)編程進(jìn)階筆記】
Ps?-rf?|?grep?"php-fpm"?top?|?grep?"php-fpm"
7.?Which 和 whereis 區(qū)別
Which 是用來查找系統(tǒng)PATH目錄下的可執(zhí)行文件。說白了就是查找那些我們已經(jīng)安裝好
的可以直接執(zhí)行的命令,which 是基于 path 目錄查找的。
Whereis這個命令可以用來查找二進(jìn)制(命令)、源文件、man文件。Whereis 是基于
索引數(shù)據(jù)庫的,locate也是基于數(shù)據(jù)庫的,find 是基于硬盤文件的
