Arthas中help、history、keymap、options基础命令应用
1. 创建实验资源
开始实验之前,您需要先创建实验相关资源。
- 在实验室页面,单击创建资源。
- (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、子用户信息等)。
说明:资源创建过程需要3~5分钟(视资源不同开通时间有所差异,ACK等资源开通时间较长)。完成实验资源的创建后,您可以在云产品资源列表查看已创建的资源信息,例如:子用户名称、子用户密码、AK ID、AK Secret、资源中的项目名称等。
实验环境一旦开始创建则进入计时阶段,建议学员先基本了解实验具体的步骤、目的,真正开始做实验时再进行创建。
资源创建成功,可在左侧的资源卡片中查看相关资源信息以及RAM子账号信息
2. 启动arthas-demo
本步骤指导您如何下载并启动jar包。
- 执行如下命令,下载arthas-demo.jar,再用java -jar命令启动。
wget https://arthas.aliyun.com/arthas-demo.jar java -jar arthas-demo.jar
arthas-demo是一个很简单的程序,它随机生成整数,再执行因式分解,把结果打印出来。如果生成的随机数是负数,则会打印提示信息。
3. 启动arthas-boot
本步骤指导您如何启动arthas-boot。
- 点击页面右上角 号,新建终端。
- 执行如下命令,在新终端里,下载arthas-boot.jar,再用java -jar命令启动。
wget https://arthas.aliyun.com/arthas-boot.jar java -jar arthas-boot.jar
arthas-boot是Arthas的启动程序,它启动后,会列出所有的Java进程,用户可以选择需要诊断的目标进程。
- 选择第一个进程,输入 1 ,再按Enter/回车:
1
- Attach成功之后,会打印Arthas LOGO。输入 help 可以获取到更多的帮助信息。
help
4. Arthas Help命令教程
- help命令。
help命令可以查看所有命令的帮助信息。
help
- 查看具体命令的help信息。
比如查看sysprop命令的帮助信息:
help sysprop
5. Arthas history命令教程
- history命令。
通过history命令可以打印命令历史。
history
- 使用参考。
history -h
- 显示指定数目的历史。
history 5
- 清除历史。
history -c
6. Arthas keymap命令教程
- keymap命令。
通过keymap命令可以输出当前的快捷键映射表。
keymap
- 默认的快捷键。
快捷键 |
快捷键说明 |
命令名称 |
命令说明 |
"\C-a" |
ctrl + a |
beginning-of-line |
跳到行首 |
"\C-e" |
ctrl + e |
end-of-line |
跳到行尾 |
"\C-f" |
ctrl + f |
forward-word |
向前移动一个单词 |
"\C-b" |
ctrl + b |
backward-word |
向后移动一个单词 |
"\e[D" |
键盘左方向键 |
backward-char |
光标向前移动一个字符 |
"\e[C" |
键盘右方向键 |
forward-char |
光标向后移动一个字符 |
"\e[B" |
键盘下方向键 |
next-history |
下翻显示下一个命令 |
"\e[A" |
键盘上方向键 |
previous-history |
上翻显示上一个命令 |
"\C-h" |
ctrl + h |
backward-delete-char |
向后删除一个字符 |
"\C-?" |
ctrl + shift + / |
backward-delete-char |
向后删除一个字符 |
"\C-u" |
ctrl + u |
undo |
撤销上一个命令,相当于清空当前行 |
"\C-d" |
ctrl + d |
delete-char |
删除当前光标到行尾的所有字符 |
"\C-k" |
ctrl + k |
kill-line |
光标向前移动一个字符 |
"\C-i" |
ctrl + i |
complete |
自动补全,相当于敲TAB |
"\C-j" |
ctrl + j |
accept-line |
结束当前行,相当于敲回车 |
"\C-m" |
ctrl + m |
accept-line |
结束当前行,相当于敲回车 |
"\C-w" |
backward-delete-word |
||
"\C-x\e[3~" |
backward-kill-line |
||
"\e\C-?" |
backward-kill-word |
任何时候使用 tab键,会根据当前的输入给出提示。命令后敲 - 或 -- ,然后按 tab 键,可以展示出此命令具体的选项。
- 自定义快捷键。首先退出Arthas, 在当前用户目录下新建$USER_HOME/.arthas/conf/inputrc文件,可加入自定义配置。
exit
- 创建inputrc文件。
mkdir -p /root/.arthas/conf/ cd /root/.arthas/conf/ vi inputrc
- 将如下信息粘贴至inputrc文件中。
"\C-a": beginning-of-line "\C-e": end-of-line "\C-f": forward-word "\C-b": backward-word "\e[D": backward-char "\e[C": forward-char "\e[B": next-history "\e[A": previous-history "\C-h": backward-delete-char "\C-?": backward-delete-char "\C-u": undo "\C-d": delete-char "\C-k": kill-line "\C-i": complete "\C-j": accept-line "\C-m": accept-line "\C-w": backward-delete-word "\C-x\e[3~": backward-kill-line "\e\C-?": backward-kill-word
- 按ESC键和:wq,保存并退出。
- 重新连接arthas。
cd java -jar arthas-boot.jar
1
- 最后执行下面命令查看效果。
keymap | grep C-h
- 后台异步命令相关快捷键。
ctrl + c: 终止当前命令 ctrl + z: 挂起当前命令,后续可以 bg/fg 重新支持此命令,或 kill 掉 ctrl + a: 回到行首 ctrl + e: 回到行尾
7. Arthas options命令
- options命令。
全局开关。
名称 |
默认值 |
描述 |
unsafe |
false |
是否支持对系统级别的类进行增强,打开该开关可能导致把JVM搞挂,请慎重选择! |
dump |
false |
是否支持被增强了的类dump到外部文件中,如果打开开关,class文件会被dump到/${application working dir}/arthas-class-dump/目录下,具体位置详见控制台输出 |
batch-re-transform |
true |
是否支持批量对匹配到的类执行retransform操作 |
json-format |
false |
是否支持json化的输出 |
disable-sub-class |
false |
是否禁用子类匹配,默认在匹配目标类的时候会默认匹配到其子类,如果想精确匹配,可以关闭此开关 |
support-default-method |
true |
是否支持匹配到default method,默认会查找interface,匹配里面的default method。参考 #1105 |
save-result |
false |
是否打开执行结果存日志功能,打开之后所有命令的运行结果都将保存到~/logs/arthas-cache/result.log中 |
job-timeout |
1d |
异步后台任务的默认超时时间,超过这个时间,任务自动停止;比如设置 1d, 2h, 3m, 25s,分别代表天、小时、分、秒 |
print-parent-fields |
true |
是否打印在parent class里的filed |
- 查看所有的options。
options
- 获取option的值。
options json-format
默认情况下json-format为false,如果希望watch/tt等命令结果以json格式输出,则可以设置json-format为true。
- 设置指定的option。
- 例如,想打开执行结果存日志功能首先查看日志,发现无记录。
cat /root/logs/arthas-cache/result.log
- 输入如下命令即可激活记录日志功能。
options save-result true
- 稍候片刻,再次查看,发现出现记录。
cat /root/logs/arthas-cache/result.log
实验链接:https://developer.aliyun.com/adc/scenario/a5669ba2d9ea4e149b8172b27717e498