Shell

/bin/zsh 和 /usr/bin/zsh 有什麼區別?

  • January 4, 2018

我在 /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 技能。

其中一個可能是另一個連結…

傳統上,shell(如bash,cshzsh)位於**/bin** - 因為即使在單使用者模式或其他可能解除安裝 /usr 時也需要 shell(/ usr通常位於單獨的分區上,甚至可以通過網路安裝- 因此在單使用者模式下不容易使用)。

另一方面,在單使用者模式下並不嚴格需要**額外的 shell(而不是預設的一個/一個)(除非root碰巧使用其中一個),所以很自然地將這些 shell 放在**/usr/bin中而不是/斌**。

但是,當您確實將它放在**/usr/bin中時,通常會從****/bin提供指向它的符號連結,因為使用者傾向於期望他們的 shell 直接位於/bin下(如果****/usr**不是,則連結不會有幫助) t 安裝)。

因此,在編譯可供選擇的可用 shell 列表(/etc/shells)時,真正的執行檔和連結都已列出。您可以使用ls -l來檢查什麼是連結以及什麼是執行檔。

+++

兩者/bin/zsh和在 zsh 包的(安裝後)腳本/usr/bin/zsh中顯式添加在一起(相同的 if-fi塊) ,使用以下命令:postinst``add-shell

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

#!/bin/sh
...
案例“$1”在
(配置)
# if test -z "$2"; 然後
添加外殼/bin/zsh
添加外殼 /usr/bin/zsh
#fi
...

引用自:https://unix.stackexchange.com/questions/414643