使用哪些语言来构建 Unix 命令?

使用哪些语言来构建 Unix 命令?

我所指的命令示例有lspwdcd。另外,这些是如何建造的?你有例子吗?

答案1

通常很简单C。命令lspwd来自GNU Coreutils(大多数?)Linux 发行版(也许还有其他一些系统)中的软件包。您可以在以下位置找到代码他们的主页

具体来说coreutils,您可以按照通常的步骤构建它们:解压源代码后,发出:

./configure --prefix=/some/path
                   # type ./configure --help to get the available options
make
make install       # could require root access depending on the path you used

请小心 - 在您的发行版副本上安装基本实用程序是很困难的一个坏主意。使用您的系统附带的任何包管理器。不过,您可以安装到不同的前缀(如果您想尝试,安装到主目录中的某个位置是个好主意)。

请注意,虽然有一个cd可执行文件cd您在大多数情况下使用的不是单独的可执行文件。它必须是 shell 内置的(否则它无法更改 shell 的当前目录 - 这必须由进程本身完成),因此它是用与 shell 相同的语言编写的(这通常C也是如此)。

其他例子:

  • 开放Solarispwd来源。
  • 自由BSDls

您可以在网上找到更多此类内容。

答案2

只是为了在 Mat 的答案中添加一点内容,尽管 Unix 将这些实现为独立程序,但许多命令也在其中实现bash(以节省它必须生成一个新进程)请参阅bash手册页以获取更多详细信息,或者查看标签。

bash也是用C写的

值得注意的是,这些命令并不用 C 语言编写 - 事实上,几个迷你 Linux 发行版都使用lua这些和其他的实施。

相关内容