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

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

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

 % cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/bin/zsh
/usr/bin/zsh

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

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

答案1

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

传统上,shell(如bashcshzsh)位于/垃圾桶- 因为即使在单用户模式或其他时候/usr可能已卸载(/usr通常位于单独的分区上,甚至可以通过网络安装 - 因此在单用户模式)。

另一方面,额外的外壳(比默认的一个/多个)并不是严格需要的单用户模式(除非碰巧使用其中之一),所以很自然地将这样的 shell 放入其中/usr/bin代替/垃圾桶

当你将其放入/usr/bin不过,通常会提供指向它的符号链接/垃圾桶,因为用户倾向于期望他们的 shell 直接位于/垃圾桶(并不是说链接会有帮助,如果/usr没有安装)。

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

+++

/bin/zsh/usr/bin/zsh显式地加在一起(相同如果-fi块)在postinstzsh-package 的(安装后)脚本中,使用以下add-shell命令:

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

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

相关内容