Ubuntu无法识别node、NPM、ls等命令但Git Bash正常,跨环境命令不兼容怎么解决
问题原因与解决方法
核心前提
你遇到的所有差异都不是操作错误,Git Bash 是 Windows 平台下模拟 Linux 命令行的运行环境,而你安装的 Ubuntu 一般为 WSL(Windows 子系统),二者是完全隔离的独立运行环境,文件系统、环境变量、安装的软件包默认互不连通。
分问题解决
1. Ubuntu 执行 ls 无输出的问题
- 首先确认当前所在路径:在 Ubuntu 中执行
pwd查看当前目录,默认初始登录后是 Ubuntu 自身的/home/你的用户名目录,如果该目录下没有任何文件,ls自然无输出 - 如果你是想查看 Windows 下的文件,需要在 Ubuntu 中进入
/mnt目录,Windows 的各个盘符会挂载在此处,比如 C 盘对应/mnt/c,D 盘对应/mnt/d,进入对应路径后再执行ls即可看到和 Git Bash 中相同的文件内容 - 如果确认所在目录有文件但
ls仍然无输出,执行alias ls检查是否有ls别名配置导致输出被屏蔽,临时恢复可执行\ls查看效果
2. Ubuntu 无法识别 Node、NPM 的问题
- Git Bash 读取的是 Windows 系统中安装的 Node、NPM 的环境变量,而 Ubuntu 默认不会继承 Windows 的软件安装信息,两个环境的软件包各自独立安装
- 解决方法直接在 Ubuntu 内安装对应软件即可,执行以下操作:
- 先更新包索引:
sudo apt update - 安装 Node.js 与 NPM:
sudo apt install nodejs npm - 安装完成后执行
node -v、npm -v即可正常返回版本信息
- 先更新包索引:
3. 课程命令无法在两个环境同时运行的问题
- 优先确定课程要求的运行环境,按要求固定使用其中一个环境操作即可,不需要强行适配双环境
- 如果需要跨环境操作同一批文件,统一将项目文件存放在 Windows 非系统盘的目录下,Git Bash 直接进入对应盘符路径操作,Ubuntu 进入
/mnt/对应盘符/项目路径操作即可
内容的提问来源于stack exchange,提问作者Lunchspecialchicken
相关产品推荐
相关产品推荐

