哪些语言用于构建Unix命令?


Answers:


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

小心安装基本工具,例如那些在发行版副本中的工具,是个坏主意。为此,请使用系统附带的任何软件包管理器。不过,您可以安装到其他前缀(如果要尝试,可以将其安装在主目录中的某个位置是个好主意)。

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

其他例子:

  • OpenSolaris pwd源。
  • FreeBSD ls

您可以在线上找到更多此类产品。


5

只是为Mat的回答增加了一点,尽管Unix将这些作为独立程序实现,但也可以在其中实现许多命令bash(以省去产生新进程的麻烦),请参见bash手册页以获取更多详细信息,或查看标签。

bash 也用C编写

这可能是值得一提的是,这些命令不具有被写在C -事实上,几个小的Linux发行版使用lua的这些和其他的实现。


2
好吧bash或其他任何好的shell。
rds

1
还请注意,某些命令(例如)cd必须是内置的shell才能有效工作。
AProgrammer 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.