You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode远程SSH终端设为zsh,但$SHELL仍指向bash问题求助

解决VSCode Remote-SSH中zsh终端$SHELL仍为bash的问题

问题原因

VSCode Remote-SSH直接启动zsh时,默认未以login shell模式运行,导致$SHELL环境变量继承自SSH连接初始化阶段的bash,而非当前运行的zsh。

解决方案

  1. 修改VSCode远程设置,让zsh以login shell模式启动
    打开远程设置(Ctrl+Shift+P → 输入Remote-SSH: Open Remote Settings),添加以下配置:

    "terminal.integrated.profiles.linux": {
        "zsh": {
            "path": "zsh",
            "args": ["--login"]
        }
    },
    "terminal.integrated.defaultProfile.linux": "zsh"
    

    --login参数会触发zsh加载登录环境配置,同时自动将$SHELL变量设置为当前zsh的实际路径。

  2. 验证效果

    • 重启VSCode集成终端,执行echo $SHELL,此时应返回zsh的路径(如/bin/zsh)
    • 测试自定义函数中的exec $SHELL,现在会生成zsh子shell而非bash

额外排查项

  • 检查用户目录下的~/.zshrc或~/.zprofile,确认没有手动将$SHELL设置为bash的语句
  • 服务器端确认chsh设置生效:执行cat /etc/passwd | grep $USER,查看输出最后一列是否为zsh的路径

内容的提问来源于stack exchange,提问作者Shai Avr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 06:04:57