我在 /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(如bash
、csh
和zsh
)位于/垃圾桶- 因为即使在单用户模式或其他时候/usr可能已卸载(/usr通常位于单独的分区上,甚至可以通过网络安装 - 因此在单用户模式)。
另一方面,额外的外壳(比默认的一个/多个)并不是严格需要的单用户模式(除非根碰巧使用其中之一),所以很自然地将这样的 shell 放入其中/usr/bin代替/垃圾桶。
当你做将其放入/usr/bin不过,通常会提供指向它的符号链接/垃圾桶,因为用户倾向于期望他们的 shell 直接位于/垃圾桶(并不是说链接会有帮助,如果/usr没有安装)。
因此,在编译可供选择的可用 shell 列表时(/etc/shell),真正的可执行文件和链接都已列出。您可以用来ls -l
检查链接是什么以及可执行文件是什么。
+++
和/bin/zsh
都/usr/bin/zsh
显式地加在一起(相同如果-fi块)在postinst
zsh-package 的(安装后)脚本中,使用以下add-shell
命令:
来自 zsh_5.1.1-1ubuntu2_amd64.deb:/DEBIAN/postinst #!/bin/sh ... 案例“$1” (配置) # 如果测试 -z "$2";然后 添加 shell /bin/zsh 添加 shell /usr/bin/zsh # 菲 ...