Shell
/bin/sh 符號連結無法正常工作
我使用的是 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
但是,當我嘗試執行時
sh
,sh
開始而不是zsh
. 當我執行時也會發生同樣的情況/bin/sh
。我註銷然後重新登錄。它沒有改變任何東西。
/bin/zsh
並且zsh
命令zsh
按預期啟動。
事實證明
zsh
是正確啟動,但它是在模仿sh
. 我應該更仔細地閱讀手冊頁。正如@steeldriver 指出的那樣,手冊頁指出:“ Zsh 在分別作為 sh 或 ksh 呼叫時嘗試模擬 sh 或 ksh ”