![我如何才能找到 Linux 命令的源代码?](https://linux22.com/image/1132144/%E6%88%91%E5%A6%82%E4%BD%95%E6%89%8D%E8%83%BD%E6%89%BE%E5%88%B0%20Linux%20%E5%91%BD%E4%BB%A4%E7%9A%84%E6%BA%90%E4%BB%A3%E7%A0%81%EF%BC%9F.png)
我经常会遇到有趣的 Linux 命令,这些命令让我想知道它们实际上在做什么?
是的,他们可能会“强制删除依赖项”、“安装程序”以及做很多其他事情,但我想知道如何他们正在做。
查看源代码似乎是正确的做法,但我应该从哪里获取它呢?
我猜它们是用 C 语言编写的?
编辑:我不是在谈论使用 安装的软件包apt-get
。我正在寻找 linux/unix 命令的源代码。
答案1
句法:apt-get source command-name
例子:apt-get source netstat
如果找不到:
将源 URI 添加到 sources.lst
cat /etc/apt/sources.list
deb-src http://ftp.de.debian.org/debian lenny main
apt-get update
答案2
我认为您在谈论 GNU/Debian 命令。Linux 没有命令。大多数 Linux 发行版使用 GNU 实用程序(这就是我们称它们为“GNU/Linux”)和它们自己的命令(例如 Debian 的 APT 系统)。例如,在 Ubuntu 中,诸如cp
、、cd
之类的命令mv
是 GNU 核心实用程序的一部分,而 GNU 核心实用程序是 Ubuntu 核心(基础)系统的一部分。它们由包表示coreutils
。有一个 apt-get 参数可用于获取包源代码:apt-get source
。要获取 coreutils 的源代码,请使用sudo apt-get source coreutils
。重要的是要知道命令只不过是放置在 PATH 环境变量路径中的二进制文件。这些二进制文件通常用 C 编写。另请注意,来自某些其他类 Unix 系统的命令,即使它们具有相同的名称,也不是来自 GNU 项目,有时语法不同。BSD(FreeBSD、OpenBSD、NetBSD)和 OSX(基于 FreeBSD)就是这种情况。