为个人用户设置默认的 PASE IBM i shell

3

PASE 环境默认使用 Korn shell。 可以使用 ibmpaseforishell 变量更改默认值,但这会影响所有用户。 当用户使用 SSH 登录时,如何更改默认的 shell?

2个回答

5

现在,最好的方法是使用QSYS2.SET_PASE_SHELL_INFO() SQL过程。

-- set current user's shell
CALL QSYS2.SET_PASE_SHELL_INFO('*CURRENT', '/QOpenSys/pkgs/bin/bash');

-- set a specific user's shell
-- (requires *SECADM special auth plus *USE and *OBJMGT to the user profile)
CALL QSYS2.SET_PASE_SHELL_INFO('THATUSER', '/QOpenSys/pkgs/bin/bash');

-- set the default shell which is returned for users that do not have
-- (requires *SECADM special auth plus *USE and *OBJMGT to QSYS)
CALL QSYS2.SET_PASE_SHELL_INFO('*DEFAULT', '/QOpenSys/pkgs/bin/bash');

这个主题的更详细介绍在这里


这段话的意思是:关于这个主题的更详细的文章在这里。

2

在他们的主目录下(即/home/aaron/),添加一个名为.profile的文件,并将以下内容写入其中:

# detect if we're in a PASE shell
/QSYS.LIB/QSHELL.LIB/UNAME.PGM > /dev/null 2>&1

if [ $? != 0 -a "$SHELL" != "/QOpenSys/usr/bin/bash" ]
then
  exec /QOpenSys/usr/bin/bash
fi

请注意,.profile 文件是 korn shell 寻找的文件。如果你的默认 shell 是 bash,则它会按照以下顺序查找 .bash_profile.bash_login.profile


你是在努力建立自己的声誉吗? :) - Charles
可能与版本有关,但就其价值而言,我的系统上没有bash,但在同一位置有旧的Bourne shell,即bsh。 - EvansWinner
@EvansWinner 没错。PASE带有Korn、Bourne和C Shell。从一个真正的意义上讲,bash或许不应该在PASE下使用,因为PASE不是Linux环境,但可以理解为什么可能需要bash。Bourne shell应该是一个合理的替代品。虽然不完美,但这就是bash最初要替代的内容。此外,bash应该可以从http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/download.html下载到PASE。 - user2338816
@EvansWinner 你可以通过从PowerRuby.com下载免费的PowerRuby来获取bash。在我的Mac上使用ssh终端会话中的bash,相比于在QP2TERM中使用korn,是一种清新的体验。 - aaronbartell
这种方法在启动 QP2TERM 时也会启动默认的 shell,而不仅仅是通过 SSH 登录时。是否有办法让一个 shell 运行 QP2TERM,但使用 SSH 运行另一个 shell? - smeep
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接