将 shell 从 bash 永久更改为 ksh,无需管理员权限

将 shell 从 bash 永久更改为 ksh,无需管理员权限

我需要将 PuTTY shell 从 更改bashksh永久。由于我没有管理员权限,因此我无法使用该chsh命令和编辑。/etc/passwd

请帮助我了解文件中需要更改的内容.profile,或者我是否需要在.bashrc/.kshrc文件中更改内容,以便我可以ksh继续前进。

答案1

(根据评论...)您的管理员已告诉您添加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/kshshellksh将继续替换bashshell 并读取您的~/.profile文件等(所以消除 exec ksh如果~/.profile您已将其添加到那里)。您的~/.bashrc文件将不再被使用。

bash如果由于某种原因ksh从您的系统中删除了 shell ,上面的代码将为您留下一个shell。

相关内容