web-dev-qa-db-ja.com

Windowsコマンドプロンプトcmd + cygwinを作成できますか?

Windowsコマンドをプロンプトcmd + cygwinにしたい。私は両方のウィンドウcmdコマンドとcygwinコマンドをから実行できるはずです私のウィンドウズのcmdプロンプト。 [〜#〜] path [〜#〜]変数にC:\cygwin64\binを追加すると、lsおよびclearおよびcmdプロンプトを介して、ただしcygwinこの場合、スタイルパスは機能しません。

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

これを行うためのクリーンな方法はありますか?

UPDATE:提案に基づいて、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

答えは[〜#〜] yes [〜#〜]です。 @ Nathan.EilishaShirainiからの提案でそれを行うことができました

次の注意が必要です。

1 => C:\cygwin64\bin[〜#〜] path [〜#〜]変数に追加します。

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 =>すべてのサードパーティソフトウェアは、cygwinからではなくWindowsインストールから使用する必要があります(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 =>すべてのcygwinlinuxのようなコマンドは/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:/として変換する必要があることです。

3

TL; DR、no

ファイルシステムの編成方法は、WindowsとLinuxで大きく異なり、バックスラッシュまたはフォワードスラッシュの使用に限定されません。たとえば、Windowsのみがドライブに編成され、Linuxにはルートディレクトリしかありません。

一部のWindowsコマンドでは、パスでスラッシュを使用できますが、ほとんどのは、それらをフラグプレフィックスとして使用します(例:ping -tは、Windowsではping /tと同等です。


[〜#〜] edit [〜#〜]コメントの EBGreen で示唆されているように、Powershellを使用するにはを試してください。私は経験から、あなたが特別なことを何もしない限り(または何もしない限り)、Bashとわずかに相互運用可能であることを知っています。コマンドチェーン/パイピング、ファイルリダイレクト、エスケープ文字を含む文字列、変数を実行することはできません。リストは続きます...

もちろん可能です。

Cygwinバージョン2.11.0以降。 2018年に発売

WindowsのデフォルトでLinuxコマンドの実行が必要な場合は、Command PromptディレクトリをC:\cygwin\bin>に変更するだけです(cygwinC:にインストールされている場合)が、Windowsユーザーレベルのコマンドラインディレクトリは残ります変更なし。

例えば:

Cygwinをインストールした後、windowsコマンドでユーザーとしてプロンプトを表示します。

C:\ Users\My Username>where /r C:\\Users\pictures myimage.png

一方、すべてのlinuxコマンドは次の場所で実行する必要があります。

C:\cygwin\bin>

C:/ cygwinにcygwinをインストールする場合、コマンドラインディレクトリをC:\ Users\My Username>から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コマンドの両方を実行できます。

0
Klanto Aguntuk