Java Linux 语法

引言

  本文主要整理和介绍Java中,在linux下所用到的相关查询方法。

查看进程/线程

  top 命令 | ps 命令

  找出该进程内最耗费CPU的线程:可以使用ps -Lfp pid或者ps -mp pid -o THREAD, tid, time或者top -Hp pid

  下面我们来一个实例找出某个Java进程中最耗费CPU的Java线程并定位堆栈信息,用到的命令有ps、top、printf、jstack、grep

top -Hp [pid]
ps huH p  {PID}  | wc -l

  

  TIME列就是各个Java线程耗费的CPU时间,CPU时间最长的是线程ID为21553的线程,用

printf "%x\n" 21553

  得到21553的十六进制值为5431,下面会用到。    

  OK,下一步终于轮到jstack上场了,它用来输出进程21251的堆栈信息,然后根据线程ID的十六进制值grep,如下:

jstack 21251 | grep 5431 

    可以看到CPU消耗在com.wzc.manage.meta.vehicle.listener.DeviceOnlineMsgListener-1这个类的Object.wait(),就可以定位到改段代码。

 查看日志

1.查看日志常用命令
    tail:  
       -n  是显示行号;相当于nl命令;例子如下:
            tail -100f test.log      实时监控100行日志

            tail  -n  10  test.log   查询日志尾部最后10行的日志;

            tail -n +10 test.log    查询10行之后的所有日志;

    head:  

        跟tail是相反的,tail是看后多少行日志;例子如下:

            head -n 10  test.log   查询日志文件中的头10行日志;

            head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;

    cat: 

        tac是倒序查看,是cat单词反写;例子如下:

            cat -n test.log |grep "debug"   查询关键字的日志

文件相关

查找文件

  find / -name filename.txt            根据名称查找/目录下的filename.txt文件

  find . -name "*.xml"               递归查找所有的xml文件

  find . -name "*.xml" | xargs grep "hello world"      递归查询所有文件内容中包含hello world的xml文件

  grep -H 'spring' *.xml               查找所有包含spring的xml文件

  find ./ -size 0 | xargs rm -f &            删除文件大小为0的文件

  ls -l | grep 'jar'                  查找当前目录中所有的jar文件

  grep 'test' d*                    显示所有以d开头的文件中包含test的行

  grep 'test' aa bb cc               显示在aa、bb、cc、文件中匹配的test的行

  grep '[a-z]\{5\}' aa                 显示所有包含每个字符串至少有5个连续小写字符的字符串的行

文件目录

  tree a                         以树状图列出目录的内容

  ls -al                     查看文件,包含隐藏文件

复制文件

  cp source dest                          复制文件

  cp -r sourceFolder tagetFolder                   递归复制整个文件夹

  scp sourceFile romoteUserName@remoteIp:remoteAddr     远程拷贝

查询程序是否运行

  ps -ef | grep tomcat               查看所有有关tomcat的进程

  kill -9 19979                   终止线程号位19979的线程

查看端口

  netstat -tln | grep 8080             查看8080的使用情况

  lsof -i : 8080                   查看端口属于哪个程序

  netstat -ntlp                   查看当前所有tcp端口

  netstat -lanp                  查看一台服务器上面哪些服务及端口

  ps -ef |grep mysqld               查看一个服务有几个端口。比如要查看mysqld

  netstat -pnt |grep :3306 |wc            查看某一端口的连接数量,比如3306端口

posted @ 2019-07-03 21:27  JaminHuang  阅读(227)  评论(0编辑  收藏  举报