我想分别更改每个终端模拟器中的默认外壳。澄清一下,我想xterm
使用tcsh
、pterm
使用pysh
、gnome-terminal
使用bash
等等。这可能吗?如果是这样,如何实现这一点?
答案1
每个终端模拟器都有其自定义方式来选择要运行的 shell:
- gnome-terminal
run a custom command instead of my shell
在配置文件编辑器中有该字段。 - xterm(和 pterm)用于
xrdb database
存储其配置,但不允许配置要运行的命令。您可以编写一个简单的 shell 脚本来包装 xterm 可执行文件以给他一个可执行文件范围。 - konsole
command
在配置文件编辑器中有该字段。
因此,您需要通过阅读手册来了解如何(以及是否)配置每个终端仿真器。没有通用的方法:-(
如果您只需要一种简单的方法来选择要运行的 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>
。
不过,通常最好单独配置每个终端仿真器。