GNU/Linux >> Linux の 問題 >  >> Linux

Cygwinを使用したLinux-Windowsハイブリッドシステムの作成

Cygwinのことを聞いたことがない場合は、ご馳走になります。私はこれを何年にもわたって使用して、環境を均質化し、スクリプトを1回記述して、一貫した自動化ソリューションのためにどこにでも配信できるようにしました。 Linux、Mac、および商用Unicesで動作するbashスクリプトを作成し、PowerShellとバッチファイルに真っ向から飛び込んで、Bashスクリプトで達成できる自動化のレベルに一致させようとするのは面倒です。

ウェブサイトによると、Cygwinは次のとおりです。

  • Windows上のLinuxディストリビューションと同様の機能を提供するGNUおよびオープンソースツールの大規模なコレクション。
  • 実質的なPOSIXAPI機能を提供するDLL(cygwin1.dll)。

そしてそうではありません:

  • WindowsでネイティブLinuxアプリを実行する方法。 ソースからアプリケーションを再構築する必要があります Windowsで実行したい場合。
  • ネイティブのWindowsアプリに信号やptyなどのUNIX®機能を魔法のように認識させる方法。繰り返しになりますが、ソースからアプリをビルドする必要があります。 Cygwinの機能を利用したい場合。

注:Cygwinは、Windowsデスクトップとサーバーシステムで同等に機能します。

なぜCygwinなのか

Windowsプラットフォームでネイティブ*nixコマンドを使用できるようにしたい場合は、Cygwinが引き続き関連します。はい、Windows Subsystem for Linux(WSL)については知っていますが、CygwinとWSLは同じではありません。 Cygwinは、ネイティブWindows環境で*nixコマンドの能力を提供します。オペレーティングシステムとこのユーティリティのコレクションの間に、エミュレーション、仮想マシン、および追加のレイヤーはありません。実際、これらはWindowsプラットフォーム用にコンパイルされた本格的なオープンソースコマンドです。

Cygwinのインストール

通常、各プロンプトのデフォルトオプションを受け入れることができます。選択の余地がある場合は、ガイダンスを提供します。自分で選択することもできますが、これらの選択は私の環境と作業方法に最適であることがわかりました。

Windowsシステムでブラウザを開き、CygwinWebサイトをポイントします。 setup-x86_64.exeを実行してCygwinをインストールするを選択します セットアップ実行可能ファイルをダウンロードするためのリンク。実行可能ファイルを実行してインストールを開始し、[次へ]をクリックします Cygwin Setup 画面。

インストールタイプの選択 画面で、必要なインストールのタイプを選択します。私自身は、常にデフォルトのインターネットからインストールを選択します。 。

次へをクリックします 続行します。

Cygwinディレクトリとそのすべてのサポートファイルおよびバイナリをインストールする場所を選択します。デフォルトはC:\cygwin64, しかし、私はそれをC:\cygwinに変更します 将来私を少し幸せにするために。また、すべてのユーザーがCygwinにアクセスできるようにします。

次へをクリックします 続行します。

Cygwinにファイルをダウンロードさせたいディレクトリを入力します。私はいつもC:\Tempを使います。存在しないディレクトリを選択すると、インストーラはそのディレクトリを作成するように求めます。

次へをクリックします 続行します。

インターネット接続の種類を選択します。ある種のプロキシがある場合は、ここに設定を入力します。鉱山は直接接続です。わからない場合は、直接試してください。それでも問題が解決しない場合は、ブラウザの設定でプロキシ設定を確認してください。

次へをクリックします 続行します。

この画面でダウンロードサイトを選択します。リストから1つを選択するか、独自のものを追加します。私は論理的な理由もなく常にmirrors.xmission.comを選択します。私は長い間それを使い続けてきましたが、それは機能します。いずれの選択でも機能すると思います。

次へをクリックします 続行します。

[あなたも好きかもしれません:LinuxシステムをActiveDirectoryドメインに参加させる方法]

パッケージの選択

最後に、パッケージ選択画面が表示されます。何も選択せずにデフォルトのインストールを続行すると、C:\cygwin\binに*nixコマンドの完全な補完が表示されます。 ディレクトリ。数が多すぎてリストできませんが、これは標準コマンドのリストです。

さまざまなカテゴリを熟読し、Linuxシステムで使用しているものに基づいて選択することをお勧めします。私は通常、OpenSSH、Bash、Bash-completion、Python、Tk / Tcl、およびその他のランダムなアプリケーションを選択します。選択したら、[次へ]をクリックします 続行します。

選択内容を確認して確認します。選択内容の依存関係は満たされるので、心配しないでください。 次へをクリックします 選択したパッケージのインストールを開始します。

選択内容とインターネット速度によっては、インストールに数分から1時間近くかかる場合があります。

最後の画面は、インストールが完了したことを通知し、いくつかの便利なアイコンを作成するように促します。私はいつもアイコンを作成します。 完了をクリックします インストールプロセスを完了します。

環境PATH変数の設定

最良の結果を得るには、C:\ cygwin\binディレクトリをPATH環境変数に追加する必要があります。 Cygwin binディレクトリを含むようにシステムパスを設定するには、「environment」を検索し、コントロールパネルオプションを選択します。システム環境変数を編集します 、表示されたとき。 環境変数を選択します システムプロパティ 画面。

環境変数について 画面で、パスを選択します システム変数から ペインをクリックし、[編集...]をクリックします 。 [新規]をクリックします。 C:\cygwin\binと入力します フィールドに入力して、[ OK ]をクリックします 終わった時に。 OKをクリックします 他の画面でエントリを保存し、システムプロパティを閉じます ウィンドウ。

このシステム環境変数を設定すると、実行可能ファイルへのフルパスを指定せずにCygwinコマンドを実行できます。これはスクリプト作成にも便利です。

スクリプティングノート

Cygwinがインストールされ、バイナリがシステムパスにあるので、これをどのように機能させるのか疑問に思われるかもしれません。 Bashを呼び出すには、CMDウィンドウを開き、bash <ENTER>と入力します。 。これで、Linuxとまったく同じように機能するBashシェルができました。 clearなどのいくつかのコマンドを試してください 、lsls -lapwd 、など。

あなたがそれらに気づいていない場合、新しいユーザーにイライラする可能性のあるいくつかの違いがあります。 Bashでは、ドライブC:とD:が/cygdrive/cとしてマウントされていることに気付くでしょう。 および/cygdrive/d 、 例えば。したがって、C:\Temp ディレクトリは/cygdrive/c/tempです CygwinBashで。

/などの使い慣れたディレクトリ 、/usr/bin 、および/usr/lib C:\cygwinの下に存在します C:\cygwinを使用 /としてのディレクトリ 。このレイアウトがわからない場合は、別のCMDを開いてください ウィンドウとCD C:\cygwinに ディレクトリを作成し、両方のCMDでディレクトリを確認します およびBash

まず、CMDリスト。

DIR C:\cygwin

Volume in drive C has no label.
 Volume Serial Number is ACBE-2D0D

 Directory of C:\cygwin

10/15/2020  06:58 AM    <DIR>          .
10/15/2020  06:58 AM    <DIR>          ..
10/15/2020  06:57 AM    <DIR>          bin
10/15/2020  06:58 AM            53,342 Cygwin-Terminal.ico
10/15/2020  06:57 AM                88 Cygwin.bat
10/15/2020  06:58 AM           157,097 Cygwin.ico
10/15/2020  06:57 AM    <DIR>          dev
10/15/2020  06:57 AM    <DIR>          etc
10/15/2020  06:56 AM    <DIR>          home
10/15/2020  06:57 AM    <DIR>          lib
10/15/2020  06:57 AM    <DIR>          sbin
10/15/2020  06:57 AM    <DIR>          tmp
10/15/2020  06:57 AM    <DIR>          usr
10/15/2020  06:57 AM    <DIR>          var
               3 File(s)        210,527 bytes
              11 Dir(s)  31,950,209,024 bytes free

そして、Bashリスト。

ls /

Cygwin-Terminal.ico		Cygwin.ico	cygdrive	etc	lib	sbin	usr
Cygwin.bat			bin 		dev		home  proc 	tmp	var

したがって、これらの異常から、Windows上のBashは* nix Bashと100%同等ではないことがわかります。一部のスクリプトは直接翻訳されますが、他のスクリプトはウィンドウ化する必要があります。つまり、パスの違い、マウントの違い、およびいくつかのファイルの場所の違いに対応するようにカスタマイズされています。 Windows環境のハイブリッド化の非常に優れた点の1つは、Windowsコマンドラインコマンドも使用できることです。それらをスクリプトに非常に簡単に統合できます。実行可能ファイルへのフルパスをCygwin形式(/cygdrive/c/windows/system32/blah.exe)で指定することを忘れないでください。 。

[無料コース:仮想化とインフラストラクチャの移行の技術概要。 ]

まとめ

Cygwinは、特に私たちのほとんどがそうであるように、異種環境で作業しなければならない人にとって、優れたクロスプラットフォームツールセットです。 lsと入力した回数を数えられません 、またはその他のLinuxコマンドをCMDウィンドウで実行すると、失敗します。 Cygwinは、スクリプトを1回記述し、わずかな調整を加えるだけでどこでも使用できるようにする拡張機能を提供します。可能性を想像してみてください。ここで、Ansibleをミックスに追加して、可能性をもう一度想像してください。幸福をさらに高めるために、.exeファイル拡張子を持つC:\ cygwin \ binの下のすべての実行可能ファイルは、Bashにいる必要なしにCMDウィンドウで実行することもできます。面白い?そう思いました。


Linux
  1. LinuxでのCronを使用したシステムタスクのスケジューリング

  2. Windows とネイティブ API のシステム コール?

  3. GNUWin32 と cygwin の違い

  1. straceを使用したLinuxでのシステムコールの理解

  2. diskpartを使用してWindowsServerのボリュームを拡張する

  3. ptrace() でシステム コールをキャンセルする

  1. Linuxシャットダウンコマンド(例付き)

  2. 侵害されたWindowsサーバーを調査する

  3. DISMを使用してシステムイメージを修復する