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

Ubuntu将shell从bash切换为zsh后subl、VScode等应用命令无法识别问题

问题原因

切换shell为zsh后,zsh默认不会继承bash的PATH变量配置,你当前.zshrc中的PATH未包含Sublime Text、VSCode等应用的命令所在目录,同时你最后一行的PATH配置是错误的:/usr/local/man是系统手册存储目录,不属于可执行文件目录,不需要加入PATH。

解决步骤
  • 第一步:先获取应用命令的实际存储路径
    临时调用bash执行查询命令,拿到你当前环境下两个命令的绝对路径:

    bash -c "which subl"
    bash -c "which code"
    

    通常Ubuntu通过snap安装的应用命令都会存放在/snap/bin目录下,返回结果大概率为/snap/bin/subl、/snap/bin/code。

  • 第二步:修正.zshrc配置
    两种方案二选一即可:

    1. 方案1:直接继承bash的PATH配置(最省事)
      在你的.zshrc末尾添加一行,读取bash的全局配置文件:
    source ~/.profile
    
    1. 方案2:手动补全PATH目录
      把第一步查到的命令所在目录(比如/snap/bin)加入到.zshrc开头的PATH配置行,同时删除最后一行错误的/usr/local/man配置:
    # 修改前的配置
    # export PATH=$HOME/bin:/usr/local/bin:$PATH
    # 修改后的配置,替换为你实际查到的目录
    export PATH=$HOME/bin:/usr/local/bin:/snap/bin:$PATH
    

    也可以直接添加别名实现:

    # 替换为你第一步查到的实际绝对路径
    alias subl="/snap/bin/subl"
    alias code="/snap/bin/code"
    
  • 第三步:生效配置
    保存.zshrc后执行命令让配置立即生效:

    source ~/.zshrc
    

    之后再执行subl、code类命令就能正常识别了。

内容的提问来源于stack exchange,提问作者Kianoush Arshi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:24:03