如何检查“watch”命令的执行细节?

如何检查“watch”命令的执行细节?

为了最大限度地学习,我最终从以下位置克隆了整个 Linux 源代码:github。我想检查一下“watch”命令是如何在其中实现的,但是当我尝试 grep“watch”时,代码实在是太庞大了,无法返回任何有用的信息。我想知道你们中是否有人可以帮忙。

答案1

此外。

它位于 procps 包中。

例如,如果您搜索 ubuntu 的手册页,它通常会显示哪个软件包提供了代码。(像这样)

源代码可以在这里找到(这里)

直接下载: http://procps.sourceforge.net/procps-3.2.8.tar.gz

或者你可以使用 dpkg 来查看哪个包拥有某个特定文件,如下所示:

dpkg -S /usr/bin/watch


查找任何命令的源代码

因此,如果您想查看top源代码,您可以:

whereis top

在此处输入图片描述

二进制文件top是“/usr/bin/top”,要找到拥有该文件的包:

dpkg -S /usr/bin/top

在此处输入图片描述

确保:

sudo apt-get install dpkg-dev

然后您可以通过以下方式找到包的源代码:

sudo apt-get source procps
sudo apt-get source gedit
sudo apt-get source <package-name>

它将在当前目录中下载一个 tar 文件并解压:

apt-get 源的结果

然后我们应该能够找到其工作原理的源代码:

如何下载命令的源代码

答案2

也许您可以从 开始strace watch

来自strace 的手册页

   strace is a useful diagnostic, instructional, and debugging tool.  Sys‐
   tem  administrators,  diagnosticians  and trouble-shooters will find it
   invaluable for solving problems with programs for which the  source  is
   not  readily available since they do not need to be recompiled in order
   to trace them.  Students, hackers and the overly-curious will find that
   a  great  deal  can  be  learned about a system and its system calls by
   tracing even ordinary programs.  And programmers will find  that  since
   system  calls  and  signals  are  events that happen at the user/kernel
   interface, a close examination of this boundary is very useful for  bug
   isolation, sanity checking and attempting to capture race conditions.

对于实际的实现细节,你最终必须依赖源代码。你可以借助以下工具:中央政治局标签

答案3

我认为链接可能会有帮助。我只是在 Google 上搜索 watch.c

相关内容