Shell

/bin/sh 符號連結無法正常工作

  • March 14, 2019

我使用的是 i3,預設情況下,它在使用i3 config命令sh啟動程序時使用。exec這很好,花花公子,但這意味著在我的 .zshrc 中創建的環境變數不會轉移到 i3 的子程序(幾乎是我打開的任何程序)。

為了解決這個問題,我嘗試將/bin/sh符號連結更改為指向,/bin/zsh如下所示:

$ which sh
/bin/sh
$ sudo rm /bin/sh
$ sudo ln -s /bin/zsh /bin/sh

這將創建我期望的符號連結:

$ ls -la /bin/sh    
lrwxrwxrwx 1 root root 8 Mar 13 22:16 /bin/sh -> /bin/zsh
$ which sh
/bin/sh

但是,當我嘗試執行時shsh開始而不是zsh. 當我執行時也會發生同樣的情況/bin/sh。我註銷然後重新登錄。它沒有改變任何東西。

/bin/zsh並且zsh命令zsh按預期啟動。

事實證明zsh是正確啟動,但它是在模仿sh. 我應該更仔細地閱讀手冊頁。正如@steeldriver 指出的那樣,手冊頁指出:“ Zsh 在分別作為 sh 或 ksh 呼叫時嘗試模擬 sh 或 ksh

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