溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux下容易被忽視的命令有哪些

發(fā)布時(shí)間:2021-10-27 11:01:28 來源:億速云 閱讀:143 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章給大家分享的是有關(guān)Linux下容易被忽視的命令有哪些的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

一、前言

工作中發(fā)現(xiàn)很多同學(xué)對(duì)于Linux下的命令不太熟悉,尤其是一些功能強(qiáng)大的工具,使用者很少。正所謂工欲善其事,必先利其器。

Linux下容易被忽視的命令有哪些

二、命令

1.strace

strace用于跟蹤程序執(zhí)行過程中的系統(tǒng)調(diào)用,如跟蹤test進(jìn)程,只需要:

strace -p [test_pid] 或直接strace ./test

但如果需要:

  • 跟蹤進(jìn)程內(nèi)的線程: -f 選項(xiàng)

  • 統(tǒng)計(jì)時(shí)間段內(nèi)的各個(gè)系統(tǒng)調(diào)用次數(shù)分布:-C 選項(xiàng)

  • 過濾某些系統(tǒng)調(diào)用:-e trace選項(xiàng),如-e trace=network只顯示網(wǎng)絡(luò)相關(guān)的系統(tǒng)調(diào)用,-e  trace=open,close,read,write只顯示這4個(gè)系統(tǒng)調(diào)用,常用于只獲取某些特定的系統(tǒng)調(diào)用

  • 顯示系統(tǒng)調(diào)用的時(shí)間:-ttt選項(xiàng)

  • 詳細(xì)顯示每行的數(shù)據(jù),而不是... -s選項(xiàng)加大字符串的長度限制如-s 1024

比如,跟蹤pid為12345的進(jìn)程中所有線程的read和write系統(tǒng)調(diào)用,輸出字符串的長度限制為1024:

strace -s 1024 -f -e trace=read,write -p 12345

2.tcpdump

tcpdump是Linux上的抓包工具,如抓取eth0網(wǎng)卡上的包,使用:

sudo tcpdump -i eth0

但如果需要:

  • 文本形式顯示抓包數(shù)據(jù):-A選項(xiàng)

  • 顯示16進(jìn)制的報(bào)文數(shù)據(jù):-X選項(xiàng)

  • 輸出結(jié)果到文件中 -w選項(xiàng),如-w 1.cap將報(bào)文輸出到1.cap文件,此文件可用wireshark查看

  • 過濾主機(jī)和端口號(hào) 如host 11.11.11.11 and port  12345過濾主機(jī)ip為11.11.11.11,端口號(hào)為12345的tcp報(bào)文

比如,抓取80端口的HTTP報(bào)文,以文本形式展示:

sudo tcpdump -i any port 80 -A

這樣你就可以清楚看到GET、POST請(qǐng)求的內(nèi)容了。

3.nc

nc可以在Linux上開啟TCP Server、TCP Client、UDP Server、UDP Client。

如在端口號(hào)12345上開啟TCP Server和Client模擬TCP通信:

Server:  nc -l 127.0.0.1 12345 Client:  nc 127.0.0.1 12345

在端口號(hào)12345上開啟UDP Server和Client模擬TCP通信:

Server:  nc -ul 127.0.0.1 12345 Client:  nc -u 127.0.0.1 12345

Unix Socket通信示例:

Server:  nc -Ul /tmp/1.sock Client:  nc -U /tmp/1.sock

4.curl

curl用于模擬HTTP請(qǐng)求,在終端模擬請(qǐng)求時(shí)常用,如最基本的用法:

curl http://www.baidu.com

但如果需要:

  • 指定HTTP首部 -H選項(xiàng),如-H "Host: xx.xx.xx.xx"

  • 指定請(qǐng)求方法 -X選項(xiàng),如-X POST,-d指定post數(shù)據(jù)

  • 顯示請(qǐng)求詳細(xì)信息,包括請(qǐng)求和響應(yīng)首部 -v選項(xiàng)

  • 重定向請(qǐng)求自動(dòng)追蹤 -L選項(xiàng)

常見的curl請(qǐng)求選項(xiàng)-sSfL表示: 不顯示進(jìn)度信息,顯示錯(cuò)誤信息,發(fā)生HTTP錯(cuò)誤時(shí)失敗,自動(dòng)跟蹤重定向

5.find

find可用于查找文件,比如:

find . -name "1.txt"

表示在當(dāng)前目錄及其子目錄下查找文件名為1.txt的文件,結(jié)合xargs使用功能更加強(qiáng)大,如:

find . -type f|xargs grep 'abcd'

表示在當(dāng)前目錄及其子目錄下查找包含abcd字符串的文件行,經(jīng)常用于搜索代碼。

6.lsof

lsof命令主要用法包括:

  • sudo lsof -i :[port] 查看端口占用進(jìn)程信息,經(jīng)常用于端口綁定失敗時(shí)確認(rèn)端口被哪個(gè)進(jìn)程占用

  • sudo lsof -p [pid] 查看進(jìn)程打開了哪些文件或套接字

7.ss

Linux上的ss命令可以用于替換netstat,ss直接讀取解析/proc/net下的統(tǒng)計(jì)信息,相比netstat遍歷/proc下的每個(gè)PID目錄,速度快很多。

常見示例:

  • ss -t -a 顯示所有的TCP Sockets

  • ss -u -a 顯示所有的UDP Sockets

  • ss -x src /tmp/a.sock 顯示連接到/tmp/a.sock的進(jìn)程

  • ss -o state [state TCP-STATE] 如ss -o state established顯示所有建立的連接

8.awk/sed

awk和sed在文本處理方面十分強(qiáng)大,其中,awk按列進(jìn)行處理,sed按行進(jìn)行處理。

如采用冒號(hào)分隔數(shù)據(jù),輸出***列數(shù)據(jù)($0代表行全部列數(shù)據(jù),$1代表***列,$2代表第二列...)

awk -F ":" '{print $1}'

在awk的結(jié)果基礎(chǔ)上,結(jié)合sort、uniq和head等命令可以輕松完成頻率統(tǒng)計(jì)等功能

查看文件的第100行到第200行: sed -n '100,200p' log.txt 替換字符串中的特定子串 echo "int charset=gb2312 float"|sed "s/charset=gb2312/charset=UTF-8/g" 替換test文件每行匹配ab的部分為cd sed -i 's/ab/cd/g' test

9.screen

當(dāng)采用telnet或SSH登錄遠(yuǎn)程主機(jī)時(shí),因?yàn)榫W(wǎng)絡(luò)中斷的原因會(huì)導(dǎo)致session終止,此時(shí)會(huì)觸發(fā)SIGHUP信號(hào)使得任務(wù)終止,因此我們常常會(huì)看到有些任務(wù)采用nohup的方式運(yùn)行,避免任務(wù)被打斷。screen通過多終端的方式,巧妙地解決了這個(gè)問題。  示例:

  • screen -S test 開啟一個(gè)screen,這時(shí)擁有一個(gè)終端,所有執(zhí)行的程序都會(huì)在ps中展示

  • Ctrl+a鍵+d鍵 退出當(dāng)前screen,切到上級(jí)窗口

  • screen -ls 查看所有screen列表,如

13333.test      (Detached) 14039.test4     (Detached) 表示兩個(gè)screen,screen標(biāo)識(shí)為13333.test和14039.test4
  • screen -r [pid.]tty.host 進(jìn)入選定的screen,如screen -r 13333.test

  • exit 關(guān)閉當(dāng)前screen

感謝各位的閱讀!關(guān)于“Linux下容易被忽視的命令有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI