将 bash 转换为 ksh

将 bash 转换为 ksh

我当前的 shell 是 bash,我想转换为 ksh。我尝试通过 chsh 或 ypchsh 进行转换,但没有转换权限。所以我尝试使用 .bash_profile 进行转换,如下所示

$vi .bash_profile
ksh
. ./.profile .

重新打开 putty 时,.bash_profile 会运行并更改为 ksh,但 .profile 中的别名未得到解析。

答案1

答案2

显然,在您的示例中,.profile直到您 exit 才会被获取ksh。这就是 shell 的工作方式。

我尝试在本地计算机上执行以下操作:

$ cat /home/test/.profile
exec ksh

$ cat ~/.kshrc
echo "commands you need in ksh"

由于配置文件在登录时仅读取一次,因此它似乎有效。每当我以用户身份登录时,我都会ksh使用 shell。没有用tmuxorscreen来检查它。

$ ps
  PID TTY          TIME CMD
 9667 pts/1    00:00:00 ksh
 9675 pts/1    00:00:00 ps

请注意,我使用了exec ksh简单的 invoke ksh,因此您将只ksh替换 whichbash而不是ksh作为 的子项运行bash

无论如何,我建议询问系统管理员或任何有权更新 /etc/passwd 中设置的人来执行此操作。它可能会帮助您避免从 bash 继承某些设置时出现意外问题,而直接调用 ksh 时可能不会遇到这些问题。

相关内容