• 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
    " 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端口

  • 相关阅读:
    都不敢上CSDN了
    什么是函数(function)?
    今天3/8妇女节
    一件有意思的事情:关于std::string和std::auto_ptr
    转两篇Link相关的文章
    DevIL Downloads
    状态模式(State Pattern)
    访问者模式(Visitor Pattern)
    羊皮卷的故事第二章
    备忘录模式(Memento Pattern)
  • 原文地址:https://www.cnblogs.com/huanghzm/p/11129207.html
Copyright © 2020-2023  润新知