Você pode fazer o prompt de comando do Windows cmd + cygwin?

0

Eu quero fazer o meu comando do Windows solicitar cmd + cygwin . Eu deveria ser capaz de executar os comandos cmd e cygwin do windows em meu prompt cmd cmd. Se eu adicionar C:\cygwin64\bin à minha variável PATH , posso executar alguns comandos do cygwin como ls e clear e mais alguns através do prompt cmd , mas cygwin Caminhos de estilo não funcionam neste caso.

D:\>cd /cygdrive/d
The system cannot find the path specified.

Existe uma maneira limpa de fazer isso?

ATUALIZAÇÃO: Com base em sugestões eu tentei em 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

Este comando funciona no prompt do 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'

O caminho também não funciona no 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

Ainda não há sucesso.

    
por Ashish Shirodkar 13.07.2018 / 16:38

3 respostas

2

A resposta é SIM . Eu fui capaz de fazer isso com sugestões de @ Nathan.Eilisha Shiraini

Seguir os cuidados deve ser tomado:

1 = > Adicione C:\cygwin64\bin à sua variável PATH .

2 = > Todos os caminhos /cygdrive/c devem ser substituídos por c:/

C:\>cd C:/Software_Development/Examples
C:\Software_Development\Examples>
C:\Software_Development\CPP>cd ../Examples
C:\Software_Development\Examples>

3 = > Todos os softwares de terceiros devem ser usados a partir de instalações do Windows e não do cygwin (perl, python etc.). Porque os softwares fornecidos pela cygwin usam caminhos de estilo /cygdrive/c . O Cygwin deve ser usado como driver que acionará o software instalado no Windows.

4 = > Os executáveis devem ser executados no estilo do windows ./ Executable.o não funcionará .

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 = > Todos os comandos como o cygwin linux retornam caminhos em /cygdrive/c/ style que você precisa para convertê-los em c:/ sempre que necessário.

C:\Software_Development\Examples>which python
/cygdrive/c/Python/Python36/python

Mais alguns comandos:

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>

Importante notar que todo o software do cygwin fornecerá o caminho em /cygdrive/c do formulário no qual você precisará convertê-los como c:/

    
por 14.07.2018 / 20:33
0

TL; DR, não .

A forma como um sistema de arquivos é organizado é extremamente diferente entre o Windows e o Linux, e não se limita a usar barras invertidas ou de avanço. Por exemplo, somente o Windows é organizado em unidades, o Linux só tem seu diretório raiz.

Alguns comandos do Windows permitem o uso de barras nos caminhos, mas mais usa-os como o prefixo do sinalizador (por exemplo, ping -t é equivalente a ping /t no Windows ).

EDIT Conforme sugerido por EBGreen em seu comentário, você pode tentar para usar o Powershell. Eu sei por experiência que é ligeiramente interoperável com o Bash, contanto que você não faça nada extravagante (ou absolutamente nada). Você não pode fazer o comando encadeamento / encanamento, redirecionamentos de arquivos, seqüências de caracteres com caracteres de escape, variáveis, e a lista continua ...

    
por 13.07.2018 / 16:46
0

Claro que é possível.

A partir do cygwin versão 2.11.0. lançado em 2018

Quando a execução do comando linux é necessária através do padrão windows Command Prompt simplesmente altere o diretório para C:\cygwin\bin> (se cygwin estiver instalado em C: ) enquanto o diretório de linha de comando do nível de usuário do Windows permanece inalterado.

Por exemplo:

Depois de instalar o cygwin, no prompt de comando do windows como um usuário você deve executar todos os comandos do windows como

C: \ Usuários \ Meu nome de usuário > where /r C:\Users\pictures myimage.png

Por outro lado você deve executar todo o comando linux em

C:\cygwin\bin>

Se você instalar o cygwin em C: / cygwin , altere o diretório da linha de comando de C: \ Users \ Meu nome de usuário > para C: \ cygwin \ bin > simplesmente use o comando windows cd no prompt de comando como

C:\Users\My Username> cd C:/cygwin/bin

e execute o comando linux como,

C: \ cygwin \ bin > find C:/Users/pictures -name myimage.png

Dessa forma, você pode executar os dois comandos do Windows no escopo global e o comando do Linux no escopo do caminho a partir do terminal padrão do Windows.

    
por 20.09.2018 / 10:08