Linux_經常使用命令簡單介紹(netstat,awk,top,tail,head,less,more,cat,nl)

1.netstathtml

netstat -tnl | grep 443 (查看443端口是否被佔用)

root用戶,用netstat -pnl | grep 443 (還可顯示出佔用本機443端口的進程PID)。

-a (all)顯示全部選項,默認不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的所有轉化成數字。直接使用IP地址,而不經過域名服務器。
-l 僅列出有在 Listen (監聽) 的服務狀態
-p 顯示創建相關連接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令。

2. awklinux

awk '{pattern + action}' {filenames}
其中 pattern 表示 AWK 在數據中查找的內容,而 action 是在找到匹配內容時所執行的一系列命令。花括號({})不須要在程序中始終出現,但它們用於根據特定的模式對一系列指令進行分組。 pattern就是要表示的正則表達式,用斜槓括起來。


awk語言的最基本功能是在文件或者字符串中基於指定規則瀏覽和抽取信息,awk抽取信息後,才能進行其餘文本操做。完整的awk腳本一般用來格式化文本文件中的信息。一般,awk是以文件的一行爲處理單位的。awk每接收文件的一行,而後執行相應的命令,來處理文本。以空格爲默認分隔符將每行切片,切開的部分再進行各類分析處理。


1).命令行方式
awk [-F  field-separator]  'commands'  input-file(s)
其中,commands 是真正awk命令,[-F域分隔符]是可選的。 input-file(s) 是待處理的文件。
在awk中,文件的每一行中,由域分隔符分開的每一項稱爲一個域。一般,在不指名-F域分隔符的狀況下,默認的域分隔符是空格。

2).shell腳本方式
將全部的awk命令插入一個文件,並使awk程序可執行,而後awk命令解釋器做爲腳本的首行,以便經過鍵入腳本名稱來調用。
至關於shell腳本首行的:#!/bin/sh
能夠換成:#!/bin/awk

3).將全部的awk命令插入一個單獨文件,而後調用:
awk -f awk-script-file input-file(s)
其中,-f選項加載awk-script-file中的awk腳本,input-file(s)跟上面的是同樣的。

經常使用命令:
以「:」分割,打印第一列內容
cat /etc/passwd |awk  -F ':'  '{print $1}'
cat /etc/passwd |awk  -F ':'  '{print $1"\t"$7}'
查找以」root」開頭的內容
awk -F: '/^root/' /etc/passwd

搜索/etc/passwd有root關鍵字的全部行,並顯示對應的shell
awk -F: '/root/{print $7}' /etc/passwd

內容引用於:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html

3.top正則表達式

top命令是Linux下經常使用的性能分析工具,可以實時顯示系統中各個進程的資源佔用情況。

前五行是當前系統狀況總體的統計信息區。下面咱們看每一行信息的具體意義。

第一行,任務隊列信息,同 uptime 命令的執行結果,具體參數說明狀況以下:
14:06:23 — 當前系統時間
up 70 days, 16:44 — 系統已經運行了70天16小時44分鐘(在這期間系統沒有重啓過的吆!)
users — 當前有2個用戶登陸系統
load average: 1.15, 1.42, 1.44 — load average後面的三個數分別是1分鐘、5分鐘、15分鐘的負載狀況。
load average數據是每隔5秒鐘檢查一次活躍的進程數,而後按特定算法計算出的數值。若是這個數除以邏輯CPU的數量,結果高於5的時候就代表系統在超負荷運轉了。

第二行,Tasks — 任務(進程),具體信息說明以下:
系統如今共有206個進程,其中處於運行中的有1個,205個在休眠(sleep),stoped狀態的有0個,zombie狀態(殭屍)的有0個。

第三行,cpu狀態信息,具體屬性說明以下:
5.9%us — 用戶空間佔用CPU的百分比。
3.4% sy — 內核空間佔用CPU的百分比。
0.0% ni — 改變過優先級的進程佔用CPU的百分比
90.4% id — 空閒CPU百分比
0.0% wa — IO等待佔用CPU的百分比
0.0% hi — 硬中斷(Hardware IRQ)佔用CPU的百分比
0.2% si — 軟中斷(Software Interrupts)佔用CPU的百分比
備註:在這裏CPU的使用比率和windows概念不一樣,須要理解linux系統用戶空間和內核空間的相關知識!

第四行,內存狀態,具體信息以下:
32949016k total — 物理內存總量(32GB)
14411180k used — 使用中的內存總量(14GB)
18537836k free — 空閒內存總量(18GB)
169884k buffers — 緩存的內存量 (169M)

第五行,swap交換分區信息,具體信息說明以下:
32764556k total — 交換區總量(32GB)
0k used — 使用的交換區總量(0K)
32764556k free — 空閒交換區總量(32GB)
3612636k cached — 緩衝的交換區總量(3.6GB)
備註:
第四行中使用中的內存總量(used)指的是如今系統內核控制的內存數,空閒內存總量(free)是內核還未歸入其管控範圍的數量。歸入內核管理的內存不見得都在使用中,還包括過去使用過的如今能夠被重複利用的內存,內核並不把這些可被從新使用的內存交還到free中去,所以在linux上free內存會愈來愈少,但不用爲此擔憂。
若是出於習慣去計算可用內存數,這裏有個近似的計算公式:第四行的free + 第四行的buffers + 第五行的cached,按這個公式此臺服務器的可用內存:18537836k +169884k +3612636k = 22GB左右。
對於內存監控,在top裏咱們要時刻監控第五行swap交換分區的used,若是這個數值在不斷的變化,說明內核在不斷進行內存和swap的數據交換,這是真正的內存不夠用了。

第六行,空行。

第七行如下:各進程(任務)的狀態監控,項目列信息說明以下:
PID — 進程id
USER — 進程全部者
PR — 進程優先級
NI — nice值。負值表示高優先級,正值表示低優先級
VIRT — 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES
RES — 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA
SHR — 共享內存大小,單位kb
S — 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/中止 Z=殭屍進程
%CPU — 上次更新到如今的CPU時間佔用百分比
%MEM — 進程使用的物理內存百分比
TIME+ — 進程使用的CPU時間總計,單位1/100秒
COMMAND — 進程名稱(命令名/命令行)

經常使用操做:
top   //每隔5秒顯式全部進程的資源佔用狀況
top -d 2  //每隔2秒顯式全部進程的資源佔用狀況
top -c  //每隔5秒顯式進程的資源佔用狀況,並顯示進程的命令行參數(默認只有進程名)
top -p 12345 -p 6789//每隔5秒顯示pid是12345和pid是6789的兩個進程的資源佔用狀況
top -d 2 -c -p 123456 //每隔2秒顯示pid是12345的進程的資源使用狀況,並顯式該進程啓動的命令行參數

該內容轉自:http://www.cnblogs.com/peida/archive/2012/12/24/2831353.html
            http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316399.html

4.查看文本命令:算法

tail:shell

命令格式;
tail[必要參數][選擇參數][文件]   

命令功能:
用於顯示指定文件末尾內容,不指定文件時,做爲輸入信息進行處理。經常使用查看日誌文件。

命令參數:
-f 循環讀取
-q 不顯示處理信息
-v 顯示詳細的處理信息
-c<數目> 顯示的字節數
-n<行數> 顯示行數
--pid=PID 與-f合用,表示在進程ID,PID死掉以後結束.
-q, --quiet, --silent 從不輸出給出文件名的首部
-s, --sleep-interval=S 與-f合用,表示在每次反覆的間隔休眠S秒

舉例:
tail -10 log4j.log  顯示最後十行內容
tail -n +5 從第五行開始顯示內容
tail -f log4j.log  隨着文件變化,顯示後面的內容

head:windows

命令格式:
head [參數]... [文件]...  

命令功能:
head 用來顯示檔案的開頭至標準輸出中,默認head命令打印其相應文件的開頭10行。

命令參數:
-q 隱藏文件名
-v 顯示文件名
-c<字節> 顯示字節數
-n<行數> 顯示的行數

舉例:
head -n 5 log4j.log  顯示文件的前n行命令
head -n -6 log4j.log  輸出文件除了最後n行的所有內容

less:緩存

less工具也是對文件或其它輸出進行分頁顯示的工具。less 在查看以前不會加載整個文件。空格鍵向下翻頁。

命令參數:
-b <緩衝區大小> 設置緩衝區的大小
-e  當文件顯示結束後,自動離開
-f  強迫打開特殊文件,例如外圍設備代號、目錄和二進制文件
-g  只標誌最後搜索的關鍵詞
-i  忽略搜索時的大小寫
-m  顯示相似more命令的百分比
-N  顯示每行的行號
-o <文件名> 將less 輸出的內容在指定文件中保存起來
-Q  不使用警告音
-s  顯示連續空行爲一行
-S  行過長時間將超出部分捨棄
-x <數字> 將「tab」鍵顯示爲規定的數字空格
/字符串:向下搜索「字符串」的功能
?字符串:向上搜索「字符串」的功能
n:重複前一個搜索(與 / 或 ? 有關)
N:反向重複前一個搜索(與 / 或 ? 有關)
b  向後翻一頁
d  向後翻半頁
h  顯示幫助界面
Q  退出less 命令
u  向前滾動半頁
y  向前滾動一行

[pagedown]: 屏幕內容向下翻動一頁,不是文件翻頁
[pageup]:   屏幕內容向上翻動一頁 ,不是文件翻頁

G - 移動到最後一行
g - 移動到第一行

more:bash

more命令,功能相似 cat ,cat命令是整個文件的內容從上到下顯示在屏幕上。 more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,並且還有搜尋字串的功能 。more命令從前向後讀取文件,所以在啓動時就加載整個文件。

命令參數:
+n      從笫n行開始顯示
-n       定義屏幕大小爲n行
+/pattern 在每一個檔案顯示前搜尋該字串(pattern),而後從該字串前兩行以後開始顯示  
-c       從頂部清屏,而後顯示
-d       提示「Press space to continue,’q’ to quit(按空格鍵繼續,按q鍵退出)」,禁用響鈴功能
-l        忽略Ctrl+l(換頁)字符
-p       經過清除窗口而不是滾屏來對文件進行換頁,與-c選項類似
-s       把連續的多個空行顯示爲一行
-u       把文件內容中的下畫線去掉

cat:服務器

cat命令的用途是鏈接文件或標準輸入並打印。這個命令經常使用來顯示文件內容,或者將幾個文件鏈接起來顯示,或者從標準輸入讀取內容並顯示,它常與重定向符號配合使用。
命令功能:

cat主要有三大功能:
1.一次顯示整個文件:cat filename
2.從鍵盤建立一個文件:cat > filename 只能建立新文件,不能編輯已有文件.
3.將幾個文件合併爲一個文件:cat file1 file2 > file

命令功能:

cat主要有三大功能:
1.一次顯示整個文件:cat filename
2.從鍵盤建立一個文件:cat > filename 只能建立新文件,不能編輯已有文件.
3.將幾個文件合併爲一個文件:cat file1 file2 > file

nl:less

nl命令在linux系統中用來計算文件中行號。nl 能夠將輸出的文件內容自動的加上行號!其默認的結果與 cat -n 有點不太同樣, nl 能夠將行號作比較多的顯示設計,包括位數與是否自動補齊 0 等等的功能。  

命令參數:
-b  :指定行號指定的方式,主要有兩種:
-b a :表示不管是否爲空行,也一樣列出行號(相似 cat -n);
-b t :若是有空行,空的那一行不要列出行號(默認值);
-n  :列出行號表示的方法,主要有三種:
-n ln :行號在螢幕的最左方顯示;
-n rn :行號在本身欄位的最右方顯示,且不加 0 ;
-n rz :行號在本身欄位的最右方顯示,且加 0 ;
-w  :行號欄位的佔用的位數。
-p 在邏輯定界符處不從新開始計算。
代碼轉載於:http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html
相關文章
相關標籤/搜索