工程師工具包-Linux常用命令及常用操作-持續(xù)更新中

Linux系統(tǒng)命令相關(guān)

系統(tǒng)相關(guān)

date
  • date 查看系統(tǒng)時間
$date
2017年 09月 18日 星期一 18:01:06 CST
  • date -R查看系統(tǒng)時間腰吟,并且在時間后面加上時區(qū)的顯示
$date -R
Mon, 18 Sep 2017 17:57:30 +0800

磁盤操作相關(guān)

du

命令格式:
du [選項] [文件]
常用選項:
-h -以K棠枉,M徒爹,G為單位川无,提高信息的可讀性
-L -把軟鏈接的源文件大小也列出來钞钙。
常用命令:
du -h . //顯示當(dāng)前目錄下所有文件及目錄的大小敞掘,并以G,M等人類可理解的方式顯示

網(wǎng)絡(luò)相關(guān)

nslookup

nslookup是查詢dns域名和ip解析的命令
nslookup github.com //查詢github.com域名對應(yīng)的ip
nslookup 202.xx.xx.xx //查詢 202.xx.xx.xxIP對應(yīng)域名

ifconfig
ping
netstat
ls

ls -l : 以詳細(xì)列表的方式展示
ls -R : -R 分目錄展示
ls -lt : -t表示用文件和目錄的更改時間排序.
ls -ltr : 表示用文件和目錄的更改時間倒序排序.
ls -lS : 表示用文件和目錄的大小排序粘咖,注意是大寫的S
ls -lSr : 表示用文件和目錄的大小倒序排序
ls -lh : 顯示文件大小時,以M勉躺,G等更人性化的單位顯示癌瘾。-h這個參數(shù)很有用
ls -lk:顯示文件大小時,以K為單位顯示饵溅。

-r表示是倒序排序

ps
  • 查看系統(tǒng)中java線程
    ps -ef|grep java
top

top
top查看對應(yīng)pid的信息

  • 第一行:top - 01:00:01 up 1064 days, 4:29, 2 users, load average: 0.25, 0.39, 0.47妨退。
    • 01:00:01為當(dāng)前系統(tǒng)時間
    • 1064 days 表示當(dāng)前已經(jīng)運行1064天。
    • 2 users表示當(dāng)前有兩個用戶在線蜕企。
    • load average: 0.25, 0.39, 0.47 表示當(dāng)過去的1分碧注、5分鐘、15分鐘的系統(tǒng)負(fù)載糖赔。

其中l(wèi)oad的理解,load average表示系統(tǒng)處理的任務(wù)隊列數(shù)萍丐。
對于一個cpu核心的,load值大于0表示超負(fù)荷運行放典。
如果對于4核心,則

  • 第二行: Tasks: 114 total, 1 running, 113 sleeping, 0 stopped, 0 zombie
    顯示當(dāng)前系統(tǒng)的進程運行情況逝变,目前總共有114個進程,其中1個正在運行奋构,113個處于sleep狀態(tài)壳影。
  • 第三行: Cpu(s): 1.8%us, 1.8%sy, 0.2%ni, 68.7%id, 27.4%wa, 0.0%hi, 0.0%si, 0.0%st顯示的是cpu的信息。
    • id 為空閑時間時間占比
    • us 是指 用戶空間占用 cpu 的時間百分比
    • sy 是指 系統(tǒng)空間占用 cpu 時間的百分比
    • st 這個項只有主機是虛擬機的時候弥臼,才會存在,全稱為 steel 径缅,意味著虛擬機從宿主機獲取cpu時間片的耗時百分比,如果這個值過多掺栅,則需要查看宿主機的是否過多的分配虛擬機,引起資源不足.

在top命令界面里纳猪,按數(shù)字“1”氧卧,將顯示每個cpu的信息,也可以看到現(xiàn)在系統(tǒng)有幾顆cpu.

  • 第四和第五行為內(nèi)存信息
Mem:   3921732k total,  3483860k used,   437872k free,   102556k buffers
Swap:        0k total,        0k used,        0k free,  1808492k cached

第一行 Mem 顯示的是機器的真實內(nèi)存數(shù)
第二行 Swap 顯示的是交換內(nèi)存數(shù)

Mem中氏堤,total 顯示的是內(nèi)存的總量, 這里的單位是大K , 也就約是 4g 左右內(nèi)存總數(shù)沙绝,used 表示已使用內(nèi)存數(shù),free 是空閑內(nèi)存數(shù),buffer 是 buffer 內(nèi)存數(shù)闪檬,chache 為 cache 的內(nèi)存數(shù)星著。
Swap 中, total 粗悯,used 强饮,free 三個參數(shù)的表示內(nèi)存交換空間中的總量,已使用內(nèi)存與空閑內(nèi)存为黎。

接下來一個個來整理下, total 內(nèi)存總數(shù)行您, used+free = total 铭乾,前三個很好理解,無論是真實內(nèi)存還是交換空間內(nèi)存都一樣娃循,我們重點來看下 buffers 和 cache 這塊的內(nèi)存占用如何說明炕檩。

used 的內(nèi)存占了將近 3.3g ,并不意味著機器內(nèi)存全部被耗完捌斧,windows 下用多少申請多少內(nèi)存笛质,但 linux 下則不然,內(nèi)存總是不嫌多的捞蚂,linux 會將讀取過的數(shù)據(jù)都緩存起來妇押,以便下次讀取時減少讀取的時間。即使你的程序運行結(jié)束后姓迅,內(nèi)存也不會自動釋放敲霍。這就會導(dǎo)致你在 linux 系統(tǒng)中程序頻繁讀寫文件后,你會發(fā)現(xiàn)可用物理內(nèi)存變少丁存。

而 cache 與 buffer 就屬于linux系統(tǒng)的緩存內(nèi)存肩杈,這部分的緩存內(nèi)存在其他程序真實需要使用內(nèi)存的時候,則會釋放解寝。所以程序真實使用的內(nèi)存數(shù)應(yīng)該是 used - buffer - cache 扩然,就上圖而言,應(yīng)該(粗暴的以g計算)是 3.48g - 0.1g - 1.8g 大約是 2.58g 左右聋伦。

  • 最后一部分,列出系統(tǒng)中的所有進程
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 9813 root      20   0  989m  17m 2140 S  2.3  0.5   7927:13 /opt/xxxx
 1640 admin     20   0 3665m 1.0g  26m S  1.3 27.6   2:41.70 /opt/xx/java/bin/java
15159 admin     20   0 21204 1328 1000 R  0.7  0.0   0:00.03 top
15284 root      31  11  178m  20m  752 S  0.7  0.5   0:00.04 /usr/bin/xx

PID 是進程的 進程號
USER 是啟動進程的用戶

pr 和 ni 都是與進程優(yōu)先級相關(guān)的

ni 我們在之前已經(jīng)講過了夫偶,全稱是 nice ,pr 的全稱是 Priority

一個進程的整體運行優(yōu)先級是 pr 值與 ni 值 相加
優(yōu)先級 = ni + pr 觉增,pr 默認(rèn)值是20(默認(rèn)權(quán)重因子) 索守,ni 的范圍是-20至19,默認(rèn)是 0

nice 的值可以按照命令或進程進行修改抑片,使用 nice卵佛,renice 修改

優(yōu)先級數(shù)值越小,優(yōu)先級越高

VIRT 表示 Virtual Memory 虛擬內(nèi)存
RES 表示 Resident Memory 駐留內(nèi)存
SHR 表示 shared memory 共享內(nèi)存

free -m

free -m查看內(nèi)存信息

$ free -m
             total       used       free     shared    buffers     cached
Mem:          3829       3633        195          0         78       2085
-/+ buffers/cache:       1470       2359
Swap:            0          0          0

第一行 Mem 顯示的是機器的真實內(nèi)存數(shù)。

Mem中截汪,total 顯示的是內(nèi)存的總量, 這里的單位是大M , 也就約是 4g 左右內(nèi)存總數(shù)疾牲,used 表示已使用內(nèi)存數(shù),free 是空閑內(nèi)存數(shù)衙解,buffer 是 buffer 內(nèi)存數(shù)阳柔,chache 為 cache 的內(nèi)存數(shù)。

接下來一個個來整理下蚓峦, total 內(nèi)存總數(shù)舌剂, used+free = total ,前三個很好理解暑椰,無論是真實內(nèi)存還是交換空間內(nèi)存都一樣霍转,我們重點來看下 buffers 和 cache 這塊的內(nèi)存占用如何說明。

used 的內(nèi)存占了將近 3.3g 一汽,并不意味著機器內(nèi)存全部被耗完避消,windows 下用多少申請多少內(nèi)存,但 linux 下則不然召夹,內(nèi)存總是不嫌多的岩喷,linux 會將讀取過的數(shù)據(jù)都緩存起來,以便下次讀取時減少讀取的時間监憎。即使你的程序運行結(jié)束后纱意,內(nèi)存也不會自動釋放。這就會導(dǎo)致你在 linux 系統(tǒng)中程序頻繁讀寫文件后鲸阔,你會發(fā)現(xiàn)可用物理內(nèi)存變少妇穴。

而 cache 與 buffer 就屬于linux系統(tǒng)的緩存內(nèi)存,這部分的緩存內(nèi)存在其他程序真實需要使用內(nèi)存的時候隶债,則會釋放腾它。所以程序真實使用的內(nèi)存數(shù)應(yīng)該是 used - buffer - cache ,就上圖而言死讹,應(yīng)該(粗暴的以g計算)是 3.633g - 0.078g - 2.8g

上圖中的第二行,第一列表示 used - cache - buffer 瞒滴,第二列表示 free + cache + buffer

history

history查看用戶的歷史執(zhí)行命令。
也可以通過less ~/.bash_history命令查看赞警。

who/w

whow可以查看當(dāng)前系統(tǒng)在線的用戶妓忍。

$ who
admin    pts/1        2017-10-16 19:27 (30.20.80.139)
admin    pts/2        2017-10-16 19:32 (30.55.80.67)
$ w
 01:07:18 up 1064 days,  4:36,  2 users,  load average: 0.33, 0.44, 0.47
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
admin    pts/1    30.20.80.139     19:27    1:42m  0.04s  0.04s -bash
admin    pts/2    30.55.80.67      19:32    0.00s  0.12s  0.00s w
less

less 工具也是對文件或其它輸出進行分頁顯示的工具,應(yīng)該說是linux正統(tǒng)查看文件內(nèi)容的工具愧旦,功能極其強大.
less命令使用格式:
less [參數(shù)] 文件
示例:
less -i -N systemx.log
常用參數(shù):
-i 忽略搜索時的大小寫
-N 顯示每行的行號
常用命令
/ 字符串:向下搜索"字符串"的功能
? 字符串:向上搜索"字符串"的功能
n:重復(fù)前一個搜索(與 / 或 ? 有關(guān))
N:反向重復(fù)前一個搜索(與 / 或 ? 有關(guān))
G:向下移動到最后一行
g:向上移動到第一行
b:往上(往后)翻一頁
space(空格):往下(往前)翻一頁
q:退出

tail

tail -f *.log //動態(tài)顯示當(dāng)前目錄下所有以.log結(jié)尾的文件的內(nèi)容

grep

grep全稱是Global Regular Expression Print世剖。grep是一種強大的文本搜索工具,它能使用正則表達(dá)式搜索文本笤虫,并把匹配的行打印出來.
使用格式:grep [options] ‘pattern’ filename
例:
grep -in 'searchtext' filex.log --col or grep -in --color=auto 'searchtext' filex.log //不區(qū)分大小寫查詢旁瘫,輸出行號祖凫,并且把結(jié)果高亮。
grep -c -i 'searchtext' * // 統(tǒng)計seachtext字符串在當(dāng)前目錄文件中分別出現(xiàn)多少行
grep -in --col searchtext * //不區(qū)分大小查詢當(dāng)前目錄下所有的文件中出現(xiàn)searchtext出現(xiàn)的文件名酬凳、行號及所在行惠况,并且高亮匹配的字符串。
grep -li -r searchtext *//不區(qū)分大小寫的查詢當(dāng)前目錄(子目錄)的文件中包含searchtext的文件名
grep -B 5 --col searchtext * //查詢匹配的后5行(最新的)宁仔。
grep -A 5 --col searchtext * //查詢匹配的前5行(最老的)稠屠。

  • [options]主要參數(shù):
    -c:只輸出匹配行的計數(shù)。
    -i:不區(qū)分大 小寫(只適用于單字符)翎苫。
    -h:查詢多文件時不顯示文件名权埠。
    -l:查詢多文件時只輸出包含匹配字符的文件名。
    -n:顯示匹配行及 行號煎谍。
    -s:不顯示不存在或無匹配文本的錯誤信息攘蔽。
    -v:顯示不包含匹配文本的所有行。
sudo
find

find是文件查詢命令粱快。
最常用的格式:
find path -option
常用option:
-mtime n:根據(jù)文件內(nèi)容最后修改時間查詢,n表示以天的維度區(qū)間查詢叔扼;
-mmin n:根據(jù)文件內(nèi)容最后修改時間查詢事哭,n表示以分鐘的維度區(qū)間查詢;
-name pattern:按文件名匹配查詢瓜富;
find . -size [+|-]n[G|M..]:按文件大小查詢鳍咱,n的單位可選,常用可選值為GorMor k
find . -type [d|f]:按文件類型查詢与柑,參數(shù)常用可選值為dorf,d表示目標(biāo)谤辜,f表示文件。

示例
find . -name 'my*' //查詢當(dāng)前目錄下name是以my開頭的所有文件价捧。
find . -size +512k //查找當(dāng)前目錄下文件大小大于512k的文件
find . -size -512k //查找當(dāng)前目錄下文件大小小于512k的文件
find . -mmin -5 // 查找在當(dāng)前目錄下距離當(dāng)前時間丑念,5分鐘內(nèi)修改過的文件
find . -mtime -1 // 查詢距離當(dāng)前時間在24小時內(nèi)里修改過的文件
find . -mtime +1 // 查詢距離當(dāng)前時間在24小時之前修改過的文件
find . -type f // 查詢當(dāng)前目錄下的文件,不包括目錄结蟋。

注1:
一般find和-exec一起使用
find . -mtime -1 -exec ls -l {} \;
find . -mtime -1 -exec grep -i xxx {} \;

注2:
1.mtime,ctime,atime區(qū)別:1)atime的意思是access file time; 2)ctime表示是change file time,ctime是指修改文件狀態(tài)的時間脯倚,比如權(quán)限、分組等等嵌屎,并不是修改文件內(nèi)容;3)mtime表示修改文件內(nèi)容的時間推正;
2.-mtime n、-mtime +n宝惰、-mtime -n的異別:1)-mtime:是針對文件內(nèi)容修改時間進行查詢植榕,n,+n,-n三者查詢時間區(qū)間完全不同; 2)-mtime n查詢區(qū)間為,距離現(xiàn)在時間差在(n+1)*24hour ~ n*24hour 這個時間區(qū)間; 3) -mtime +n表示的查詢區(qū)間是-∞ ~ n*24hour,即距離當(dāng)前時間n24hour這個時間點之前的時間區(qū)間; 4)-mtime -n表示的查詢區(qū)間是n*24hour ~ ∞,即距離當(dāng)前時間n24hour這個時間點之后的時間區(qū)間
3.對于-mmin n,-mmin +n,-mmin -n的使用與-mtime n尼夺、-mtime +n尊残、-mtime -n一樣炒瘸,區(qū)別是mmin搜索的時間維度是分鐘。

stat

stat filename查看文件的相關(guān)信息夜郁。包括修改文件狀態(tài)時間什燕,最后一次進入時間,修改內(nèi)容時間

exec

exec命令用于調(diào)用并執(zhí)行指令的命令竞端。exec命令通常用在shell腳本程序中屎即,可以調(diào)用其他的命令。
自己通常的用法是和find grep命令一起使用事富。
比如有這么一個場景技俐,在/home/logs目錄有很多日志文件,現(xiàn)在要查詢一個錯誤日志统台,日志發(fā)生在昨天雕擂,但是具體不清楚在哪個文件里。
如果此時使用grep 'errorcodex' *在當(dāng)前目錄下查詢所有文件的話將會很慢贱勃。
此時可使用如下命令
find . -mtime -1 -exec grep 'errorcodex' {}\;//此命令的作用是先用find查詢出最近1天修改的文件井赌,然后用exec調(diào)用grep命令在find查詢出來的文件列表里查詢(而不是查詢?nèi)康奈募?br> 注意:
1.這里的-exec后面的{} \; "空格" + “一對括號”+ \ + '空格'+ ;
2.花括號前面一定要有一個空格
3.最后一定要以分號結(jié)尾

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市贵扰,隨后出現(xiàn)的幾起案子仇穗,更是在濱河造成了極大的恐慌,老刑警劉巖戚绕,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纹坐,死亡現(xiàn)場離奇詭異,居然都是意外死亡舞丛,警方通過查閱死者的電腦和手機耘子,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來球切,“玉大人谷誓,你說我怎么就攤上這事《执眨” “怎么了片林?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長怀骤。 經(jīng)常有香客問我费封,道長,這世上最難降的妖魔是什么蒋伦? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任弓摘,我火速辦了婚禮,結(jié)果婚禮上痕届,老公的妹妹穿的比我還像新娘韧献。我一直安慰自己末患,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布锤窑。 她就那樣靜靜地躺著璧针,像睡著了一般。 火紅的嫁衣襯著肌膚如雪渊啰。 梳的紋絲不亂的頭發(fā)上探橱,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音绘证,去河邊找鬼隧膏。 笑死,一個胖子當(dāng)著我的面吹牛嚷那,可吹牛的內(nèi)容都是我干的胞枕。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼魏宽,長吁一口氣:“原來是場噩夢啊……” “哼腐泻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起队询,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤派桩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后娘摔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窄坦,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡唤反,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年凳寺,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片彤侍。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡肠缨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出盏阶,到底是詐尸還是另有隱情晒奕,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布名斟,位于F島的核電站脑慧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏砰盐。R本人自食惡果不足惜闷袒,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望岩梳。 院中可真熱鬧囊骤,春花似錦晃择、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至滑蚯,卻和暖如春浪蹂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背膘魄。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工乌逐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人创葡。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓浙踢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親灿渴。 傳聞我的和親對象是個殘疾皇子洛波,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容