我想让我的 Windows 命令提示符命令+cygwin我应该能够同时运行两个窗口命令命令和赛格威命令来自我的 Windows cmd 提示符。如果我添加C:\cygwin64\bin
到我的小路变量我可以通过运行一些 cygwin 命令ls
来运行clear
命令提示,但是赛格威在这种情况下,样式路径不起作用。
D:\>cd /cygdrive/d
The system cannot find the path specified.
有没有一个干净的方法来做到这一点?
更新: 根据建议,我在 Powershell 中尝试了它。
PS C:\GIT_Repo> ls -lrt
Get-ChildItem : A parameter cannot be found that matches parameter name 'lrt'.
At line:1 char:4
+ ls -lrt
+ ~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-ChildItem], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
此命令在 CMD 提示符下有效:
C:\GIT_Repo>ls -lrt
total 752
-rw-rw-r--+ 1 Ashish None 931 Jun 26 23:39 Mp3_Properties.py
-rwxrwxr-x+ 1 Ashish None 763247 Jun 26 23:44 'My_mp3_File.mp3'
路径在 Powershell 中也不起作用:
PS C:\GIT_Repo> cd /cygdrive/c
cd : Cannot find path 'C:\cygdrive\c' because it does not exist.
At line:1 char:1
+ cd /cygdrive/c
+ ~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\cygdrive\c:String) [Set-Location], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
仍然没有成功。
答案1
答案是是的。我能够根据@Nathan.Eilisha Shiraini 的建议做到这一点
应注意以下事项:
1=> 添加C:\cygwin64\bin
到您的小路多变的。
2=> 所有/cygdrive/c
路径应替换为c:/
C:\>cd C:/Software_Development/Examples
C:\Software_Development\Examples>
C:\Software_Development\CPP>cd ../Examples
C:\Software_Development\Examples>
3=> 所有第三方软件都应从 Windows 安装中使用,而不是从 cygwin 中使用(perl、python 等)。因为 cygwin 提供的软件使用/cygdrive/c
样式路径。Cygwin 应用作驱动程序,它将触发 Windows 安装的软件。
4=> 可执行文件应以 Windows 风格执行./Executable.o 不会工作。
C:\Software_Development\CPP>g++ MyTest.cpp -o MyTest.o
C:\Software_Development\CPP>ls
MyTest.cpp -o MyTest.o
C:\Software_Development\CPP>MyTest.o
This program is compiled on windows
5=> 所有 cygwin linux 类命令都会以/cygdrive/c/
您需要在c:/
必要时转换的样式返回路径。
C:\Software_Development\Examples>which python
/cygdrive/c/Python/Python36/python
更多命令:
C:\Software_Development\CPP>cat MyTest.cpp
#include<iostream>
using namespace std;
int main()
{
cout << "This program is compiled on windows";
return 0;
}
C:\Software_Development\CPP>rm MyTest.cpp
C:\Software_Development\CPP>
需要注意的是,所有 cygwin 软件都会以/cygdrive/c
您需要将其转换为的形式提供路径c:/
答案2
长话短说,不。
Windows 和 Linux 的文件系统组织方式截然不同,而且不仅限于使用反斜杠或正斜杠。例如,只有 Windows 按驱动器组织,而 Linux 只有根目录。
一些Windows 命令允许在路径中使用正斜杠,但最多将它们用作标志前缀(例如ping -t
相当于ping /t
Windows下)。
编辑根据建议EBGreen在他们的评论中,你可以尝试使用 Powershell。根据我的经验,我知道轻微地可以与 Bash 互操作,只要您不做任何花哨的事情(或者根本不做任何事情)。您不能执行命令链/管道、文件重定向、带有转义字符的字符串、变量等等……
答案3
当然有可能。
自 2018 年推出的 cygwin 版本 2.11.0 起
当需要通过 Windows 默认设置执行 linux 命令时,Command Prompt
只需将目录更改为C:\cygwin\bin>
(如果cygwin
安装在C:
),而 Windows 用户级命令行目录保持不变。
例如:
安装 cygwin 后,在 Windows 命令提示符中,以用户身份执行所有 Windows 命令,例如
C:\用户\我的用户名> where /r C:\\Users\pictures myimage.png
另一方面,你应该在
C:\cygwin\bin>
如果你在以下位置安装 cygwinC:/cygwin,将命令行目录从C:\Users\我的用户名> 到 C:\cygwin\bin>只需在命令提示符中使用 Windows cd 命令即可,
C:\Users\My Username> cd C:/cygwin/bin
并运行 Linux 命令,例如,
C:\cygwin\bin> find C:/Users/pictures -name myimage.png
这样,您就可以从 Windows 默认终端执行全局范围内的 Windows 命令和路径范围内的 Linux 命令。