您能让 Windows 命令提示符变为 cmd+cygwin 吗?

您能让 Windows 命令提示符变为 cmd+cygwin 吗?

我想让我的 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 /tWindows下)。


编辑根据建议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 命令。

相关内容