$SHELL 在使用 SSH 的 VSCode 中指向 bash 而不是 zsh

问题描述 投票:0回答:1

我使用 VSCode 和远程 SSH 扩展来 ssh 到我的 Linux 服务器。服务器上的默认 shell 是

bash
,我想将其更改为
zsh
。我安装了
zsh
并使用
chsh -s $(which zsh)
更改了默认 shell。令我惊讶的是,当我打开集成终端时,我又进入了
bash
。我发现我需要将默认终端配置文件更改为
zsh
,因此我将设置
"terminal.integrated.defaultProfile.linux": "zsh"
添加到我的远程设置中。然后,一个新的终端如我所愿生成了
zsh
,但我遇到了另一个问题。 当我运行
echo $SHELL
时,我得到了
/bin/bash
而不是
zsh

这是一个问题,因为我有一个自定义函数,它使用

exec $SHELL
在子 shell 中创建自定义环境。因此,运行这个函数会给我一个
bash
的子 shell,即使我是从
zsh
调用命令的。

我知道这是 VSCode 的问题,而不是我的服务器配置的问题,因为如果我使用常规终端或任何其他 ssh 客户端 ssh 进入服务器,则

$SHELL
的值是
zsh
,因为它应该是:

我搜索了 VSCode 的设置,找不到任何可以帮助我的东西,特别是因为默认终端配置文件已经设置为

zsh
,所以我不知道我错过了什么。

bash visual-studio-code ssh zsh
1个回答
0
投票

您需要在settings.json中添加此内容:

"terminal.integrated.profiles.linux": {
    "zsh": {
        "path": "/bin/zsh"
    }
},
© www.soinside.com 2019 - 2024. All rights reserved.