我已经在 virtualbox 上安装了 Ubuntu 14.04,我需要能够读取 shell 命令的源代码并修改任何命令?有什么帮助吗?我在哪里可以找到 shell 命令?在哪个目录中?
答案1
不同的 shell 命令来自不同的地方,但是下面的过程可能对其中的大部分命令都有效:
(注:您确实不是需要 root 权限才能完成所有这一切。
- 找出命令文件所在的位置,例如在 bash shell 中查找
which
、尝试type which
,甚至which which
(更一般地说,,which ...
其中...
代表您希望查找的任何命令)。 - 接下来,您将需要查看哪个软件包通常提供此功能。
dpkg -S /path/name
可以为您提供此功能,或者,结合步骤 1 和 2:,dpkg -S $(which ...)
例如dpkg -S $(which which)
。在这种情况下,我得到:debianutils: /usr/bin/which
- 最后,您要获取实际源代码。(注意:
apt-get update
在执行此操作之前,您可能需要运行,特别是如果您收到类似这样的错误E: You must put some 'source' URIs in your sources.list
,这至少在我的情况下,看起来有点像是干扰性错误消息。)这可以通过完成apt-get source ...
,例如apt-get source debianutils
(可以结合步骤和执行apt-get source $(dpkg -S $(which which) | cut -d: -f1)
)。
从那里开始,您应该在您开始的任何目录中有一些新文件和目录(因此从适当的目录开始),包含适当的源。
另一个示例,单行形式:
cmd_to_get=ls; apt-get source $(dpkg -S $(which $cmd_to_get) | cut -d: -f1)
抓取源代码(以及与之相关ls
的一堆其他内容)。coreutils
从那里,您可以进一步玩。
如果你想构建一些东西,请参阅此askubuntu 上的相关问题。
快乐黑客!