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
それでも成功しません。
答えは[〜#〜] 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:/
として変換する必要があることです。
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>
に変更するだけです(cygwin
がC:
にインストールされている場合)が、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コマンドの両方を実行できます。