CentOS 和切换 Unix shell

CentOS 和切换 Unix shell

我使用的是安装了 CentOS 的 VMWare 虚拟机。

我现在使用 BASH shell,但需要运行需要 C Shell 的应用程序。

一个人可以直接换壳吗?您需要重新安装所有软件吗?现有的软件可以工作吗?切换shell就那么容易吗?

我需要的程序有一个用 C Shell 编写的安装脚本,并且该程序需要 C Shell 才能运行。

答案1

应用程序(正确的)不会要求C 外壳;使用 csh 语法的包装器脚本将需要 C shell,在这种情况下,它的第一行应如下所示:

#!/bin/csh

或者

#!/bin/tcsh

或类似的。

您可以从 bash 执行该脚本,而无需将登录 shell 切换到 csh。

答案2

您可以使用名为的实用程序轻松更改自己用户的 shell,chsh该实用程序默认安装在 CentOS 系统上。语法是:

chsh -s /bin/csh OR /bin/tcsh

在执行此操作之前,请确保您的系统中已安装 C Shell,它应显示/etc/shells为 / bin/csh(或/bin/tcsh)。如果它不存在,我很确定您只需执行以下操作即可安装它yum install tcsh(在我的 Ubuntu 16.04 LTS 上,它可以作为csh

您需要从系统中完全注销,然后重新登录才能使这些更改生效。

如果它只是您想要运行的脚本,只需在脚本顶部添加 shebang 标头,#!/bin/tcsh或者#!/bin/csh根据 .txt 中可用的名称添加 shebang 标头/etc/shellsshebang header是脚本中的第一行。

答案3

exec tcsh将当前运行的 shell 替换为tcsh.然后,如果软件要求使用各种命令来加载该应用程序的环境设置等,exec bash则将替换当前 shell bash(保留已设置的任何环境变量,无论好坏) 。source foo.cshrc

% exec bash
bash-4.2$ exec tcsh
$ exec zsh
% 

如果没有详细信息,软件是否有效是一个相当难以回答的问题(请参阅:停止问题

chsh正如其他人指出的那样,外壳的变化可以变得更加持久。

相关内容