端口在 unix 中的 shell 上下文中是什么意思?

Gee*_*eek 1 terminology

来自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 有什么关系?

Sté*_*las 6

该信息有点过时且不准确。Linux 是一个操作系统内核,它没有外壳。查看shellkernel如何属于同一个图像参考。

如果 Linux 是指 Linux 发行版,那么它们需要更具体。并非所有 Linux 发行版都bashsh.

MacOS/X 中的默认用户 shell 不再是 (since 10.3, 2003) tcsh,而是bash现在。

我认为 FreeBSD 或 MacOS/X 都没有附带 Bourne shell。FreeBSDsh是基于 Almquist shell 的 POSIX shell。MacOS/X 曾经是zsh,现在bash以 UNIX 合规模式构建。

在这种情况下,移植是指最初为一个操作系统设计的软件,该软件已经适应(移植)以能够在另一个系统上构建。BSD 和 MacOS/X (macports) 有一个以它命名的打包系统来捆绑和包含这样的外来软件。

在 shell 的上下文中,它并不真正适用,因为大多数 shell 从一开始就被设计为能够在多个操作系统上编译。但是看看dash哪个最初是 NetBSDsh到 GNU/Linux API的端口。

  • 公平地说,链接的书是在 1992 年出版的。那确实是 linux 发展的早期,我不确定 linux 发行版的现代概念是在那个时候发展起来的。 (2认同)