本篇內(nèi)容介紹了“應(yīng)該了解決的Linux知識(shí)有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)建站專注于企業(yè)營(yíng)銷型網(wǎng)站、網(wǎng)站重做改版、海興網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、商城開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為海興等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
幾種比較典型的Linux系統(tǒng)
首先對(duì)目前的Linux版本有個(gè)大體的印象,大體分Desktop版和Server版,已經(jīng)是百花齊放。
Ubuntu 最常見(jiàn)的Linux個(gè)人發(fā)行版,一位有情懷的南非富豪,有了錢(qián)你也可以這么做
CentOS 最常用Linux服務(wù)器發(fā)新版,RHEL的開(kāi)放版本,因版權(quán)而生的輪子
Arch 滾動(dòng)升級(jí),海量二進(jìn)制包,社區(qū)活躍,個(gè)人最愛(ài)
Gentoo 安裝軟件需要從源碼開(kāi)始編譯,穩(wěn)定,但用起來(lái)會(huì)很痛
LFS 從零構(gòu)建Linux,跟著做一遍,Linux每根毛都看的清清楚楚
Kali 專做滲透用的,代表了發(fā)行版的一個(gè)發(fā)展路徑,就是領(lǐng)域
首先要了解的概念
KISS Keep it Simple and Stupid,據(jù)說(shuō)是哲學(xué)
一切皆文件 通常是文件的東西叫文件,進(jìn)程、磁盤(pán)等也被抽象成了文件,比較離譜的管道、設(shè)備、socket等,也是文件。這是Linux最重要的組織方式。
管道 | 分隔,前面命令的輸出作為后面命令的輸入,可以串聯(lián)多個(gè)
重定向< 將文件做為命令的輸入
> 將命令的輸出輸出到文件
>> 將命令的輸出追加到文件
SHELL 首先確認(rèn)你的shell,一般最常用的是bash,也有不少用csh,zsh等的,通過(guò)echo $SHELL可以看到當(dāng)前用戶的shell,對(duì)應(yīng)的配置文件也要相應(yīng)改變。比如.zshrc,.bashrc
四大元素
進(jìn)入linux,我們首先關(guān)注的是四個(gè)元素:內(nèi)存,cpu,存儲(chǔ),網(wǎng)絡(luò)。Linux提供了足夠的命令,讓你窺探它的每個(gè)角落。接下來(lái)的命令都是些最常用的,不管精通不精通,想不起來(lái)要打屁股。
CPU
使用top查看cpu的load,使用shift+p按照cpu排序。需要了解wa,us等都是什么意思
使用uptime查看系統(tǒng)啟動(dòng)時(shí)間和load,load是什么意思呢?什么算是系統(tǒng)過(guò)載?這是個(gè)高頻問(wèn)題,別怪我沒(méi)告訴你
ps命令勃大莖深,除了查進(jìn)程號(hào)外,你還需要知道R、S、D、T、Z、<、N狀態(tài)位的含義
top和ps很多功能是相通的,比如watch "ps -mo %cpu,%mem,pid,ppid,command ax" 相當(dāng)于top的進(jìn)程列表;top -n 1 -bc 和ps -ef的結(jié)果相似。
有生就有死,可以用kill殺死進(jìn)程。對(duì)java來(lái)說(shuō),需要關(guān)注kill -9、kill -15、kill -3的含義,kill的信號(hào)太多了,可以用kill -l查看,搞懂大多數(shù)信號(hào)大有裨益。
如果暫時(shí)不想死,可以通過(guò)&符號(hào)在后臺(tái)執(zhí)行,比如tail -f a.log &。jobs命令可以查看當(dāng)前后臺(tái)的列表,想恢復(fù)的話,使用fg回到幕前。這都是終端作業(yè),當(dāng)你把term關(guān)了你的后臺(tái)命令也會(huì)跟著消失,所以想讓你的程序繼續(xù)執(zhí)行的話,需要nohup命令,此命令需要牢記
mpstat 顯示了系統(tǒng)中 CPU 的各種統(tǒng)計(jì)信
了解cpu親和性
內(nèi)存
free -m 命令,了解free、used、cached、swap各項(xiàng)的含義
cat /proc/meminfo 查看更詳細(xì)的內(nèi)存信息 細(xì)心的同學(xué)可能注意到,CPU和內(nèi)存的信息,通過(guò)top等不同的命令顯示的數(shù)值是一樣的。
slabtop 用來(lái)顯示內(nèi)核緩存占用情況,比如遍歷大量文件造成緩存目錄項(xiàng)。曾在生產(chǎn)環(huán)境中遇到因執(zhí)行find /造成dentry_cache耗盡服務(wù)器內(nèi)存。
vmstat 命令是我最喜歡也最常用的命令之一,可以以最快的速度了解系統(tǒng)的運(yùn)行狀況。每個(gè)參數(shù)的意義都要搞懂。
swapon、swapoff 開(kāi)啟,關(guān)閉交換空間
** sar** 又一統(tǒng)計(jì)類輪子,一般用作采樣工具
存儲(chǔ)
使用df -h查看系統(tǒng)磁盤(pán)使用概況
lsblk 列出塊設(shè)備信息
du 查看目錄或者文件大小
網(wǎng)絡(luò)
rsync 強(qiáng)大的同步工具,可以增量哦
netstat 查看Linux中網(wǎng)絡(luò)系統(tǒng)狀態(tài)信息,各種
ss 它能夠顯示更多更詳細(xì)的有關(guān)TCP和連接狀態(tài)的信息,而且比netstat更快速更高效。
curl、wget 模擬請(qǐng)求工具、下載工具。如wget -r http://site 將下載整個(gè)站點(diǎn)
ab Apache服務(wù)器的性能測(cè)試工具
ifstat 統(tǒng)計(jì)網(wǎng)絡(luò)接口流量狀態(tài)
nslookup 查詢域名DNS信息的工具,在內(nèi)網(wǎng)根據(jù)ip查詢域名是爽爆了
nc 網(wǎng)絡(luò)工具中的瑞士軍刀,不會(huì)用真是太可惜了
arp 可以顯示和修改IP到MAC轉(zhuǎn)換表
traceroute 顯示數(shù)據(jù)包到主機(jī)間的路徑,俗稱幾跳,跳的越少越快
tcpdump 不多說(shuō)了,去下載wireshark了
wall 向當(dāng)前所有打開(kāi)的終端上輸出信息。使用who命令發(fā)現(xiàn)女神正在終端上,可以求愛(ài)
網(wǎng)絡(luò)方面推薦安裝體驗(yàn)一下kaliLinux,上面的工具會(huì)讓你high到極點(diǎn)。
如何組織起來(lái)
linux的命令很有意思,除了各種stat來(lái)監(jiān)控狀態(tài),也有各種trace來(lái)進(jìn)行深入的跟蹤,也有各種top來(lái)統(tǒng)計(jì)資源消耗者,也有各種ls來(lái)查看系統(tǒng)硬件如lsblk、lsusb、lscpi?;旧细愕母杏X(jué)走,就能找到相應(yīng)的工具,因?yàn)榧s定是系統(tǒng)中很強(qiáng)大的導(dǎo)向。
Linux有個(gè)比較另類的目錄/proc,承載了每個(gè)命令的蹂躪。像sysctl命令,就是修改的/proc/sys目錄下的映射項(xiàng)。不信看看find /proc/sys -type f | wc -l和sysctl -a| wc -l的結(jié)果是不是很像?
/proc文件系統(tǒng)是一個(gè)偽文件系統(tǒng),它只存在內(nèi)存當(dāng)中,而不占用外存空間。只不過(guò)以文件系統(tǒng)的方式為訪問(wèn)系統(tǒng)內(nèi)核數(shù)據(jù)的操作提供接口。系統(tǒng)的所有狀態(tài)都逃不過(guò)它的火眼金睛。例如:
cat /proc/vmstat 看一下,是不是和vmstat命令的輸出很像?
cat /proc/meminfo 是不是最全的內(nèi)存信息
cat /proc/slabinfo 這不就是slabtop的信息么
cat /proc/devices 已經(jīng)加載對(duì)設(shè)備們
cat /proc/loadavg load avg原來(lái)就躺在這里啊
cat /proc/stat 所有的CPU活動(dòng)信息
ls /proc/$pid/fd 靜靜地躺著lsof的結(jié)果
一般排查問(wèn)題的方法
一般排查問(wèn)題也是圍繞著內(nèi)存cpu等幾個(gè)元素去排查。下圖是一張大體的排查故障或者性能問(wèn)題的過(guò)程,看圖,不多說(shuō)。
應(yīng)用場(chǎng)景舉例
下面舉例從具體應(yīng)用場(chǎng)景來(lái)說(shuō)明各種命令的組合應(yīng)用,此類場(chǎng)景數(shù)不勝數(shù),需要個(gè)人積累。但強(qiáng)烈建議將sed和awk練的熟練一些。
怎么查看某個(gè)Java進(jìn)程里面占用CPU最高的一個(gè)線程具體信息?
獲取進(jìn)程中占用CPU最高的線程,計(jì)為n。
使用top top -H -p pid,肉眼觀察之
使用ps ps -mo spid,lwp,stime,time,%cpu -p pid
將線程號(hào)轉(zhuǎn)化成十六進(jìn)制printf 0x%x n
使用jstack找到相應(yīng)進(jìn)程,打印線程后的100行信息 jstack -l pid| grep spid -A 100
統(tǒng)計(jì)每種網(wǎng)絡(luò)狀態(tài)的數(shù)量
netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n -k 1 -r 首先使用netstat查看列表,使用'awk'截取第六列,使用uniq進(jìn)行統(tǒng)計(jì),并對(duì)統(tǒng)計(jì)結(jié)果排序。當(dāng)然,也可以這樣。 netstat -ant | awk '{arr[$6]++}END{for(i in arr){print arr[i]" "i }}' | sort -n -k 1 -r 這和“分析apache日志,給出當(dāng)日訪問(wèn)ip的降序列表”是一樣的問(wèn)題。
怎么查看哪個(gè)進(jìn)程在用swap
首先要了解/proc/$pid/smaps里有我們所需要的各種信息,其中Swap字段即是我們所需要的。只要循環(huán)遍歷一下即可。
for i in `cd /proc;ls |grep "^[0-9]"|awk ' $0 >100'` ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps ;done |sort -k2nr 復(fù)制代碼
“應(yīng)該了解決的Linux知識(shí)有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
網(wǎng)站名稱:應(yīng)該了解決的Linux知識(shí)有哪些
網(wǎng)頁(yè)鏈接:http://www.rwnh.cn/article26/jijijg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、響應(yīng)式網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化、營(yíng)銷型網(wǎng)站建設(shè)、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)