Linux下容易被忽視的那些命令用法

2021-08-06 07:33:15 字數 2308 閱讀 8847

工作中發現很多同學對於linux下的命令不太熟悉,尤其是一些功能強大的工具,使用者很少。正所謂工欲善其事,必先利其器。本文總結了linux下常用命令的用法,希望能夠幫助大家提公升日常開發的效率。

strace用於跟蹤程式執行過程中的系統呼叫,如跟蹤test程序,只需要:

strace -p [test_pid] 或直接strace ./test
但如果需要:

比如,跟蹤pid為12345的程序中所有執行緒的read和write系統呼叫,輸出字串的長度限制為1024:

strace -s 1024 -f -e trace=read,write -p 12345
tcpdump是linux上的抓包工具,如抓取eth0網絡卡上的包,使用:

sudo tcpdump -i eth0
但如果需要:

比如,抓取80埠的http報文,以文字形式展示:

sudo tcpdump -i any port 80 -a
這樣你就可以清楚看到get、post請求的內容了。

nc可以在linux上開啟tcp server、tcp client、udp server、udp client。

如在埠號12345上開啟tcp server和client模擬tcp通訊:

server:  nc -l 127.0.0.1 12345

client:  nc 127.0.0.1 12345

在埠號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

curl用於模擬http請求,在終端模擬請求時常用,如最基本的用法:

curl
但如果需要:

常見的curl請求選項-ssfl表示: 不顯示進度資訊,顯示錯誤資訊,發生http錯誤時失敗,自動跟蹤重定向

find可用於查詢檔案,比如:

find . -name "1.txt"
表示在當前目錄及其子目錄下查詢檔案名為1.txt的檔案,結合xargs使用功能更加強大,如:

find . -type f|xargs grep 'abcd'
表示在當前目錄及其子目錄下查詢包含abcd字串的檔案行,經常用於搜尋**。

lsof命令主要用法包括:

linux上的ss命令可以用於替換netstat,ss直接讀取解析/proc/net下的統計資訊,相比netstat遍歷/proc下的每個pid目錄,速度快很多。

常見示例:

awk和sed在文字處理方面十分強大,其中,awk按列進行處理,sed按行進行處理。

如採用冒號分隔資料,輸出第一列資料($0代表行全部列資料,$1代表第一列,$2代表第二列...)

awk -f ":" ''
在awk的結果基礎上,結合sort、uniq和head等命令可以輕鬆完成頻率統計等功能

檢視檔案的第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

當採用telnet或ssh登入遠端主機時,因為網路中斷的原因會導致session終止,此時會觸發sighup訊號使得任務終止,因此我們常常會看到有些任務採用nohup的方式執行,避免任務被打斷。screen通過多終端的方式,巧妙地解決了這個問題。 示例:

注:本文假定讀者已經知道類似top、netstat、df、vmstat等常見命令的用法,所以介紹的都是一些容易被忽視卻很實用的命令用法。本文對於這些命令進行了簡化和提煉,所有命令的完整功能需要具體參考命令手冊。

C reference 那些容易被忽視的細節

工作之餘做個小結。te為實體型別,td為推斷型別 引用建立時即初始化賦值。作為函式引數時,程式進入函式就已經初始化完畢。注意區分值與值的引用。一旦創造了te t右值引用便有了別名,t的行為變成左值 傳入td 模板為左引用,但t列印出的型別依然為右值引用是別名,構造好的引用可當作自身,引用之間的非初始...

容易被忽視的synchronized

public static final synchronized callmanager getinstance return minstance synchronized,多執行緒訪問同步鎖,具有以下特性 1 同一時間只允許乙個執行緒訪問 2 在乙個執行緒訪問synchronized 塊時,另乙個...

sql 容易被忽視的點

1 dual select查詢語句只有 select 就可以,但為了規範,湊結構,可以加個 dual 例 select now from dual 這個概念是oracle中的。在mysql中可寫可不寫。2 drop,delete truncate 的區別drop用於刪除資料庫,資料表的字段,刪除表 ...