場見操作
查看內存大小
//查看系統中文件的使用情況
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
- 某個字符串出現次數
-
- 使用 -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]