![linux中的命令是什么,或者知道当前命令状态(进程状态)的实用程序](https://linux22.com/image/72481/linux%E4%B8%AD%E7%9A%84%E5%91%BD%E4%BB%A4%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%8C%E6%88%96%E8%80%85%E7%9F%A5%E9%81%93%E5%BD%93%E5%89%8D%E5%91%BD%E4%BB%A4%E7%8A%B6%E6%80%81%EF%BC%88%E8%BF%9B%E7%A8%8B%E7%8A%B6%E6%80%81%EF%BC%89%E7%9A%84%E5%AE%9E%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
例如,当我编写telnet abc.wtf
telnet 会话时,它开始说尝试连接某个 IP,但是是否有一个命令我可以输入并了解当前正在发生什么进程来完成该任务。可能是任何信息,我已经知道ps
ps aux|grep telnet
>对于上面的示例,
top
htop
所有这些都只提供有关线程/进程的信息,但不提供有关进程发生的背景或详细信息以及它取得了多少成果
答案1
您可以通过多种方式了解有关 telnet 等程序正在执行的操作的更多信息。按难度顺序:
首先,您可以使用名为 Wireshark 的程序来分析 telnet 发送和接收的实际数据包。
其次,你可以通过GDB(GNU Debugger)运行程序来观察程序一步步做了什么。这可能会减慢你的程序速度严重地。
第三,您可以阅读程序的实际源代码,以了解如果传递特定参数,程序会做什么。
我故意对如何使用这两个程序来实现指定目标含糊其辞,因为他们的手册可以比我更好地描述它。
Wireshark 手册:https://www.wireshark.org/docs/wsug_html_chunked/
GDB手册:http://sourceware.org/gdb/current/onlinedocs/gdb/
至于第三个选项,除非您已经知道 telnet 实现所使用的编程语言,否则不要尝试。
答案2
除非命令本身提供反馈,例如使用 -v 或 --verbose 开关或某种日志记录(telnet 不提供),否则答案是否定的。
或者不是真的。您可以使用strace telnet abc.wtf
,但我认为这不是您想要的。