项目中用到的Linux命令
生活随笔
收集整理的這篇文章主要介紹了
项目中用到的Linux命令
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
利用 lsof -p +進程 id 查看該進程打開的文件描述符
利用lsof -i : +端口號? 查看進程的信息
有些時候需要確定進程內部當前運行了多少線程,查詢方法如下:
?? 1)通過pstree命令(根據pid)進行查詢: [root@xqsj_web2 ~]# ps -ef|grep java???? //查找進程pid(比如這里查找java(tomcat)進程的pid) [root@xqsj_web2 ~]# pstree -p 19135 java(19135)─┬─{java}(19136) ????????????├─{java}(19137) ?????????????....... ????????????└─{java}(13578) [root@xqsj_web2 ~]# pstree -p 19135|wc -l 46?????//由于第一行包括了2個線程,所以該進程下一共有47個線程! ?? 或者使用top命令查看(可以查看到線程情況) [root@xqsj_web2 ~]# top -Hp 19135?????? //下面結果中的Tasks 對應的47即是線程的個數 ?? top?- 14:05:55 up 391 days, 20:59,? 1 user,? load average: 0.00, 0.00, 0.00 Tasks:? 47 total,?? 0 running,? 47 sleeping,?? 0 stopped,?? 0 zombie Cpu(s):? 0.2%us,? 0.1%sy,? 0.0%ni, 99.7%id,? 0.0%wa,? 0.0%hi,? 0.0%si,? 0.0%st Mem:?? 8058056k total,? 7718656k used,?? 339400k?free,?? 354216k buffers Swap:??????? 0k total,??????? 0k used,??????? 0k?free,? 4678160k cached ?? ??PID USER????? PR? NI? VIRT? RES? SHR S %CPU %MEM??? TIME+? COMMAND?????????????????????????????????????????????????????????????????????? 19135 root????? 20?? 0 5339m 632m 5476 S? 0.0? 8.0?? 0:00.00 java?????????????????????????????????????????????????????????????????????????? 19136 root????? 20?? 0 5339m 632m 5476 S? 0.0? 8.0?? 0:00.84 java?????????????????????????????????????????????????????????????????????????? ...... ?? 2)根據ps命令直接查詢: [root@xqsj_web2 ~]# ps hH p 19135| wc -l 47 ?? 3)通過查看/proc/pid/status proc偽文件系統,它駐留在/proc目錄,這是最簡單的方法來查看任何活動進程的線程數。/proc目錄以可讀文本文件形式輸出,提供現有進程和系統硬件 相關的信息如CPU、中斷、內存、磁盤等等。 ?? [root@xqsj_web2 ~]# cat /proc/19135/status Name:?? java State:? S (sleeping) Tgid:?? 19135 Pid:??? 19135 PPid:?? 1 TracerPid:? 0 ........ Threads:??? 47????????????????????//這里顯示的是進程創建的總線程數。輸出表明該進程有47個線程。 SigQ:?? 1/62793 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 ....... voluntary_ctxt_switches:??? 1 nonvoluntary_ctxt_switches: 1 ?? 或者,也可以在/proc//task中簡單的統計子目錄的數量,如下所示: [root@xqsj_web2 ~]# ll /proc/19135/task 總用量 0 dr-xr-xr-x 6 root root 0 6月? 14 17:57 11553 ...... [root@xqsj_web2 ~]# ll /proc/19135/task|wc -l 48 ?? 這是因為,對于一個進程中創建的每個線程,在/proc/<pid>/task中會創建一個相應的目錄,命名為其線程ID。由此在/proc/<pid>/task中目錄的總數表示在進程中線程的數目。netstat - atulnp會顯示所有端口和所有對應的程序,用grep管道可以過濾出想要的字段
-a :all,表示列出所有的連接,服務監聽,Socket資料
-t :tcp,列出tcp協議的服務
-u :udp,列出udp協議的服務
-n :port number, 用端口號來顯示
-l :listening,列出當前監聽服務
-p :program,列出服務程序的PID
轉載于:https://www.cnblogs.com/developing/p/10888539.html
總結
以上是生活随笔為你收集整理的项目中用到的Linux命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mybatis和Spring整合
- 下一篇: linux常用管理命令