/bin/zsh 和 /usr/bin/zsh 有什么区别?

shi*_*ish 1 shell zsh configuration

我在 /etc/shells 中看到以下内容 -

 % cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/bin/zsh
/usr/bin/zsh
Run Code Online (Sandbox Code Playgroud)

我想知道 /usr/bin/zsh 和 /bin/zsh 之间是否有区别?

我确实选择了 /usr/bin/zsh,因为它必须是交互式登录和 CTE 技能。

Baa*_*rud 5

其中一个可能是另一个的链接......

传统上,shell(如bashcshzsh)位于/bin中 - 因为即使在单用户模式下或/usr可能被卸载的其他时间( /usr通常位于单独的分区上,甚至可以通过网络安装)也需要 shell - 因此在单用户模式下不容易使用)。

另一方面,在单用户模式下并不严格需要额外的shell(比默认的一个/多个) (除非root碰巧使用其中一个),因此很自然地将这些 shell 放在/usr/bin中而不是放在 /usr/bin 中/垃圾桶

不过,当您其放入/usr/bin时,通常会从/bin提供到它的符号链接,因为用户倾向于期望他们的 shell 直接位于/bin下(如果/usr不在,则链接不会有帮助)安装)。

因此,当编译可供选择的可用 shell 列表 ( /etc/shells ) 时,真正的可执行文件和链接都已列出。您可以用来ls -l检查链接是什么以及可执行文件是什么。

+++

使用以下命令在 zsh 包的(安装后)脚本中将和/bin/zsh/usr/bin/zsh式添加在一起(相同的if-fi块):postinstadd-shell

来自 zsh_5.1.1-1ubuntu2_amd64.deb:/DEBIAN/postinst

#!/bin/sh
...
案例“$1”
    (配置)
# 如果测试 -z "$2"; 然后
            添加 shell /bin/zsh
            添加 shell /usr/bin/zsh
# 菲
...