linux常見命令

場見操作

查看內存大小

//查看系統中文件的使用情況

df -h

//查看當前目錄下各個文件及目錄佔用空間大小

du -sh *

//方法一:切換到要刪除的目錄,刪除目錄下的所有文件

rm -f * /rm -rf *

//方法二:刪除logs文件夾下的所有文件,而不刪除文件夾本身

rm -rf log/*

查找文件

查找文件指定內容

  • grep “內容關鍵字” filename
    • 查找指定內容
      • (1)grep ‘test’ d*  #顯示所有以d開頭的文件中包含 test的行
      • (2)grep ‘test’ aa.txt bb.txt cc.txt    #顯示在aa,bb,cc文件中包含test的行
      • (3)grep ‘[a-z]{5}’ aa   #顯示所有包含每行字符串至少有5個連續小寫字符的字符串的行
      • (4)grep magic /usr/src  #顯示/usr/src目錄下的文件(不含子目錄)包含magic的行
      • (5)grep -r magic /usr/src  #顯示/usr/src目錄下的文件(包含子目錄)包含magic的行
      • (6)grep -w pattern files :只匹配整個單詞,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
    • grep -C 5 foo file 顯示file文件裏匹配foo字串那行以及上下5行
    • grep -B 5 foo file 顯示foo及前5行
    • grep -A 5 foo file 顯示foo及後5行
    • options
      • -c:只輸出匹配行的計數。
      • -i:不區分大小寫
      • -h:查詢多文件時不顯示文件名。
      • -l:查詢多文件時只輸出包含匹配字符的文件名。
      • -n:顯示匹配行及行號。
      • -s:不顯示不存在或無匹配文本的錯誤信息。
      • -v:顯示不包含匹配文本的所有行。
    • pattern
      • \: 忽略正則表達式中特殊字符的原有含義。
      • ^:匹配正則表達式的開始行。
      • $: 匹配正則表達式的結束行。
      • <:從匹配正則表達 式的行開始。
      • >:到匹配正則表達式的行結束。
      • [ ]:單個字符,如[A]即A符合要求 。
      • [ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求 。
      • .:所有的單個字符。
      • * :有字符,長度可以爲0。
    • grep -o objStr filename|wc -l
      • 某個字符串出現次數
      1. 使用 -E ‘pattern1.*pattern2’
    • grep命令本身不提供AND功能。但是,使用 -E 選項可以實現AND操作。
    • grep -E ‘pattern1.*pattern2’ filename
      • grep -E ‘123|abc’ filename // 找出文件(filename)中包含123或者包含abc的行
    • grep -E ‘pattern1.*pattern2|pattern2.*pattern1’ filename

查找文件

  • 按照文件名查找
    • (1)find / -name httpd.conf  #在根目錄下查找文件httpd.conf,表示在整個硬盤查找
    • (2)find /etc -name httpd.conf  #在/etc目錄下文件httpd.conf
    • (3)find /etc -name ‘srm’  #使用通配符*(0或者任意多個)。表示在/etc目錄下查找文件名中含有字符串‘srm’的文件
    • (4)find . -name ‘srm*’   #表示當前目錄下查找文件名開頭是字符串‘srm’的文件
  • 按照文件特徵查找
    • (1)find / -amin -10   # 查找在系統中最後10分鐘訪問的文件(access time)
    • (2)find / -atime -2   # 查找在系統中最後48小時訪問的文件
    • (3)find / -empty   # 查找在系統中爲空的文件或者文件夾
    • (4)find / -group cat   # 查找在系統中屬於 group爲cat的文件
    • (5)find / -mmin -5   # 查找在系統中最後5分鐘裏修改過的文件(modify time)
    • (6)find / -mtime -1   #查找在系統中最後24小時裏修改過的文件
    • (7)find / -user fred   #查找在系統中屬於fred這個用戶的文件
    • (8)find / -size +10000c  #查找出大於10000000字節的文件(c:字節,w:雙字,k:KB,M:MB,G:GB)
    • (9)find / -size -1000k   #查找出小於1000KB的文件
  • 使用混合查找方式查找文件
    • (1)find /tmp -size +10000c -and -mtime +2   #在/tmp目錄下查找大於10000字節並在最後2分鐘內修改的文件
    • (2)find / -user fred -or -user george   #在/目錄下查找用戶是fred或者george的文件文件
    • (3)find /tmp ! -user panda  #在/tmp目錄中查找所有不屬於panda用戶的文件

刪除文件

刪除文件夾: rm -rf dir

  • rm -rf a.txt b.txt c.txt
  • rm -rf a.txt
  • rm -rf *

#刪除keep文件之外的所有文件

  • rm -rf !(keep) #刪除keep文件之外的所有文件

rm -rf !(folder)

#刪除folder1和folder2文件之外的所有文件

rm -rf !(folder1 | folder2)

移動

mv build/ config/ shell/ src/ static/ index.html package.json README.md -t ido-cp-guide/

  • 同時移動build/ config/ shell/ src/ static/ index.html package.json README.md 內容到ido-cp-guide 目錄。

選擇操作

& 表示任務在後臺執行,如要在後臺運行redis-server,則有 redis-server &

&& 表示前一條命令執行成功時,才執行後一條命令 ,如 echo '1‘ && echo ‘2’

| 表示管道,上一條命令的輸出,作爲下一條命令參數,如 echo ‘yes’ | wc -l

|| 表示上一條命令執行失敗後,才執行下一條命令,如 cat nofile || echo “fail”

less more

網絡連通

curl

  • curl -H “Content-Type:application/json” -H “deviceid:11” -X POST --data ‘{“sysCode”:“123”,“cityCode”:“755”,“orgCode”:“755G”}’ url -v

telnet

  • telnet ip port

ping

  • ping ip

查看端口

  • netstat -tunlp

查看ip

  • ifconfig
  • ip addr

部署

nohup java -jar onemilion.jar &

  • 優化方法一:
  • java -jar xxx.jar &
  • & 表示後臺運行,ssh窗口不被鎖定,但是關閉窗口時,程序還是會退出
  • 優化方法二:
  • nohup java -jar xxx.jar &
  • nohup 表示不掛斷運行命令行,當賬號退出或關閉終端時,程序仍然運行
  • 當用 nohup 命令執行作業時,該作業的所有輸出被重定向到nohup.out的文件中,除非另外指定了輸出文件。
  • 優化方法三:
  • nohup java -jar xxx.jar >/usr/local/temp.txt &
  • > /usr/local/temp.txt 表示將所有啓動的日誌信息記錄到temp.txt文件中
  • 原文:https://blog.csdn.net/husong_/article/details/80811224

內存監控

top操作

  • jvm排查
    • 找到具體進程

      • top | grep “java”
    • top -c

    • 找到線程id

      • ps -mp 26178 -o THREAD,tid,time | sort -rn | more (sort -rn 以數值的方式進行逆序排列)
    • 找出幾個佔用cpu時間比較高的TID,進行16進制轉換

      • printf “%x\n” 26217
    • 再使用jstack命名查詢是哪個線程

      • jstack 55273(pid)|grep -100 d7fc
    • ps -ef | grep httpd :

檢查httpd進程是否存在
* jps
* top -H -p查看某個進程內部線程佔用情況分析
* 總結
* jstack 打印線程狀態,分析線程負載狀況:先通過top命令找到CPU佔用資源較高的進程pid,然後同top -Hp 23344查看該進程中各個線程的CPU使用情況,可以看出pid爲25077的線程佔了較多的cpu資源,利用jstack命令可以繼續查看該線程當前的堆棧狀態。在top命令中,已經獲取到了佔用cpu資源較高的線程pid,將該pid轉成16進制的值,在thread dump中每個線程都有一個nid,找到對應的nid即可;

  • 按P – 以 CPU 佔用率大小的順序排列進程列表
  • 按M – 以內存佔用率大小的順序排列進程列表
  • top -d 1 -n 1000
    • 這一行命令表示延遲1秒爲週期,打印1000次。
  • 運行中參數
    • s – 改變畫面更新頻率
    • l – 關閉或開啓第一部分第一行 top 信息的表示
    • t – 關閉或開啓第一部分第二行 Tasks 和第三行 Cpus 信息的表示
    • m – 關閉或開啓第一部分第四行 Mem 和 第五行 Swap 信息的表示
    • N – 以 PID 的大小的順序排列表示進程列表
    • P – 以 CPU 佔用率大小的順序排列進程列表
    • M – 以內存佔用率大小的順序排列進程列表
    • h – 顯示幫助
    • n – 設置在進程列表所顯示進程的數量
    • q – 退出 top
    • s – 改變畫面更新週期

ps

  • 自由命令
    • 按內存升序排列:ps aux --sort=rss
    • 按CPU降序排列:ps aux --sort=-%cpu
    • ps aux --sort=-%mem
      • 按內存降序
    • ps aux --sort=-%cpu
  • ps+sort
    • ps -eo rss,pmem,pcpu,vsize,args | sort -k 1 -r -n | less
    • 按內存使用進行降序排列
    • ps , -e 是顯示所有進程, -o是定製顯示信息的格式
    • rss: resident set size, 表示進程佔用RAM(內存)的大小,單位是KB
      
    • pmem: %M, 佔用內存的百分比
      
    • pcpu:%C,佔用cpu的百分比
      
    • vsize: 表示進程佔用的虛擬內存的大小,KB
      
    • args:進程名(command)
      
    • sort命令對ps結果進行排序
      
    • -k 1 :按第一個參數 rss進行排
      
    • -r:逆序
      
    • -n:numeric,按數字來排序
      

ps命令:可以查看進程的瞬間信息。

top命令:可以持續的監視進程的信息。

jmap

  • jmap -heap [pid]
    • 就可查看整個JVM中內存的狀況
  • jmap -histo
    • 即可查看jvm堆中對象的詳細佔用情況
  • jmap -dump:format=b,file=文件名 [pid]
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章