Linux后臺研發(fā)超實(shí)用命令總結(jié)

1.概述

計(jì)算機(jī)領(lǐng)域水太深了,不可能什么都記住,所以只需要理解并記住核心的原理,其他的交給網(wǎng)絡(luò),用的時(shí)候查一下就可以了。因此整理了平時(shí)工作中自己覺得好用的命令。

2.系統(tǒng)相關(guān)

  • 查看手冊命令

man

  • 只查看當(dāng)前下一級目錄占用大小

du --max-depth=1 -h

  • 查看某個(gè)進(jìn)程是否在運(yùn)行

ps -ef | grep prog | grep -v grep
pgrep prog

  • 查看內(nèi)存統(tǒng)計(jì)

free -m

  • 查看系統(tǒng)任務(wù)運(yùn)行情況(類似window的任務(wù)管理器)

top

  • 根據(jù)內(nèi)存或者CPU占用對進(jìn)程排序
  • 內(nèi)存排序:執(zhí)行top,然后按“shift + m”,這時(shí)進(jìn)程就會按照內(nèi)存占用從大到小排序。
  • CPU排序:執(zhí)行top即可,top默認(rèn)是按照CPU占用排序,也可以執(zhí)行“shift + p”從內(nèi)存大小排序轉(zhuǎn)換為CPU排序。
  • 查看系統(tǒng)CPU占用情況

mpstat -P ALL 2

  • 查看系統(tǒng)io,內(nèi)存,swap分區(qū),cpu等匯總統(tǒng)計(jì)信息

vmstat 2

  • 查看系統(tǒng)tcp連接情況

netstat -anpt

3.進(jìn)程相關(guān)

  • 殺掉所有某個(gè)程序的所有進(jìn)程

killall program

  • 強(qiáng)殺一個(gè)指定pid的進(jìn)程,江湖俗稱“酒殺”,一殺必中

kill -9 pid

  • 查看某個(gè)程序的所有進(jìn)程

pidof program

  • 查看指定pid的進(jìn)程的運(yùn)行時(shí)加載的環(huán)境變量

cat /proc/pid/environ | tr -s '\0' '\n'

  • 通過pid查看對應(yīng)的執(zhí)行文件(這對查看來歷不明的進(jìn)程有幫助)

lsof -p pid | grep txt

  • 查看指定pid的進(jìn)程內(nèi)存地址空間映射(查看進(jìn)程運(yùn)行時(shí)實(shí)際加載的是那個(gè)庫)

pmap -x pid

  • 查看程序的符號表(排查編譯連接失敗,調(diào)用異常等問題很好用)

nm file
readelf -s file

  • 查看指定pid的進(jìn)程線程關(guān)系樹(查看某個(gè)開源程序是否是多線程模型)

pstree -p pid

  • 查看指定pid的進(jìn)程打開的文件

lsof -p pid

  • 查看指定pid的進(jìn)程當(dāng)前運(yùn)行時(shí)的堆棧

pstack pid

  • 查看指定pid的進(jìn)程當(dāng)前在執(zhí)行的系統(tǒng)調(diào)用

strace -p pid

  • 查看指定pid的進(jìn)程當(dāng)前在執(zhí)行的庫調(diào)用

ltrace -p pid

  • 查看指定程序依賴的動(dòng)態(tài)鏈接庫

ldd program

4.運(yùn)營調(diào)試相關(guān)

  • 從一堆文件中查找包含某個(gè)字符串的文件(編譯一堆文件時(shí)有變量沖突時(shí)特別好用,可以快速定位在那些文件中聲明了相同的變量)

find ./ -type f -name ".c" -o -name ".h" | xargs grep "strings"

  • 查看文件被那些進(jìn)程打開(對查看庫被那些進(jìn)程使用,在你要修改一個(gè)基礎(chǔ)庫在評估影響范圍的時(shí)候就很好用)

fuser -v filename
lsof filename

  • 對字符串求MD5值或者SHA1值(驗(yàn)證程序MD5和SHA1算法時(shí)特別有用)

echo -n "abcde123" | md5sum
echo -n "abcde123" | sha1sum

  • linux shell中如何快速查詢歷史命令

ctrl + r

  • 查看執(zhí)行歷史帶詳細(xì)時(shí)間

export HISTTIMEFORMAT="%F %T whoami "
history

  • c++函數(shù)符號轉(zhuǎn)換成c模式工具

c++filt

  • gdb設(shè)置打印完整字符串

set print element 0

  • scp跨主機(jī)遠(yuǎn)程拷貝

scp src user@host:dest

  • ssh登錄遠(yuǎn)程主機(jī)

ssh user@host

  • 返回當(dāng)前用戶的home目錄

cd
cd ~

  • 返回上一個(gè)目錄

cd -

  • 刪除當(dāng)前輸入的命令

ctrl + u

  • 中斷當(dāng)前命令的輸入或者中斷當(dāng)前在執(zhí)行的前臺程序

ctrl + c

  • 強(qiáng)制退出當(dāng)前命令的執(zhí)行,有時(shí)執(zhí)行ctrl + c無用時(shí)采用

ctrl + \

  • 實(shí)時(shí)查看日志文件的輸出(只要日志有更新就能看到且是實(shí)時(shí)的)

tail -20f /home/xxx/log/yy.log

  • 測試web服務(wù)工具

curl
wget

  • 打包壓縮命令

tar -zcvf test.tar ./*

  • 解包解壓命令

tar -zxvf test.tar

5.寫在最后

后續(xù)我會寫一系列關(guān)于Linux后端研發(fā)的文章,為大家展示如何一步一步構(gòu)建一個(gè)真正的Linux后端集群服務(wù),記錄一個(gè)“Linux C/C++后端研發(fā)菜鳥成長記”。

傳送門 后端研發(fā)菜鳥成長記 第一章 入門 之 云服務(wù)器

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

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

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