默认情况下,在每个终端模拟器中使用不同的 shell

默认情况下,在每个终端模拟器中使用不同的 shell

我想分别更改每个终端模拟器中的默认外壳。澄清一下,我想xterm使用tcshpterm使用pyshgnome-terminal使用bash等等。这可能吗?如果是这样,如何实现这一点?

答案1

每个终端模拟器都有其自定义方式来选择要运行的 shell:

  • gnome-terminalrun a custom command instead of my shell在配置文件编辑器中有该字段。
  • xterm(和 pterm)用于xrdb database存储其配置,但不允许配置要运行的命令。您可以编写一个简单的 shell 脚本来包装 xterm 可执行文件以给他一个可执行文件范围。
  • konsolecommand在配置文件编辑器中有该字段。

因此,您需要通过阅读手册来了解如何(以及是否)配置每个终端仿真器。没有通用的方法:-(

如果您只需要一种简单的方法来选择要运行的 shell,我强烈建议您选择支持配置文件(如 gnome-terminal)的终端模拟器,并为每种 shell 类型创建不同的配置文件。这样,您就可以通过 gnome 终端内部菜单启动运行所需 shell 的新选项卡或窗口(并且,作为奖励,为每个 shell 选择不同的文本颜色)。

答案2

作为一个快速且包含的解决方案,您可以制作一个包装脚本。

case "$1" in
   xterm) shell=/bin/tcsh ;;
   pterm) shell=/bin/pysh ;;
   gnome-terminal) shell=/bin/bash ;;
   *)
       printf "Not supported: %s\n" "$1" >&2
       exit 1
esac

SHELL="$shell" "$1"

只需这样使用它:thescript <terminal_emulator>

不过,通常最好单独配置每个终端仿真器。

相关内容