
从书中Unix环境下的高级编程:
Linux 使用 Bourne-again shell 作为其默认 shell。事实上,/bin/sh 是到 /bin/bash 的链接。 FreeBSD 和 Mac OS X 中的默认用户 shell 是 TENEX C shell,但它们使用 Bourne shell 作为管理 shell 脚本,因为 C shell 的编程语言是Solaris 继承了 BSD 和 System V 的传统,提供了图 1.2 中所示的所有 shell。 Internet 上提供的大多数 shell 区域的免费端口。
作者在port
这里使用的术语是什么意思?它与 shell 有何关系?
答案1
该信息有点过时且不准确。 Linux是一个操作系统内核,它没有外壳。怎么看壳和核心属于同一个图像参考。
如果他们所说的 Linux 指的是 Linux 发行版,那么他们就需要更具体一些。并非所有 Linux 发行版都有bash
其sh
.
MacOS/X 中的默认用户 shell 不再是(自 2003 年 10.3 版起)tcsh
,而是bash
现在。
我认为 FreeBSD 或 MacOS/X 都没有附带过 Bourne shell。 FreeBSDsh
是基于 Almquist shell 的 POSIX shell。 MacOS/X 曾经是zsh
并且现在是bash
在 UNIX 兼容模式下构建的。
港口在这种情况下,是指最初为一个操作系统设计的软件,经过改编(移植)以能够在另一个系统上构建。 BSD 和 MacOS/X (macports) 有一个以此命名的打包系统来捆绑和包含此类外星人软件。
在 shell 的上下文中,它并不真正适用,因为大多数 shell 从一开始就被设计为能够在多个操作系统上进行编译。但看看哪个最初是 NetBSD到 GNU/Linux APIdash
的端口。sh