Arthas 应用诊断利器学习及使用(二) 基础命令cls,session,version,history

本文内容基于arthas 3.5.1 版本,介绍基础命令cls,session,version,history的使用及实现。

一.cls命令

清空当前屏幕区域。

image.png

文件位于com.taobao.arthas.core.command.basic1000.ClsCommand.java,根据上图所示。
在非终端模式下,将会返回Command 'cls' is only support tty session.

否则将会执行RenderUtil.cls()。该方法的作用实际返回\u001b[H\u001b[2J为Ansi Escape Codes表示清屏。

二.session命令

查看当前会话的信息,显示当前绑定的pid以及会话id。\

image.png
文件位于com.taobao.arthas.core.command.basic1000.SessionCommand.java
如果有配置tunnel server,还会打印代理id、tunnel服务器的url以及连接状态。
使用了staturl做统计,还会显示statUrl地址。

三.version命令

输出当前目标 Java 进程所加载的 Arthas 版本号。
文件位于com.taobao.arthas.core.command.basic1000.VersionCommand.java\

image.png
执行ArthasBanner.version()获取版本号。
/com/taobao/arthas/core/res/version路径下获取版本号,该文件会在执行as.package.sh打包脚本的时候生成。
若不存在,则通过ArthasBanner.class.getPackage().getImplementationVersion()从打包的pom.xml文件中获取版本号。

四.history命令

打印命令历史,当前执行的history命令也会被显示。

参数名称 参数缩写 参数说明 必填项 示例
–clear -c 清除历史记录 可选 history -c
n 显示最近执行的n条命令 可选 history 3

例子

清空
history -c
查看最近执行的3条指令
history 3

文件位于com.taobao.arthas.core.command.basic1000.HistoryCommand.java
具体实现可以看HistoryManager接口的实现类HistoryManagerImpl
终端模式下实现在TermImpl类中。

System.getProperty("user.home") + File.separator + ".arthas" + File.separator + "history"
复制代码

历史记录存放在/Users/用户/.arthas/history文件中。

history命令会通过history的文件获取执行过的历史命令,所以可以看到这台服务器上所有的历史命令。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享