我当前的 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。没有用tmux
orscreen
来检查它。
$ 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 时可能不会遇到这些问题。