我想使用Windows 10上的命令行中的ls
,以及许多其他Linux工具。我知道有GnuWin32和其他二进制替代品,但没有一个能像Linux的Windows子系统(WSL)那样优雅地工作;包括更新机制。
使用WSL,可以调用ls
bash-c“ls…”从命令行执行code>
,非常有效。但是,理想情况下,我只需在命令行上键入
ls
。我可以创建一个ls。bat
基本上是@bash-c“ls%*”
——但是我必须为我想要导出的每个命令都这样做。是否有更直接的方法将ls
(以及其他许多)导出到命令行?
尝试使用windowsBash
在Windows Bash中运行以下命令以生成命令的快捷方式
wgethttps://raw.githubusercontent.com/aleppos/windowsBash/master/windowsBash-P/usr/bin
然后只需将以下目录添加到Windows*C中的路径中:\windowsBash
当您想要更新命令列表时,只需再次运行Shell文件
windowsBash
然而,微软并不直接支持你的要求...
CMD/?
通知我们以下两个注册表键:HKey_Local_Machine\Software\Microsoft\命令处理器\AutoRun
和HKey_Current_User\Software\Microsoft\命令处理器\AutoRun
,只要没有指定/D
选项,都将检查它们当打开新的命令提示符窗口时,要运行的内容(按此顺序)。如果我们将这两件事与FOR
循环和用户文件夹中一个漂亮、易于自定义的文件结合起来,我们可以得到我认为您想要的非常接近的结果
我将把它放在HKLM中,并引用%USERPROFILE%
中的一个文件,名为exportlinuxcommands
,这样所有用户都可以使用它,但每个用户都可以轻松地自定义它,并且只对设置它的用户有用。如果您只想为一个用户定制,或者不想为每个用户定制,那么您必须稍微修改一下说明。
HKey_Local_Machine软件\Microsoft\命令处理器
现在,您只需在%USERPROFILE%
文件夹(即C:\Users\YourUserName
)中创建一个名为exportlinuxcommands
)的文件,每个Linux命令都需要在单独的一行上添加别名。例如:
ls
rm
cat
想要移除一个?从文件中删除它,它将不存在于您打开的下一个命令提示符窗口中。
要稍后添加另一个吗?只需将其添加到文件自己的行中,下次打开命令提示符窗口时,它就会在那里。
显然,这是WSL要求最多的功能,Microsoft现在支持这一功能。要在命令提示符(或PowerShell)中使用linux命令,只需在命令前面加上wsl
。例如,下面是如何从CMD运行ls
。
C:\temp> wsl ls
<- contents of C:\temp ->
或者下面是更新包列表的方法。
C:\temp> wsl sudo apt-get update
[sudo] password for username:
Hit:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB]
更多详情可在官方文件中找到。我不确定您是否正在寻找一种不涉及任何前缀的解决方案。如果是这样的话,我还不知道有什么解决办法。
我正在尝试在WSL(Linux的Windows子系统)上使用WebAssembly和Emscripten。正在尝试从命令行运行示例html文件会导致错误: 如何在Linux系统(Ubuntu)上从WSL命令行访问主机(windows)浏览器?
“我们在git中甚至在Windows中都使用linux命令。我想知道它是如何让这些linux命令在Windows上运行的?”
问题内容: 我正在尝试在执行Windows批处理命令中运行命令的构建步骤下在Jenkins中运行命令。 我写了dir作为命令运行 当作业在Jenkins中运行时,该错误是由文件内容更改触发的,并显示以下错误 请参阅此问题。 问题答案: 回答这个问题:实际上,我还没有在Jenkins中将Windows安装为服务。因此,为此,我们需要转到“管理Jenkins”,然后单击“ Windows即服务”。即,
问题内容: 可以在调用“ java jar jar_name.jar”时指定要使用的JVM。我的机器上安装了两个JVM。我无法更改JAVA_HOME,因为它可能会破坏所有准备就绪的代码。 亲切的问候 史提芬 问题答案: 是的-仅显式提供java.exe的路径。例如: 对于正在运行的命令外壳,最简单的方法是: 例如,这是一个完整的会话,显示我的默认JVM,然后是路径的更改,然后是新的: 但是,这不会
问题内容: 我正在通过Java上的JSch建立ssh连接,在我尝试运行此.sh文件之前,一切似乎都工作正常。外壳程序脚本的名称是 repoUpdate.sh ,它非常简单: 这是我在Linux控制台上直接获得的输出,其中包含命令的正确响应: 现在,这是带有ssh连接的我的方法的Java代码,该代码试图调用同一文件 我得到的答复如下: svn命令(版本9432)没有任何输出或执行的迹象。 我认为这可
我正在通过Java上的JSch建立一个SSH连接,在我尝试运行它之前,一切似乎都很正常。sh文件。shell脚本的名称是