天天看點

常用的Linux指令

學習連結:

linux指令學習1

linux指令學習2

常用指令:

history

history指令就是曆史記錄. 它顯示了在終端中所執行過的所有指令的曆史.

參考連結:

1.對Linux新手非常有用的 20個指令

grep

管道, 過濾, 作為linux中最為常用的三大文本(awk, sed, grep)處理工具之一, grep指令的常用格式為:

grep [選項] "模式" [檔案]

, grep家族總共有三個:

grep

,

egrep

fgrep

, 一般常用grep. 擴充選項如下: 

-E : 開啟擴充Extend的正規表達式. 
-i : 忽略大小寫ignore case. 
-n : 顯示行号
-w : 被比對的文本隻能是單詞, 而不能是單詞中的某一部分, 如文本中有liker, 而我搜尋的隻是like, 就可以使用-w選項來避免比對liker
--color :将比對到的内容以顔色高亮顯示. 
           

1.linux中grep指令的用法

awk

1.awk學習

sed

1.sed學習

xxx --help(man xxx)

xxx --help, 是對xxx指令的常用選項和用法格式的一個介紹, man xxx也是介紹, man的内容比較複雜是詳細介紹, xxx --help比較簡潔, 簡單介紹

pwd

目前路徑(dirs)

l(ls)

顯示給出路徑之中的文檔清單

Usage: ls [OPTION]... [FILE]...
參數: 
-a:                          do not ignore entries starting with .
-A:                          do not list implied . and ..
-s, --size                   print the allocated size of each file, in blocks
-l:                          use a long listing format
-t:                          sort by modification time
-h, --human-readable         with -l, print sizes in human readable format (e.g., 1K 234M 2G)
-d, --directory              list directory entries instead of contents, and do not dereference symbolic links
-R, --recursive              list subdirectories recursively(列出子檔案夾之中的檔案)
           

例子:

ls -lh      //可以将檔案的大小從位元組, 轉換成為KB,MB,GB等常見熟悉的情況類型
           

1.每天一個linux指令(3):ls指令, 2.Linux中ls指令用法.

ifconfig

檢視目前的ip資訊

add/del netmask
           
ifconfig eth0 192.168.1.1 netmask 255.255.255.0   臨時配置ip
ifconfig eth1 down    停止網卡
ifconfig eth1 up      啟動網卡
           

1.linux下配置臨時IP

ip

檢視ip的資訊

// 參數:
link          網絡裝置
address       裝置上的協定(IP或IPv6)位址
addrlabel     協定位址選擇的标簽配置
neighbour     ARP或NDISC緩存條目
route         路由表條目
rule          路由政策資料庫中的規則
maddress      多點傳播位址
           
ip a/addr/address add 192.168.78.130/24 dev eth1          增加ip
ip a/addr/address del/delete 192.168.78.130/24 dev eth1   删除ip
           

1.Linux指令之ip, 2.linux ip指令和ifconfig指令

系統:

指令檢查, 設定服務

chkconfig

指令檢查, 設定系統的各種服務, 常用的有如下的幾種, 增加一個服務的時候, 腳本必須在/etc/init.d/的目錄下

chkconfig --list             #列出所有的系統服務.
chkconfig --add httpd        #增加httpd服務.
chkconfig --del httpd        #删除httpd服務.
           

1.chkconfig指令軟體包管理

uname

檢視系統資訊,

uname -a

, 等價的有:

lsb_release -a

cat /etc/issue

cat /proc/version

uname -a
Linux version 3.0.76-0.11-default (geeko@buildhost) (gcc version 4.3.4 [gcc-4_3-branch revision 152973] (SUSE Linux) ) #1 SMP Fri Jun 14 08:21:43 UTC 2013 (ccab990)
Welcome to SUSE Linux Enterprise Server 11 SP3  (x86_64) - Kernel \r (\l).
           
ssh

遠端登入的指令, ssh開啟root登入方法:

修改

/etc/ssh/sshd_config

檔案,

PermitRootLogin yes

PasswordAuthentication yes

, 重新開機ssh服務

/etc/init.d/ssh start

, 檢視狀态

/etc/init.d/ssh status

// 登入伺服器
ssh [email protected]
           

1.kali linux 開啟SSH服務 容許root登陸, 2.Linux ssh登入指令, 3.SSH簡介及兩種遠端登入的方法

who

顯示關于目前在本地系統上的所有使用者的資訊

a  處理 /etc/utmp 檔案或有全部資訊的指定檔案. 等同于指定 -bdlprtTu 标志. 
-b 指出最近系統啟動的時間和日期. 
-l 列出任何登入程序. 
-m 僅顯示關于目前終端的資訊. who -m 指令等同于 who am i 和 who am I 指令. 
-q 列印一份在本地系統上的使用者和使用者數的快速清單. 
           

1.Linux who指令詳解

whoami

顯示目前登陸的使用者名

which

檢視可執行檔案的位置, 從全局環境變量PATH裡面查找對應的路徑, 預設是找 bash内所規範的目錄.

which cp

, 傳回cp指令的位置

./bin/cp

1.Linux which/whereis/locate指令詳解

whereis

隻能用于搜尋程式名在什麼地方, 配合-b, 隻搜尋二進制, -m搜尋在manual之中的位置

xww:~/Desktop/rrr # whereis cp
cp: /bin/cp /usr/share/man/man1p/cp.1p.gz /usr/share/man/man1/cp.1.gz
xww:~/Desktop/rrr # whereis -b cp
cp: /bin/cp
           
reboot

重新開機系統

poweroff

關機且斷電

shutdown

關機(halt)

ctrlaltdel

設定組合鍵Ctrl+Alt+Del的功能

type

type指令用來區分某個指令到底是由shell自帶的, 還是由shell外部的獨立二進制檔案提供的.

如果一個指令是外部指令, 那麼使用-p參數, 會顯示該指令的路徑, 相當于which指令.

1.linux指令中which、whereis、locate有什麼差別?

free

free指令可以顯示Linux系統中空閑的, 已用的實體記憶體及swap記憶體, 及被核心使用的buffer.

用法: free [-b | -k | -m | -g | -h] [-o] [-s delay ] [-c count ] [-a] [-t] [-l] [-V]
參數: 
    -b  以Byte為機關顯示記憶體使用情況.  
    -k  以KB為機關顯示記憶體使用情況.  
    -m  以MB為機關顯示記憶體使用情況. 
    -g   以GB為機關顯示記憶體使用情況.  
    -h   以human readable方式輸出(有的可能不支援)
    -o  不顯示緩沖區調節列.  
    -s<間隔秒數>  持續觀察記憶體使用狀況.  
    -t  顯示記憶體總和列.  RAM+SWAP
    -V  顯示版本資訊.
           

1.每天一個linux指令:free

df

df (disk free) 其功能顯示每個檔案所在的檔案系統的資訊, 預設是顯示所有檔案系統.

參數: 
    -a: 顯示所有的磁盤使用情況
    -h: 以人性化的方式顯示磁盤使用情況, GB, MB, KB這些機關,  
        常用df -a -h或者縮寫 df -ah, 所有的-x都可以縮寫,  所有的--x也可以縮寫在一起
           

1.每天一個linux指令:df

du

du (Disk usage) 用來計算每個檔案的磁盤用量, 目錄則取總用量. 預設是目前的目錄, 也可以在du 後面指定目錄, 顯示檔案的大小

-a: 相應檔案夾下所有的檔案的大小
    -h: 以人性化的方式顯示磁盤使用情況, GB, MB, KB這些機關,  
        常用du -a -h或者縮寫 du -ah
    -s: 求和, 預設是目前檔案夾下面的所有的大小 du -sh,  du -sh name.py
           

1.每天一個linux指令:du

vmstat

vmstat(Virtual Memory Statistics 虛拟記憶體統計) 指令用來顯示Linux系統虛拟記憶體狀态, 也可以報告關于程序, 記憶體, I/O等系統整體運作狀态.

-a: 顯示活躍和非活躍記憶體
    -f: 顯示從系統啟動至今的fork數量 . 
    -S: 使用指定機關顯示. 參數有 k , K , m , M , 分别代表1000, 1024, 1000000, 1048576位元組byte. 預設機關為K1024 bytes
    -V: 顯示vmstat版本資訊. 
           

1.每天一個linux指令:vmstat

iostat

iostat(I/O statistics 輸入/輸出統計) 指令對系統的磁盤操作活動進行監視. 它的特點是彙報磁盤活動統計情況, 同時也會彙報出CPU使用情況

-c: 僅顯示CPU使用情況; 
    -d: 僅顯示裝置使用率;一般不和-c一起使用 
    -k: 顯示狀态以千位元組每秒為機關, 而不使用塊每秒; 
    -m: 顯示狀态以兆位元組每秒為機關;
    -N 顯示磁盤陣列(LVM) 資訊
    -n 顯示NFS 使用情況
    -p: 僅顯示塊裝置和所有被使用的其他分區的狀态; 
    -t: 顯示每個報告産生時的時間; 
    -V: 顯示版号并退出; 
    -x: 顯示擴充狀态. 
           
iostat -d -k 2 3:  每2秒鐘檢查一次, 一共檢查3次
    iostat -d -k    :  檢視磁盤讀寫速度, 以k為機關
           

1.每天一個linux指令:iostat

檔案:

cp
cp /home/xxx.txt /opt/mg/123.txt
           
mv

可以直接移動檔案夾, 可以重命名檔案

rm
rm -rf  rm -rf /home/zgy,  遞歸删除/home/zgy檔案夾,  -r, -R參數是遞歸的意思 
           
mkdir
mkdir xxx,  在目前目錄下建立了xxx檔案夾
           
rmdir
rmdir, rmdir xxx,  删除目前目錄下的xxx檔案夾
           
touch

touch(當檔案不存在的時候建立檔案), 當檔案存在時, 更新檔案的通路和修改時間, touch指令将每個檔案的通路時間和修改時間改為目前時間.

參數選項: 
    -a              隻更改通路時間
    -t STAMP        使用[[CC]YY]MMDDhhmm[.ss] 格式的時間而非目前時間
           
touch a.log                更新a.log的修改時間為目前時間, 沒有a.log則建立
touch -r a.log   b.log     更新log1.log的時間和log2.log時間戳相同
touch -t 201601011200.50 log.log        設定檔案的時間戳
           

1.每天一個linux指令(9):touch

scp

scp指令是安全複制

格式: 
    scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ... [[user@]host2:]file2
           

scp = ssl+cp, 安全的複制, 可以從本機--->遠端, 也可以從遠端--->本機, 或者從遠端主機1--->遠端主機2

scp etc/fgg.tar [email protected]:/home/DRManager/ff 
# 把etc下面的fgg.tar檔案複制到遠端主機的相應檔案夾之中

scp [email protected]:/home/DRManager/ff/etc.tar ./  
# 把遠端主機的檔案複制到本主機上
           

1.每天一個linux指令:scp指令, 2.linux scp 使用方法, 3.Linux——scp的用法

tar

打包和解包[不是壓縮], 壓縮有zip指令, 是以有如下兩個名字需要注意:

打包: 将一大堆檔案或目錄變成一個總的檔案【tar指令】

壓縮: 将一個大的檔案通過一些壓縮算法變成一個小檔案【gzip, bzip2等】

tar -cf archive.tar foo bar  # Create archive.tar from files foo and bar. 建立archive.tar,  把foo, bar檔案或者檔案夾打包到其中. 
tar -tvf archive.tar         # List all files in archive.tar verbosely.   列出archive.tar檔案之中的檔案清單. 
tar -xf archive.tar          # Extract all files from archive.tar.
           

Linux中很多壓縮程式隻能針對一個檔案進行壓縮, 這樣當你想要壓縮一大堆檔案時, 你得将這一大堆檔案先打成一個包tar指令, 然後再用壓縮程式進行壓縮gzip bzip2指令.

tar文法:

文法: 
    tar [主選項+輔選項] 檔案或目錄
    使用該指令時, 主選項必須有, 它告訴tar要做什麼事情, 輔選項是輔助使用的, 可以選用. 
    主選項: 【一條指令以下5個參數隻能有一個】
        -c: --create 建立一個壓縮文檔, 即打包
        -x: --extract,--get解壓檔案
        -t: --list,檢視壓縮文檔裡的所有内容
        -r:--append 向壓縮文檔裡追加檔案
        -u:--update 更新原壓縮包中的檔案
    
    輔助選項: 
        -z:是否同時具有gzip的屬性?即是否需要用gzip壓縮或解壓?一般格式為xxx.tar.gz或xx.tgz
        -j:是否同時具有bzip2的屬性?即是否需要用bzip2壓縮或解壓?一般格式為xx.tar.bz2
        -v:顯示操作過程!這個參數很常用
        -f:使用文檔名, 注意, 在f之後要立即接文檔名, 不要再加其他參數!
        -C:切換到指定目錄
        --exclude FILE:在壓縮過程中, 不要将FILE打包
           

1.linux tar指令簡介 , 2.Linux tar 指令用法 , 3.linux中tar指令用法, 4. linux下tar指令詳解

日志檢視:

cat

cat指令是linux下的一個文本輸出指令, 通常是用于觀看某個檔案的内容的;cat主要有三大功能:

  1. 一次顯示整個檔案.

    cat filename

  2. 從鍵盤建立一個檔案.

    cat > filename

    , 寫完内容後, Control-D結束寫入, 隻能建立新檔案,不能編輯已有檔案.
  3. 将幾個檔案合并為一個檔案.

    cat file1 file2 > file

說明:

**tac是從最後一行輸出全部的内容, 和cat的功能類似, 隻是相反的方向. **

參數:

cat [-AbeEnstTuv] [--help] [--version] fileName -n  # 從1開始對于所有的輸出行數編号
           

1.Linux cat指令詳解, 2.(linux)使用cat指令時如何退出, 3.Linux_cat_使用cat 和 結束符 輸出多行文本, 4. 每天一個linux指令(10):cat

less

less 工具也是對檔案或其它輸出進行分頁顯示的工具, 是linux正統檢視檔案内容的工具, 功能極其強大. 比起 more 更加的有彈性. less指令可以對檔案或其它輸出進行分頁顯示, 與moe指令相似, 但是比more指令要強大許多. 應該說是linux正統檢視檔案内容的工具.

less的功能和more相似, 但是使用more無法向前翻頁, 隻能向後翻, 而less可以任意切換

指令格式:
less  [選項]... [檔案]...
參數: 
    -g 隻标志最後搜尋的關鍵詞
    -i 忽略搜尋時的大小寫
    -m 顯示類似more指令的百分比
    -N 顯示每行的行号
           

less指令進入之後也有内部操作使用的指令, 如下:

内部的指令: 
    ctrl + F - 向前移動一屏ctrl-f作用和ctrl-F正好相反,  下面的幾個也都是一樣, 大寫和小寫是相反的作用
    ctrl + B - 向後移動一屏
    ctrl + D - 向前移動半屏
    ctrl + U - 向後移動半屏
    /字元串: 向下搜尋"字元串"的功能
    ?字元串: 向上搜尋"字元串"的功能
    n:       重複前一個搜尋與 / 或 ? 有關
    N:       反向重複前一個搜尋與 / 或 ? 有關
    space:   空格表示向後移動一屏
    enter:   回車表示向下移動一行
    j:       向前移動一行
    k:       向後移動一行
    g:       移動到最開始一行
    G:       移動到最後一行
    q:       退出
    :e       在看本檔案的時候, 去打開另一個檔案看[相當牛逼的功能]
           

其他: less 版 tail -f

在 Linux 動态檢視日志檔案常用的指令非 tail -f 莫屬, 其實 less 也能完成這項工作, 使用 F 指令.

使用 less file-name 打開日志檔案, 執行指令 F, 可以實作類似 tail -f 的效果. 多個檔案的顯示效果一般, 一個檔案效果和tailf相同, 非常不錯的功能.

ps -ef|less -N                    # 顯示行數, 分頁顯示所有的程序
less test2.log test.log           # 同時檢視多個日志  
less -N fcd.txt, 進入後 :e msg.txt # 在檢視fcd.txt的同時間, 然後 去檢視msg.txt, 使用q退出
less fcd.log 進入後按F             # 實時顯示fcd.log的内容
history | less                    # 執行指令的曆史記錄分頁檢視
           

1.Linux less指令詳解 , 2.Linux less指令詳解, 3.Linux less指令詳解 , 4.less指令, 5.每天一個linux指令(13):less指令, 6. Linux學習筆記--less指令(顯示檔案内容的指令), 7.LESS指令簡單介紹以及使用, 8.less 分頁顯示檔案内容, 9.每天一個Linux指令

more

less的功能和more相似, 但是使用more無法向前翻頁, 隻能向後翻, 而less可以任意切換. more指令, 類似cat, 該指令一次顯示一屏文本, 滿屏後停下來, 并且在螢幕的底部出現一個提示資訊, 給出至今己顯示的該檔案的百分比,

友善逐頁閱讀(file perusal filter for crt viewing) . more名單中内置了若幹快捷鍵, 按空白鍵space就往下一頁顯示, 按 b 鍵就會往回back一頁顯示, 而且還有搜尋字串的功能與 vi 相似, 使用中按h可以檢視說明檔案 .

指令格式: 	
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
參數: 
    ctrl-b向前翻一頁(back
    ctrl-f向後翻一頁
    space空格 向後翻一頁
    enter回車 向下一行
    -num 一次顯示的行數 
    -d 提示使用者, 在畫面下方顯示 [Press space to continue, 'q' to quit.] 如果按錯鍵, 則會顯示 [Press 'h' for instructions.] 而不是 '哔' 聲 
    -l 取消遇見特殊字元 ^L送紙字元時會暫停的功能 忽略Ctrl+l換頁字元 
    -f 計算行數時, 以實際上的行數, 而非自動換行過後的行數有些單行字數太長的會被擴充為兩行或兩行以上 
    +/ 在每個檔案顯示前搜尋該字串pattern, 然後從該字串之後開始顯示 
    +num 從第 num 行開始顯示  fileNames 欲顯示内容的檔案, 可為複數個數
           
more 001.txt kkk.txt # 首先顯示 001.txt的内容,  完後顯示kkk.txt的内容, 
more -10 001.txt     # 顯示20行
           

1.每天一個linux指令(12):more指令, 2.在Linux下檢視檔案内容的指令大緻有以下幾種, 3.linux more 上一頁,下一頁

tail

檢視後面幾行的代碼, 一般配合grep使用, 通過grep實作過濾, tail -100 xxx.log|grep java 檢視xxx.log之中後100行關于Java的部分

參數: 
    -n 行數, -10表示檢視10行
    -f 連續滾動輸出,  後續的輸出當做流,  繼續輸出,  也就是可以實時持續輸出,  可以簡寫為tailf
           

使用的時候, 可以同時顯示多個檔案

tail -n 10 xxx.log|grep java = 	 tail -10 xxx.log|grep java
tail -f startLog.log|grep ERROR
tail -n 5 legoStart.log  commandrun.log  # 這個可以同時顯示多個檔案的内容,  此時用-10, 就失效了,  需要用-n 10來表示行數
           

展示情況:

root:/opt/FC/Runtime/logs # tail -n 5 legoStart.log  commandrun.log 
==> legoStart.log <==
[2019/05/25 19:12:47.775][INFO][getStartStatus start...][LEGO_START][getStartStatus,299][main]
[2019/05/25 19:12:47.776][ERROR][flagFile is not exist][LEGO_START][getStartStatus,307][main]
[2019/05/25 19:12:47.776][INFO][startup status is null!][LEGO_START][main,90][main]
[2019/05/25 19:12:47.776][ERROR][Test failed, retry after sleep five seconds .][LEGO_START][main,97][main]
[2019/05/25 19:12:57.776][ERROR][Server Start failed!][LEGO_START][main,106][main]
==> commandrun.log <==
user: [ICUser] time: [2019/05/23 00:58:29:320439192] command:[run.sh]
user: [ICUser] time: [2019/05/23 01:06:47:279925537] command:[run.sh]
user: [ICUser] time: [2019/05/23 01:23:17:127594376] command:[run.sh]
user: [ICUser] time: [2019/05/25 18:43:55:706642386] command:[run.sh]
root:/opt/FC/Runtime/logs #
           

1.每天一個linux指令(15):tail指令

head

head用來顯示檔案的開頭至标準輸出中, 一般配合grep使用, 通過grep實作過濾, head -100 xxx.log|grep java 檢視xxx.log之中開頭100行關于java 的部分

參數含義:

-n 行數, -10表示檢視10行,  一個檔案的時候寫成 -10,  多個檔案操作需要寫成 -n 10
           
head -n 5 log.txt = head -5 log.txt
head -n 10 log.txt fc.txt
           

1.每天一個linux指令(14):head指令

od

od指令用于輸出檔案的八進制, 十六進制或其它格式編碼的位元組, 通常用于顯示或檢視檔案中不能直接顯示在終端的字元. 常見的檔案為文本檔案和二進制檔案. 此指令主要用來檢視儲存在二進制檔案中的值.

d 十進制 
o 八進制系統預設值 
x 十六進制 
-c     same as -t c,  select ASCII characters or backslash escapes 按照ascii的方式顯示
           

1.Linux之od指令詳解 , 2.linux之od指令, 3.linux od指令 , 4.使用od指令,linux下以ASCII方式檢視檔案, 5.Linux之od指令詳解

find

查找指令

格式: 
    find [查找目錄] [查找規則] [查找完後的操作] find pathname -option [-print -exec -ok …]
參數: 
    查找規則: 
    -name:  按照檔案名搜尋;(?表示  通配任意的單個字元, *表示任意個字元)
    -iname: 按照檔案名搜尋, 不區分檔案名大小;
    -user:  根據屬主Owner來查找檔案, 也有-uid, 是使用者編号
    -group: 根據屬組group來查找檔案, 也有-gid, 是屬組編号
    -atime: 根據檔案時間戳的相關屬性來查找檔案, *time的機關是天,  *min的機關是分鐘
    -atime, -ctime, -mtime,  a通路,  m修改内容, c修改屬性
    -amin, -cmin, -mmin
    -type:  按照檔案類型來查找檔案, f 普通檔案, d 目錄檔案, l 連結檔案,  p 管道檔案,  s socket檔案  -type f
    -size:  按照大小來查找檔案, +大于, -小于, 無等于 +2M, 表示大于2M
    -perm:  按照檔案權限查找檔案, 777,222等
查找完後的操作: 
    -print                # 預設情況下的動作
    -ls                   # 查找到後用ls 顯示出來
    -ok  [commend]        # 查找後執行指令的時候詢問使用者是否要執行
    -exec [commend]       # 查找後執行指令的時候不詢問使用者, 直接執行
           
find /root /etc /tmp -iname hello.txt  # 在這三個目錄下面查找hello.txt檔案, 不區分大小寫
find /root /etc /tmp -iname avr?.txt   # 在這三個目錄下面查找hello.txt檔案, 不區分大小寫
find  /tmp  -size  +2M                 # 查找在/tmp 目錄下大于2M的檔案
find  /tmp  -perm  +222                # 表示隻要有一類使用者屬主, 屬組, 其他的比對寫權限就行
find  /tmp  -uid  500                  # 查找uid是500 的檔案
find  /tmp  -name hello.txt -ls        # 查找在/tmp目錄下名字是hello.txt的文檔, 并且輸出詳細情況
           

1.linux下find(檔案查找)指令的用法總結, 2.Linux下的find指令, 3.Linux find指令:在目錄中查找檔案(超詳解), 4.媽咪,我找到了! -- 15個實用的Linux find指令示例

cut

cut根據指定的定界符, 切分檔案, 并将選中的列輸出到标準輸出.

格式:
    cut [選項]... [檔案]...
參數: 
    -b: 僅顯示行中指定直接範圍的内容;
    -c: 僅顯示行中指定範圍的字元;
    -d: 指定字段的分隔符, 預設的字段分隔符為"TAB";
    -f: 顯示指定字段的内容;
    -n: 與"-b"選項連用, 不分割多位元組字元;
    --complement: 補足被選擇的位元組, 字元或字段;
    --out-delimiter=<字段分隔符>: 指定輸出内容是的字段分割符;
           
cat /etc/passwd | cut -b1-3 # 取每行的第1-3字位元組
    cut -f2,3 test.txt           # 顯示每行2-3内容
    tail -n 5 /etc/passwd |cut -d ":" -f 3,4   -f n-m  # 列印第n-m個字段,  分隔符換成了:
           

1.【一天一個shell指令】【cut】, 2.linux cut 指令, 3.Linux:cut指令詳解

網絡:

監聽狀态, 端口監聽, 端口操作:

netstat

netstat指令用于顯示與IP, TCP, UDP和ICMP協定相關的統計資料, 一般用于檢驗本機各端口的網絡連接配接情況. netstat是在核心中通路網絡及相關資訊的程式, 它能提供TCP連接配接, TCP和UDP監聽, 程序記憶體管理的相關報告.

參數:
    -a或–all: 顯示所有連線中的Socket;
    -c或–continuous: 持續列出網絡狀态; 
    -l或–listening: 顯示監控中的伺服器的Socket;
    -n或–numeric: 直接使用ip位址, 而不通過域名伺服器;
    -p或–programs: 顯示正在使用Socket的程式識别碼和程式名稱; 
    -t或–tcp: 顯示TCP傳輸協定的連線狀況;
    -u或–udp: 顯示UDP傳輸協定的連線狀況;
    -o或者--timers: 顯示計時器
           
netstat -ano
    netstat -anpo
    netstat -lntup
    netstat -r :顯示路由資訊
           

常見網絡連接配接狀态:

LISTEN: 偵聽來自遠方的TCP端口的連接配接請求
    SYN-SENT: 再發送連接配接請求後等待比對的連接配接請求如果有大量這樣的狀态包, 檢查是否中招了
    SYN-RECEIVED: 再收到和發送一個連接配接請求後等待對方對連接配接請求的确認如有大量此狀态, 估計被flood攻擊了
    ESTABLISHED: 代表一個打開的連接配接
    FIN-WAIT-1: 等待遠端TCP連接配接中斷請求, 或先前的連接配接中斷請求的确認
    FIN-WAIT-2: 從遠端TCP等待連接配接中斷請求
    CLOSE-WAIT: 等待從本地使用者發來的連接配接中斷請求
    CLOSING: 等待遠端TCP對連接配接中斷的确認
    LAST-ACK: 等待原來的發向遠端TCP的連接配接中斷請求的确認不是什麼好東西, 此項出現, 檢查是否被攻擊
    TIME-WAIT: 等待足夠的時間以確定遠端TCP接收到連接配接中斷請求的确認
    CLOSED: 沒有任何連接配接狀态
           
zuiguangyin:~ # netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:61806         0.0.0.0:*               LISTEN      
tcp        0      0 127.0.0.1:6432          0.0.0.0:*               LISTEN      
tcp        0    624 100.133.175.197:22      8.46.214.227:61370      ESTABLISHED 
tcp        0      0 :::111                  :::*                    LISTEN      
tcp        0      0 :::22                   :::*                    LISTEN      
tcp        0      0 ::1:631                 :::*                    LISTEN      
tcp        0      0 ::1:25                  :::*                    LISTEN      
tcp        0      0 127.0.0.1:25410         :::*                    LISTEN      
tcp        0      0 100.133.175.197:25411   :::*                    LISTEN      
udp        0      0 0.0.0.0:631             0.0.0.0:*                                   
udp        0      0 0.0.0.0:784             0.0.0.0:*                   
           

1.Linux netstat指令詳解, 2.netstat指令, 3.Netstat 指令詳解, 4.netstat 的10個基本用法, 5.Linux檢視端口、程序情況及kill程序, 6.linux用netstat檢視服務及監聽端口

telnet

遠端登入, 通常可以判斷端口是不是通了, 預設23端口,

telnet 100.133.138.67 8239 # 測試100.133.138.67的8239端口是否是通的,比如
telnet 14.29.122.153 80  # 連接配接失敗, 就表示是80端口不通
           

1.telnet指令判斷端口是否通不通, 2.telnet 指令使用方法詳解,telnet指令怎麼用?, 3.telnet指令使用示例, 4.Linux 出現telnet: 127.0.0.1: Connection refused錯誤解決辦法, 5.telnet 指令使用方法詳解,telnet指令怎麼用?, 6.telnet指令使用示例, 7.linux:telnet指令安裝, 8.使用Telnet的主要目的是什麼, 9.suse下打開telnet功能, 10.SUSE 開啟ssh、telnet

lsof

lsof指令用于檢視你程序開打的檔案, 打開檔案的程序, 程序打開的端口(TCP, UDP). 找回/恢複删除的檔案. 是十分友善的系統監視工具, 因為lsof指令需要通路核心記憶體和各種檔案, 是以需要root使用者執行.

COMMAND: 程序的名稱
PID: 程序辨別符
PPID: 父程序辨別符(需要指定-R參數)
USER: 程序所有者
PGID: 程序所屬組
FD: 檔案描述符, 應用程式通過檔案描述符識别該檔案.
           
lsof 檔案名 :檢視誰正在使用某個檔案lsof 檔案名
lsof -i 22 :檢視端口22現在的運作情況
lsof -p 12 :列出程序号為12的程序打開了哪些檔案
lsof -a -u root -d txt :檢視所屬root使用者程序所打開的檔案類型為txt的檔案
           
zuiguangyin:~ # lsof |grep sshd
sshd       7481       root  cwd       DIR                8,2     4096          2 /
sshd       7481       root  rtd       DIR                8,2     4096          2 /
sshd       7481       root  txt       REG                8,2   571568    3023009 /usr/sbin/sshd
sshd       7481       root  mem       REG                8,2   135124    2261027 /lib64/libpthread-2.11.3.so
sshd       7481       root  mem       REG                8,2    35800    2834502 /usr/lib64/libkrb5support.so.0.1
sshd       7481       root  mem       REG                8,2   351360     642021 /usr/lib64/libssl.so.0.9.8
sshd       7481       root  mem       REG                8,2   110440    2834532 /usr/lib64/libsasl2.so.2.0.22
           

1.lsof指令的應用, 2.lsof指令詳解, 3.linux lsof指令詳解

權限:

rwx: r=4, w=2, x=1

group: 
    chgrp Tomcat xxx.txt  # 修改屬組
owner:
    chown ICUser xxx.txt; chown ICUser abc*; 改變xxx.txt檔案的所有者為 ICUser   #修改所有者
right:
    chmod 777 XXX         #修改權限
           

程序:

ps

program status, ps是顯示瞬間程序的狀态, 将某個程序顯示出來, 并不動态連續; 如果想對程序進行實時監控應該用top指令. grep是查找, "|"是管道指令, 讓ps與grep同時執行, grep指令是查找, 是一種強大的文本搜尋工具, 它能使用正規表達式搜尋文本, 并把比對的行列印出來. grep表示全局正規表達式, 它的使用權限是所有使用者.

以下這條指令是檢查java 程序是否存在:

ps -ef |grep java
           

字段含義如下:

UID           PID       PPID        C     STIME      TTY         TIME         CMD
zzw           14124     13991       0     00:38      pts/0       00:00:00     grep --color=auto dae
UID是執行者, PID是程序号, PPID:其上級父程式的ID, C是cpu占用資源, TTY是登入者的終端機位置, TIME是使用掉的CPU時間, CMD是下達的指令名稱
           

常用參數:

-A: 所有的程序均顯示出來, 與 -e 具有同樣的效用;
    -a: 顯示現行終端機下的所有程序, 包括其他使用者的程序;
    -u: 以使用者為主的程序狀态; 
    x: 通常與 a 這個參數一起使用, 可列出較完整資訊. 
    輸出格式規劃:  
        l: 較長, 較詳細的将該 PID 的的資訊列出;
        j: 工作的格式(jobs format)
        -f: 做一個更為完整的輸出.
           
ps -ef |grep java                   # 檢查java程序
ps aux                              # 列出所有正在記憶體中的程式
ps aux |grep java
           

1.ps -ef|grep詳解, 2.Linux 中ps指令詳解, 3.Linux檢視端口、程序情況及kill程序

top

Linux系統可以通過top指令檢視系統的CPU, 記憶體, 運作時間, 交換分區, 執行的線程等資訊. 通過top指令可以有效的發現系統的缺陷出在哪裡, 是記憶體不夠, CPU處理能力不夠, IO讀寫過高等,

zuiguangyin:~ # top
top - 00:12:54 up 22 days,  5:22,  1 user,  load average: 0.01, 0.04, 0.31
Tasks: 149 total,   1 running, 148 sleeping,   0 stopped,   0 zombie
 Cpu(s): 24.5%us, 17.3%sy,  0.0%ni, 58.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   8062708k total,  3135080k used,  4927628k free,   238292k buffers
Swap:  8394744k total,        0k used,  8394744k free,  2398544k cached
    
PID          USER      PR  NI  VIRT  RES  SHR S   %CPU %MEM    TIME+  COMMAND                                                                                       
18327        root      20   0 3544m  59m  13m S     54  0.8   0:01.13 java                                                                                           
17670        gaussdb   20   0 12944 3012 1296 S      2  0.0   0:00.05 gaussdb.sh                                                                                     
4462         root      20   0  8364 4584  320 S      0  0.1  40:00.14 haveged                                                                                        
6736         gdm       20   0  261m  36m  12m S      0  0.5  45:29.09 gdm-simple-gree                                                                                                                                                              
3        root      20   0     0    0    0 S      0  0.0   5:59.61 ksoftirqd/0                     
           

參數說明:

前5行為系統總體資源統計情況
    top -          系統目前時間
    up              系統已開機多長時間
    user             目前使用者數
    load average        cpu平均負載, 三個數值分别為, 1分鐘, 5分鐘, 15分鐘
    Tasks             系統目前程序數, total: 總程序數, running: 正在運作的程序數, sleeping: 睡眠的程序數, stopped: 停止的程序數, zombie: 僵屍程序數
    %Cpu(s)             cpu使用率, us: 使用者使用cpu百分百, sy: 系統核心使用cpu百分百, id: 剩餘的cpu百分百
    Mem               記憶體使用資訊, total: 總記憶體大小, free: 空閑的記憶體, used: 已使用的記憶體, buff/cache: 緩存的記憶體大小
    Swap               虛拟記憶體資訊
                    
    PID             程序id
    USER            程序所有者
    PR            優先級
    NI           nice值, 負值表示高優先級, 正值表示低優先級
    VIRT           程序使用的虛拟記憶體總量
    RES            程序使用的實體記憶體大小
    SHR            共享記憶體大小
    S             程序狀态, D: 不可中斷的睡眠狀态, R: 運作, S: 睡眠, T: 跟蹤/停止, Z: 僵屍程序
    %CPU            程序使用的CPU占用百分比
    %MEM            程序使用的實體記憶體百分比
    TIME+           程序使用的CPU時間總計
    COMMAND          指令名
           

1.Linux中top顯示的資訊詳解, 2.Linux top指令詳解, 3.Linux top指令

kill

殺死程序, 一般而言, 殺掉程序之前, 需要查找程序, 就需要使用

ps -ef |grep java, ps -ef|grep tomcat

等指令, 找到了之後殺掉.

文法如下:
kill: usage: kill [-s 信号聲明 | -n 信号編号 | -信号聲明] 程序号 | 任務聲明 ... or kill -l [信号聲明]
           

通過kill -l我們可以找到相應的信号, 然後用相應的數字, 比如常用的

kill -9 pid

, 9表示立即強制殺死. 比如

kill -9 1234

.

1.Linux kill、kill-15、kill-9差別, 2.Linux kill -9 和 kill -15 的差別

ref:

1.50個最常用的Unix/Linux指令

醉飲山林,自是閑暇白雲間。笑紅塵,總是愛恨貪嗔癡。若問人間逍遙在,風生之谷,客從山來。

繼續閱讀