Mat*_*Mat 26
它通常很简单C。命令ls和pwd来自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
Run Code Online (Sandbox Code Playgroud)
小心 - 在您的发行版副本上安装类似的基本实用程序是一个坏主意。使用您的系统随附的任何包管理器。不过,您可以安装到不同的前缀(如果您想尝试,将其安装到您的主目录中是个好主意)。
请注意,虽然有一个cd可执行文件,但cd在大多数情况下您将使用的不是单独的可执行文件。它必须是一个 shell 内置(否则它不能改变 shell 的当前目录——这必须由进程本身完成),所以它是用与 shell 相同的语言编写的(通常C也是如此)。
其他例子:
你可以在网上找到更多这些。
只是在 Mat 的答案中添加更多内容,尽管 Unix 将这些作为独立程序实现,但许多命令也在其中实现bash(以保存它必须生成一个新进程),请参阅bash手册页了解更多详细信息,或查看shell - 内置标签。
bash 也是用C写的
这可能是值得一提的是,这些命令不具有被写在C -事实上,几个小的Linux发行版使用lua的这些和其他的实现。