我知道 Apple 的 Terminal.app 提供了一个 bash shell。这和 Linux 上的 bash 有什么区别吗?
Chr*_*sen 23
Terminal是一个终端模拟器。它解释程序发送的各种控制序列(控制字符,如 CR、LF、BS 和更长的控制序列,如“清除屏幕”、“将光标向上移动 3 行”等命令)。终端与xterm、rxvt、Konsole或GNOME 终端是同一种程序。几乎所有现代终端仿真器都支持“xterm”控制序列,因此它们通常高度兼容(并且大多数程序使用 ncurses 库及其 terminfo 数据库来抽象实际控制序列)。
bash是一个外壳。它解释通常涉及运行其他程序的命令。在正常的交互式使用中,shell 的输入来自用户通过终端仿真器。终端仿真器和外壳通过“伪 tty”设备(例如/dev/pts/24
、 或/dev/ttyp9
)连接。
因为 tty 设备是Terminal和bash之间的唯一接口,所以它们是完全独立的。您可以在iTerm 中使用bash而不是Terminal,并且可以在终端窗口中使用zsh而不是bash。
安装在 Mac OS X 和 Linux 系统上的bash版本可能不同,但应该很容易在任一系统上安装您想要的任何版本的bash。您可以查看MacPorts、homebrew或Fink以了解在 Mac OS X 上安装最新版本的bash(和其他 shell)的方法。无论您使用的是什么 Linux 发行版,都肯定带有用于常见 shell 的包。