Linux

在沒有管理員權限的情況下將 shell 從 bash 永久更改為 ksh

  • April 24, 2021

我需要將我的 PuTTY shell 從更改bashksh永久。由於我沒有管理員權限,因此我無法使用chsh命令和編輯。/etc/passwd

請幫助我了解.profile文件中需要更改的內容,或者我是否需要在.bashrc/.kshrc文件中進行更改,以便我可以ksh繼續使用。

(根據評論…)您的管理員已告訴您添加exec ksh到您的~/.profile 文件中,但這似乎對您不起作用。它不起作用,因為如果前者存在,您的bash登錄 shell 將~/.bash_profile代替前者。~/.profile

因此,請改為添加exec ksh到您的~/.bash_profile文件中。

就個人而言,我會使用類似以下的內容(假設ksh已知 shell 執行檔位於/bin/ksh):

if [ -x /bin/ksh ]; then
   export SHELL=/bin/ksh
   exec "$SHELL" -l
fi

這將是我的整個文件,如果存在並且可以執行~/.bash_profile,它將/bin/ksh作為登錄 shell啟動。/bin/ksh然後ksh外殼程序將繼續替換bash外殼程序並讀取您的~/.profile文件等(如果您已將其添加到此處,請將其刪除)。 您的文件將不再被使用。exec ksh``~/.profile``~/.bashrc

bash如果由於某種原因ksh從您的系統中刪除了外殼,上面的程式碼將為您留下一個外殼。

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