Linux命令大全

網(wǎng)絡(luò)篇

ping

  • ping -c 3 -q -s 65500 -t 255 -i 0.1 -f www.baidu.com

    • -c:指定ping的次數(shù)
    • -q:只重結(jié)果不重過程
    • -s: 默認(rèn)情況下,ping命令是以64字節(jié)大小的數(shù)據(jù)包來測試網(wǎng)絡(luò)聯(lián)通性的,如需要改變默認(rèn)數(shù)據(jù)包的大小,則可以使用參數(shù)-s選項(xiàng)。
    • -t: 指定ping的TTL
    • -i: 指定ping的時(shí)間間隔
    • -f: 以盡可能快的速度來發(fā)送數(shù)據(jù)包

DNS

  • DNS即Domain Name System,負(fù)責(zé)著整個(gè)互聯(lián)網(wǎng)中“域名—IP地址”的管理和解析工作。

  • DNS緩存,每個(gè)DNS服務(wù)器都有一個(gè)高速緩存區(qū),里面存放“域名-IP”映射關(guān)系,緩存會(huì)設(shè)置期限,所以如果DNS服務(wù)器是從緩存中提取解析數(shù)據(jù)返回給用戶的,會(huì)在返回內(nèi)容中給出“Non-authoritative answer”的字樣。

  • 安裝 bind-utils軟件包,里面包括 host dig nslookup等命令

  • /etc/resolv.conf存放dns服務(wù)器地址

  • DNS協(xié)議五元組:DNS是用來做域名和資源轉(zhuǎn)換的,而IP地址只是資源中的一種而已。資源是一個(gè)五元組{ DomainName、TimeToLive、Class、Type、Value }

    • DomainName(域名):指我們要查詢的那個(gè)域名。
    • TimeToLive(生存期限):表示此域名在各DNS服務(wù)器緩存中應(yīng)保存的時(shí)長。
    • Class(類別):通常為IN,即Internet。另外還有CH(Chaos)和HS(Hesiod)兩類,但目前幾乎已經(jīng)被淘汰了。
    • Type(類型):指出這條記錄的類型,包括8種,即SOA、A、MX、NS、CNAME、PTR、HINFO和TXT。
    • Value(值):針對不同類型,會(huì)有不同的值。
  • DNS的八種類型

    • SOA: Start Of Authority,表示授權(quán)開始,可以獲得針對一個(gè)域名的最基本信息,包括Mail:管理員郵箱地址、Minimum:外部DNS服務(wù)器如果要緩存本DNS服務(wù)器的授權(quán)數(shù)據(jù)保存時(shí)限等。
    • A: IP地址
    • MX: Mail eXchanger,當(dāng)前域名對應(yīng)的郵箱服務(wù)器
    • NS: Name Server,給定域名下包含的DNS服務(wù)器信息
    • CNAME: 別名
    • PTR: 從IP地址查詢其對應(yīng)的域名的映射關(guān)系
    • HINFO: 包含CPU和OS等信息
    • TXT: 文本信息,標(biāo)識有關(guān)此域名的一些信息

nslookup

<pre class="prettyprint linenums prettyprinted" style="box-sizing: border-box; font-family: Monaco, Menlo, Consolas, "Courier New", monospace; font-size: 18px; white-space: pre-wrap; display: block; padding: 18px; margin: 0px 0px 10px; line-height: 30px; color: rgb(51, 51, 51); word-break: normal; word-wrap: break-word; background-color: rgb(247, 247, 249); border: 1px solid rgb(225, 225, 232); border-radius: 3px; overflow: scroll;">

  1. $ nslookup www.baidu.com

  2. //本次解析使用的DNS服務(wù)器的具體IP地址和端口

  3. Server: 223.5.5.5

  4. Address: 223.5.5.5#53

  5. Non-authoritative answer:

  6. www.baidu.com canonical name = www.a.shifen.com.

  7. Name: www.a.shifen.com

  8. Address: 61.135.169.121

  9. Name: www.a.shifen.com

  10. Address: 61.135.169.125

</pre>

  • nslookup - 8.8.8.8 更改dns服務(wù)器地址,默認(rèn)取/etc/resolv.conf中第一條記錄
  • nslookup -type=soa 更改查詢的類型。

dig

dig: Domain Information Groper,它是一個(gè)DNS查詢工具,比nslookup更加強(qiáng)大。

  • dig @dnsserver name querytype
  • -f: 用-f選項(xiàng)實(shí)現(xiàn)從一個(gè)文件里讀取內(nèi)容批量查詢。
  • -t: 設(shè)置查詢類型
  • -q: 顯示設(shè)置要查詢的域名,提高命令的可讀性
  • -x: 逆向查詢
  • dig +tcp @8.8.8.8 www.baidu.com: 采用TCP協(xié)議來進(jìn)行DNS通信
  • dig +trace roclinux.cn: 跟蹤dig全過程
  • dig +short www.baidu.com: 精簡dig輸出

iproute

net-tools軟件包是Linux平臺(tái)中非常老牌的工具包,包括arp、ifconfig、netstat、route等命令,普遍集成于各類Linux發(fā)行版中,但是Linux內(nèi)核2.2版本對網(wǎng)絡(luò)子系統(tǒng)進(jìn)行了全面的重構(gòu)后,net-tools工具集有些力不從心,iproute2做為后浪有將前浪拍在沙灘上的趨勢。

image

ss

  • ss是 Socket Statistics的縮寫,可以獲取socket統(tǒng)計(jì)信息。ss能夠顯示更多更詳細(xì)的有關(guān)網(wǎng)絡(luò)連接狀態(tài)的信息,而且比netstat更快速、更高效。

  • ss一些常用的選項(xiàng)

    • ss -s: 查看當(dāng)前服務(wù)器的網(wǎng)絡(luò)連接統(tǒng)計(jì)
    • ss -l: 查看所有打開的網(wǎng)絡(luò)端口
    • ss -a: 查看所有的socket連接 -ta:表示只查看TCP sockets

ip

ip是用來管理網(wǎng)絡(luò)設(shè)備和路由的強(qiáng)大命令。


image
  • ip addr show 展示網(wǎng)絡(luò)接口信息
  • ip addr add 192.168.1.111/24 dev p1p2 為網(wǎng)絡(luò)接口添加一個(gè)IP地址
  • ip addr del 192.168.1.111/24 dev p1p2 針對一個(gè)網(wǎng)絡(luò)接口刪除其IP地址
  • ip route show 查看路由表
  • ip route add 192.168.2.0/24 via 192.168.1.254 增加一條路由規(guī)則
  • ip neigh show 查看本服務(wù)器的ARP列表
  • ip命令匯總表


    image

tcpdump

tcpdump -i eth0 -nn -X ‘port 53’ -c 1

  • -i選項(xiàng):即interface,用來指定網(wǎng)絡(luò)接口

  • -nn選項(xiàng):意思是當(dāng)tcpdump遇到協(xié)議號或端口號時(shí),不要將這些數(shù)字轉(zhuǎn)換成對應(yīng)的協(xié)議名稱或端口名稱。

  • -X選項(xiàng):告訴tcpdump命令,需要把協(xié)議頭和包內(nèi)容都原原本本地顯示出來。tcpdump會(huì)同時(shí)以16進(jìn)制和ASCII的形式顯示

  • -c選項(xiàng):是Count的含義,這個(gè)選項(xiàng)用來設(shè)置我們希望tcpdump幫我們抓幾個(gè)包。

  • -e選項(xiàng): 增加以太網(wǎng)幀頭部信息輸出

  • -l選項(xiàng):讓輸出變?yōu)樾芯彌_,如果不加-l選項(xiàng)的話,那么只有當(dāng)緩沖區(qū)全部占滿時(shí),tcpdump才會(huì)將緩沖區(qū)中的內(nèi)容輸出出來

  • -t選項(xiàng):輸出時(shí)不打印時(shí)間戳

  • -v選項(xiàng):輸出更詳細(xì)的信息,在原有輸出內(nèi)容的基礎(chǔ)之上,你還會(huì)看到tos值、ttl值、ID值、總長度、校驗(yàn)值等。

  • -F選項(xiàng): 指定過濾表達(dá)式所在的文件,tcpdump -i eth0 -c 1 -t -F filter.txt

  • -w選項(xiàng):將流量保存到文件中

  • -r選項(xiàng):讀取raw packets文件

  • -A選項(xiàng):tcpdump只會(huì)顯示ASCII形式的數(shù)據(jù)包內(nèi)容

  • 過濾流量

    • host 指定主機(jī)名或IP地址

    • net 指定網(wǎng)絡(luò)段

    • port 指定端口

    • portwange 指定端口范圍

    • src(source) dst(destination) 過濾表達(dá)式中沒有明確指出某個(gè)IP是src還是dst的話,那么默認(rèn)策略是src或dst都會(huì)匹配到。

    • proto[expr:size]語法

      • proto就是protocol的縮寫,表示這里要指定的是某種協(xié)議的名稱,比如ip、tcp、icmp、udp等。
      • proto[expr:size]中,expr用來指定數(shù)據(jù)報(bào)偏移量,表示從某個(gè)協(xié)議的數(shù)據(jù)報(bào)的第多少位開始提取內(nèi)容,默認(rèn)的起始位置是0。而size表示從偏移量的位置開始提取多少個(gè)字節(jié)
      • 提取了特定內(nèi)容之后,我們就需要設(shè)置我們的過濾條件了。我們可用的“比較操作符”包括:>、<、>=、<=、=和!=,共6個(gè)。
      • 要想提取TCP協(xié)議的SYN、ACK和FIN字段 語法如下 tcp[tcpflags] & tcp-syn; tcp[tcpflags] & tcp-ack; tcp[tcpflags] & tcp-fin;
      • tcpdump 'ip[2:2] > 576' 打印IP包長度超過576字節(jié)的網(wǎng)絡(luò)包。

nc

命令nc,全名netcat, 能勝任跟TCP/UDP相關(guān)的一切操作,可以打開TCP連接、發(fā)送UDP包、監(jiān)聽端口,端口掃描等等。

  • 聊天

    • 在A機(jī)器上執(zhí)行 nc -l 12345
    • 在B機(jī)器上 nc 116.255.245.207(A的IP地址) 12345
  • 端口掃描
    nc -z -v -n -w 2 127.0.0.1 20-23

    • -z選項(xiàng):一旦建立連接后馬上斷開,而不發(fā)送和接收任何數(shù)據(jù)。
    • -v選項(xiàng):打印詳細(xì)輸出信息。
    • -n選項(xiàng):直接使用IP地址,而不使用域名服務(wù)器來查詢其域名。
    • -w選項(xiàng):設(shè)置連接的超時(shí)時(shí)間,單位為秒。
    • -u選項(xiàng):使用UDP建立連接。上面命令無此設(shè)置,則表示使用TCP建立連接。
  • 傳輸文件

    • 文件發(fā)送端啟動(dòng)監(jiān)聽端口,準(zhǔn)備好文件 nc -v -l 12345 < book_out.txt
    • 文件的接收端接收服務(wù)端的數(shù)據(jù),并重定向到文件中 nc -v -n 116.255.245.207 12345 > book_in.txt

ssh-copy-id

一個(gè)腳本方便從A機(jī)器建立到B機(jī)器的ssh信任關(guān)系。

rsync

用于源端和目的端文件、文件夾的實(shí)時(shí)同步

wget

命令行下的網(wǎng)絡(luò)下載工具,支持HTTP、HTTPS、FTP協(xié)議的下載。

進(jìn)程和性能篇

uptime

uptime命令,有兩大功能:一個(gè)是查看機(jī)器的開機(jī)時(shí)長,另一個(gè)是查看CPU負(fù)載情況。

<pre class="prettyprint linenums prettyprinted" style="box-sizing: border-box; font-family: Monaco, Menlo, Consolas, "Courier New", monospace; font-size: 18px; white-space: pre-wrap; display: block; padding: 18px; margin: 0px 0px 10px; line-height: 30px; color: rgb(51, 51, 51); word-break: normal; word-wrap: break-word; background-color: rgb(247, 247, 249); border: 1px solid rgb(225, 225, 232); border-radius: 3px; overflow: scroll;">

  1. $ uptime

  2. 22:36:58 up 11:12, 1 user, load average: 0.00, 0.00, 0.00

  3. 系統(tǒng)當(dāng)前時(shí)間 主機(jī)已運(yùn)行時(shí)間 用戶**連接**數(shù) 最近1、5、15分鐘的系統(tǒng)平均負(fù)載

  4. + **系統(tǒng)平均負(fù)載:** 運(yùn)行隊(duì)列中的平均進(jìn)程數(shù),一般的經(jīng)驗(yàn)來看,單核負(fù)載在0.7以下是安全的,超過0.7就需要進(jìn)行優(yōu)化了。

  5. + **/proc/loadavg**文件中也記載了系統(tǒng)平均負(fù)載信息。

</pre>

free

  • buffers是塊設(shè)備I/O相關(guān)的緩存頁,數(shù)據(jù)先寫到buffer中,再再后臺(tái)慢慢寫入設(shè)備。
  • cached是普通文件相關(guān)的緩存頁,從硬盤讀取數(shù)據(jù)內(nèi)容先暫存到cache里,減少從底盤讀數(shù)據(jù)的次數(shù)。
image

SWAP空間

SWAP(交換分區(qū))和Windows中的虛擬內(nèi)存都是將一部分硬盤空間虛擬成內(nèi)存,來緩解內(nèi)存使用緊張的問題。

  • 當(dāng)Linux系統(tǒng)發(fā)現(xiàn)物理內(nèi)存使用量不足時(shí)就會(huì)選擇內(nèi)存中較長時(shí)間沒有被訪問和更新的內(nèi)存數(shù)據(jù),將這些內(nèi)存數(shù)據(jù)臨時(shí)寫到SWAP中,并釋放內(nèi)存中相應(yīng)的空間
  • 等到某個(gè)程序要使用SWAP中的數(shù)據(jù)時(shí),系統(tǒng)會(huì)再次從SWAP中讀取之前保存的數(shù)據(jù),并寫回到物理內(nèi)存中。
  • 對于服務(wù)器來說,SWAP建議設(shè)置為內(nèi)存的1~2.5倍之間的數(shù)值,可以防止內(nèi)存耗盡的窘境。
  • 如何定義內(nèi)存不足?cat /proc/sys/vm/swappiness中的參數(shù)會(huì)來輔助控制“內(nèi)存不足”的界限。
    image

vmstat

image
  • vmstat輸出的第一行數(shù)字,是自服務(wù)器啟動(dòng)至今的各項(xiàng)指標(biāo)的平均值,而非最新狀態(tài)值,從第二行開始的,才能反映服務(wù)器當(dāng)前最新狀態(tài)。
  • 如果cache的數(shù)值較大,則說明系統(tǒng)緩存了較多的磁盤數(shù)據(jù),利于磁盤I/O性能的提升。
  • si和so則是讀寫SWAP的量,這兩個(gè)值如果長期大于0,則表示系統(tǒng)需要經(jīng)常讀寫交換分區(qū),這會(huì)很消耗CPU資源和磁盤I/O性能。
  • 如果free的數(shù)值很低,甚至接近0了,也不一定就是系統(tǒng)內(nèi)存快耗盡了。要同時(shí)看buff和cache的量,大部分情況是buff和cache占用了很多內(nèi)存資源,而當(dāng)系統(tǒng)真正需要內(nèi)存時(shí),buff和cache是可以隨時(shí)被系統(tǒng)征調(diào)回來的。
  • 如果發(fā)現(xiàn)bi和bo的值很大,則說明系統(tǒng)正在進(jìn)行大量的磁盤讀寫操作。
  • 如果us的數(shù)值經(jīng)常大于50%,則說明用戶進(jìn)程所占用的CPU時(shí)間較多
  • 而sy是內(nèi)核所消耗的CPU時(shí)間,這個(gè)數(shù)值不應(yīng)該很高。如果很高,則一定是系統(tǒng)哪里出了問題。
  • 如果wa較高,則說明CPU總是在等待I/O操作。這表明磁盤已經(jīng)成為主要瓶頸
  • r表示的是正在運(yùn)行隊(duì)列中的任務(wù)數(shù),如果這個(gè)數(shù)值總是超過服務(wù)器的CPU核數(shù),則說明CPU已經(jīng)成為性能瓶頸

mpstat

  • mpstat,全稱是multiprocessor statistics,擅長多處理器的統(tǒng)計(jì)工作。

top

通過top,我們可以了解到服務(wù)器的CPU負(fù)載情況、內(nèi)存狀態(tài)、SWAP使用狀況,以及詳盡的進(jìn)程級運(yùn)行狀態(tài),可謂應(yīng)有盡有。

image
image
image
image
image

進(jìn)程數(shù)據(jù)

image

  • VIRT(Virtal Memory)中文為虛擬內(nèi)存。一個(gè)進(jìn)程,無論是通過malloc/calloc系列函數(shù)申請的內(nèi)存,還是堆/棧所占用的內(nèi)存,抑或是全局變量等所占用的內(nèi)存,都屬于VIRT范疇。所以VIRT是進(jìn)程所占用內(nèi)存的最大集。 + RES(Resident Memory),中文叫作常駐內(nèi)存。在malloc申請了物理內(nèi)存空間之后,并非會(huì)立即使用到這塊物理內(nèi)存,所以,系統(tǒng)會(huì)在進(jìn)程真正要使用到這塊物理內(nèi)存時(shí),才正式將物理內(nèi)存分配給這個(gè)進(jìn)程。所以,RES表示的是一個(gè)進(jìn)程真正在使用的物理內(nèi)存的大小,而非申請的物理內(nèi)存的大小。

iostat

  • iostat -d -k 1 3
  • -d選項(xiàng):只顯示磁盤的使用狀態(tài)
  • -k選項(xiàng):使用KB作為單位
  • 1: 采樣時(shí)間,1s
  • 3: 采樣次數(shù),3次
  • iostat輸出的第一組數(shù)據(jù)表示從系統(tǒng)啟動(dòng)到本命令執(zhí)行期間的統(tǒng)計(jì)結(jié)果
  • -x選項(xiàng)展示了更多的磁盤統(tǒng)計(jì)數(shù)據(jù)

pidof

  • 查詢一個(gè)運(yùn)行程序的PID pidof sshd
  • -x選項(xiàng):找出Shell腳本的PID
  • -s選項(xiàng): 只輸出一個(gè)PID

sar

將系統(tǒng)性能指標(biāo)信息按時(shí)間間隔數(shù)據(jù)到文件中。

lsof

lsof,即list open files 用來查看進(jìn)程打開的文件、目錄和套接字等一系列信息。

  • lsof filename: 通過文件名來定位打開該文件的進(jìn)程
  • lsof -d N:根據(jù)文件描述符定位進(jìn)程
  • lsof -p PID:查詢進(jìn)程打開了哪些文件
  • lsof -i[46] [protocol][@hostname|hostaddr][:service|port]:查看哪些程序占用端口

fuser

fuser和lsof功能對比


image

ps

查看服務(wù)器上有哪些進(jìn)程,屬于哪些用戶,消耗了多少CPU資源,占了多少內(nèi)存

  • a:顯示各終端上的所有進(jìn)程
  • u:展示進(jìn)程所屬的用戶名
  • x: 對于沒有關(guān)聯(lián)到終端上的進(jìn)程也展示出來

kill

  • kill [選項(xiàng)] [進(jìn)程號] 向進(jìn)程發(fā)送特定信號
  • kill -l 查看kill可以發(fā)出哪些信號

nohup

要想讓運(yùn)行的命令不因用戶注銷、網(wǎng)絡(luò)斷開等因素而中斷,有兩個(gè)基本思路:

  • 讓進(jìn)程對SIGHUP信號免疫。免疫宗的成員有nohup和disown。
  • 讓進(jìn)程在新的會(huì)話中運(yùn)行。會(huì)話宗的成員有setid和screen。

系統(tǒng)管理篇

uname

uname -a 展示系統(tǒng)信息

image

用戶ID和用戶組

  • 實(shí)際用戶,英文術(shù)語叫作real user id,就是登錄Shell的那個(gè)時(shí)刻所使用的用戶ID。用who am i所展示出來的就是“實(shí)際用戶”。
  • 登錄進(jìn)Shell之后,使用su或su-切換到的用戶ID,叫作有效用戶。用whoami所展示出來的就是“有效用戶”。

service

  • service [服務(wù)名] [start/stop/restart/status]
  • /etc/init.d目錄下的這些文件就是可以通過service命令掌控的服務(wù)。
  • service只是一個(gè)腳本,它所做的只是把用戶的操控動(dòng)作(start/stop/restart/status)傳遞給/etc/init.d中相應(yīng)的命令而已。

chkconfig

  • /etc/init.d/中包含所有可用的服務(wù);

  • /etc/rc.d/中設(shè)置有7個(gè)文件夾,以rcN.d形式命名,分別對應(yīng)7個(gè)運(yùn)行等級;

  • 每一個(gè)rcN.d文件夾中的文件全部是軟鏈形式,分別鏈接到/etc/init.d/中的服務(wù)上,也就表明了當(dāng)前的運(yùn)行等級對應(yīng)著哪些服務(wù);

  • rcN.d中的軟鏈文件命名規(guī)則;

    • K+整數(shù)+服務(wù)名;
    • S+整數(shù)+服務(wù)名。
    • 以K開頭的軟鏈文件,表示要關(guān)閉對應(yīng)的服務(wù)。以S開頭的軟鏈文件,表示要啟動(dòng)對應(yīng)的服務(wù)。

lsmod

可以實(shí)現(xiàn)把某些功能代碼封裝成模塊動(dòng)態(tài)地裝載到內(nèi)核中,當(dāng)內(nèi)核需要用到這個(gè)功能時(shí)再讀取使用。

關(guān)機(jī)和重啟

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 簡介 用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據(jù)使用者...
    保川閱讀 6,086評論 1 13
  • 系統(tǒng)管理與維護(hù)命令 date date(選項(xiàng))(參數(shù)) | 選項(xiàng) | 說明 | | :-------- | ...
    蓓蓓的萬能男友閱讀 4,190評論 0 5
  • 簡介 用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據(jù)使用者...
    JasonShi6306421閱讀 1,352評論 0 1
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,271評論 2 33
  • **系統(tǒng)信息 **arch 顯示機(jī)器的處理器架構(gòu)(1)uname -m 顯示機(jī)器的處理器架構(gòu)(2)uname -r...
    淡淡紫色閱讀 287評論 0 1

友情鏈接更多精彩內(nèi)容