windows - 如何在 Windows CMD 中启用 bash 命令?

标签 windows bash cmd windows-10

我有两台 Windows 机器,都安装了 bash。但是,它们在 bash 启动方式上有所不同:

机器 1:

键入“bash”启动 bash。然后我可以输入像 ls 这样的命令。

机器 2:

它似乎启动了 bash 并直接在其中运行 ls,只需键入“ls”。之后它会自动切换回 CMD,如下所示:

like this

有谁知道哪个设置启用了机器 2 的行为?对我来说一切看起来都一样。这是一个不错的功能,我也想在机器 1 上启用它。

最佳答案

Bash on Ubuntu on Windows 可执行文件(二进制文件)不能Windows 应用程序(例如 cmd.exe)运行PowerShell.exe - Windows 甚至不将它们视为可执行

最可能的解释是您安装了单独的 Unix 仿真 环境,例如 GnuWin ,它随 native Windows 二进制文件一起提供。

要查看您的 - 根据定义 Windows-native - ls 可执行文件的位置,请运行 where ls,它可能会告诉您什么它附带的产品,例如
C:\Program Files (x86)\GnuWin32\bin\ls.EXE

请注意,Windows 上的 Ubuntu 二进制文件以用户特定的方式存储在
%LOCALAPPDATA%\lxss\rootfs\bin,但这是一个有争议的问题,因为您不能从 Windows 调用它们。

关于windows - 如何在 Windows CMD 中启用 bash 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41762420/

相关文章:

Windows RDP 将数据从服务器发送到客户端?

linux - 使用需要将反引号作为 bash 参数的一部分传递的命令

linux - bash : expression recursion level exceeded (error token is . ..)

batch-file - 在批处理参数 CALL 中传递百分号

windows - 从 Windows 命令行回显变量的长度

windows - IntelliJ IDEA git 权限被拒绝(公钥)

c - (为什么)Windows "Calc.exe"是否缺少 WndProc?

c++ - 避免循环的 timeGetTime 的最佳替代品是什么?

linux - 脚本没有替换文件名的前缀

java - 在java中执行后关闭批处理文件