Microsoft の Windows 用新しい Linux ユーティリティは的外れ – WSL が勝てる理由はここにあります

Microsoft の Windows 用新しい Linux ユーティリティは的外れ – WSL が勝てる理由はここにあります


Microsoft は 2000 年代には Linux を非難していましたが、現在では Windows 上で Linux プログラムを実行する方法を模索することを止められないようです。 WSL (Windows Subsystem for Linux) は Windows 上で Linux ユーティリティを実行する主な方法でしたが、同社はいくつかの一般的な Linux コマンド ライン ツールをコマンド ラインと PowerShell に移植しました。私はそれらを試してみることにしました。

Windows 用 Coreutils とは何ですか?

Windows コマンドライン上の従来の Linux/Unix ユーティリティ

Microsoft の Windows 用新しい Linux ユーティリティは的外れ – WSL が勝てる理由はここにあります

GNU Core Utilities (coreutils) は、Linux ディストリビューションでよく使われるユーティリティのほとんどが含まれるパッケージです。これらは標準の Unix ユーティリティのポートです。 ls、pwd、echo、sort など 100 を超えるツールが含まれています。このパッケージは非常に一般的であるため、Linux ディストリビューションが正しく「GNU/Linux ディストリビューション」と呼ばれる理由の 1 つになっています。

Linux ディストリビューションに Coreutils がデフォルトでインストールされていない場合は、代わりに基本的なコマンドを実装するための、BusyBox などの軽量の代替手段が用意されている可能性があります。また、シェルはそのユーティリティを「組み込み」として実装します。これは、ユーティリティをディスクからロードするよりもメモリからロードする方が速いためです。

利用可能な coreutils のバージョンは GNU バージョンだけではありません。別のプロジェクトである uutils は、Rust で書かれた独自のバージョンの coreutils をリリースしました。 Rust はメモリ安全で重大なバグのリスクを軽減できるため、システム プログラミングでの人気が高まっています。このバージョンの coreutils は、Microsoft が Windows コマンド ラインと PowerShell に移植したものです。 Linux に慣れているユーザーが、WSL を備えた Linux ディストリビューションの代わりにネイティブの Windows コマンド ラインを使用するときに、新しいコマンドを学習してギアを切り替える必要がなくなるという考えです。

Windows 用 Coretils のインストール

ウイング付きで簡単設置

Coreutils for Windows のインストールは非常に簡単でした。 WinGet を使用してインストールする必要がありました。 WinGet は、Linux コンピューターで使用したことがある apt や pacman などのパッケージ マネージャーに似た Windows 用のパッケージ マネージャーです。

必要なのは 1 つのコマンドだけです。

winget install Microsoft.Coreutils
winget を使用して PowerShell に Microsoft Coreutils をインストールします。

良かったのは、入力する必要がなかったことです sudo WinGet は、管理者としてインストールするための UAC プロンプトを自動的に開くため、インストールする前に。

Windows 用 Coreutils の使用

PowerShell が気に入らないことを願っています

coreutils をインストールしたら、それが Windows コマンド ライン ワークフローにどの程度適合するかを確認します。

PowerShellでいくつかのコマンドを試してみました。そこで私はすぐに Windows 上の coreutils の欠点に遭遇しました。 Microsoft はすでに、ls や pwd など、多くの一般的な Linux コマンドを PowerShell に移植しています。これらのエイリアスは、coreutils サービスの多くをすでにオーバーライドしています。

coreutils の GitHub ページには、coreutils と PowerShell コマンドとの競合もリストされています。ほとんどのコマンドは、PowerShell コマンドおよびエイリアスと競合します。

Coreutfils for Windows の PowerShell 競合のリスト。

これは、この新しいパッケージを使用したい場合は、コマンド ラインに移動する必要があることを意味します。これは、1993 年の Windows NT 3.1 まで遡る、Windows の古いコマンド ライン インターフェイスです。このインターフェイスは、古い MS-DOS インターフェイスに似ているため、よく「DOS ボックス」と呼ばれますが、実際には別のコマンド ラインです。これは Windows ターミナルの第一級市民となっていますが、Windows の主要なコマンド ライン インターフェイスではありません。 PowerShellです。 Microsoft は、コマンド ラインを PowerShell に置き換えて非推奨にすることを発表しましたが、舞台裏のハウスキーピング タスクでコマンド ラインに依存しているプログラムの数を考えると、すぐに廃止されるわけではないようです。

実際にコマンド ラインでこれらのユーティリティを使用するのは、慣れ親しんだものでした。 ls、cat などのユーティリティは、ほぼ期待どおりに動作しました。これらはほとんどが既存のサービスのそのままの移植であるため、これはそれほど驚くべきことではありません。

私が WSL を使い続ける理由

WSL はすでに Windows 向け Coreutils の仕事をはるかにうまく行っています

WSL および PowerShell ウィンドウで Windows と Linux のコマンドを一緒に実行します。

Microsoft は、このパッケージを私のような人が Windows と Linux のコマンド ラインを簡単に切り替えられるようにすることを意図していましたが、このパッケージの欠点により、Windows から Linux コマンドを実行したい場合は WSL に固執する可能性が高くなります。

主な理由は、使い慣れた Linux コマンドを実行できるターミナル ベースのツールである WSL が Windows にすでに存在していたことです。 WSL を使用すると、Ubuntu、Debian、Fedora、Windows などの一般的な Linux ディストリビューションをインストールできます。すでに Windows と PowerShell のコマンドを相互のコマンド ラインから組み合わせて使用​​できます。を追加することで、PowerShell から Linux コマンドを実行し、WSL から Windows コマンドを実行できます。 .exe コマンド用。

これは、すでに Linux に精通していて、おそらくすでに WSL がインストールされている私のような人にとって、coreutils パッケージはコマンド ラインにあまり新しい機能を追加しないことを意味します。

もう 1 つの大きな欠点は、パッケージがコマンド ラインに依存していることです。 Microsoft は今後もコマンド ラインを利用できるようにするようですが、同社は企業顧客向けのレガシー テクノロジをサポートすることで知られているため、それは優先事項ではありません。 PowerShell と WSL は、Windows の主要なコマンド ライン インターフェイスのようです。

さらに悪いことに、コマンド ラインはシングルタスクであるため、ジョブ制御やマルチターミナルのような機能は利用できません。私は PowerShell のようなもの、あるいはさらに良いのは、完全なマルチタスク機能を備えたすぐに利用できる Linux シェルのようなものを好みます。

DOS および Windows には Unix に似たユーティリティの伝統があり、その起源は 1980 年代に遡ります。当時、Microsoft は「Xenix」として知られる Unix のバージョンを自社の将来にしようとしていたのです。 Microsoft は、この移行に備えて、DOS サービスを Unix サービスと同じように動作させることさえできました。そうでないことは歴史が証明しているが、Linux と Windows を統合するという同社の取り組みは終わりに近づいているようだ。


Windows 上の Linux にパッチを適用するには WSL を使い続けるつもりです

いくつかのアイデアは、実際に試してみるまでは良さそうに見えます。 Windows のコマンド ラインから Unix のようなユーティリティを実行するというアイデアは気に入りましたが、実行するには PowerShell で実行する必要があります。おそらく将来のバージョンでは、Microsoft は競合を排除し、coreutils をより便利にすることができるでしょう。 Linux と Windows の間のギャップを埋めるために、WSL を引き続き使用していきます。

Leave a Reply

Your email address will not be published. Required fields are marked *

ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಚುನಾವಣಾ ಫಲಿತಾಂಶಗಳು ಸಿಎ ಚುನಾವಣಾ ಫಲಿತಾಂಶಗಳು ಚುನಾವಣಾ ಫಲಿತಾಂಶಗಳು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಚುನಾವಣೆ ಚುನಾವಣಾ ಫಲಿತಾಂಶಗಳು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಪ್ರಾಥಮಿಕ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಪ್ರಾಥಮಿಕ ಫಲಿತಾಂಶಗಳು ಇಂದು ಪ್ರಾಥಮಿಕ ಚುನಾವಣಾ ಫಲಿತಾಂಶಗಳು ಸಿಎ ಗವರ್ನರ್ ರೇಸ್ ಫಲಿತಾಂಶಗಳು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ ಸ್ಟೀವ್ ಹಿಲ್ಟನ್ ಗವರ್ನರ್ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಚುನಾವಣೆಗಳು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಚುನಾವಣಾ ಫಲಿತಾಂಶಗಳು 2026 ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ ರೇಸ್ ಫಲಿತಾಂಶಗಳು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಸಿಎ ಪ್ರಾಥಮಿಕ ಫಲಿತಾಂಶಗಳು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಪ್ರಾಥಮಿಕ 2026 ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ ರೇಸ್ ಪೋಲ್ಸ್ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾದ ಗವರ್ನರ್ ಅನ್ನು ಯಾರು ಗೆದ್ದರು ಲಾ ಗವರ್ನರ್ ರೇಸ್ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ ರೇಸ್ ಅನ್ನು ಯಾರು ಗೆದ್ದರು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಪ್ರಾಥಮಿಕ ಫಲಿತಾಂಶಗಳು 2026 ಪ್ರಾಥಮಿಕ ಫಲಿತಾಂಶಗಳು ಸಿಎ ಗವರ್ನರ್ ರೇಸ್ ಸಿಎ ಚುನಾವಣಾ ಫಲಿತಾಂಶಗಳು 2026 ಗ್ಯಾವಿನ್ ನ್ಯೂಸಮ್ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಫಲಿತಾಂಶಗಳು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ 2026 ಅನ್ನು ಯಾರು ಗೆದ್ದರು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ ಪ್ರೈಮರಿ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾದಲ್ಲಿ ಗವರ್ನರ್ ರೇಸ್ ಅನ್ನು ಯಾರು ಗೆದ್ದರು ಸಿಎ ಪ್ರೈಮರಿ ಚುನಾವಣಾ ದಿನ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ ಫಲಿತಾಂಶಗಳು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ ಚುನಾವಣಾ ಫಲಿತಾಂಶಗಳು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾದ ಫಲಿತಾಂಶಗಳು ಚುನಾವಣೆ ಸಿಎ ಪ್ರಾಥಮಿಕ ಚುನಾವಣೆ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಚುನಾವಣೆಗಳು ಸಿಎ ಚುನಾವಣೆಗಳು ಸಿಎ ಗವರ್ನರ್ ಹಿಲ್ಟನ್ ಗವರ್ನರ್ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಪ್ರಾಥಮಿಕ ಚುನಾವಣೆ ಗವರ್ನರ್ ರೇಸ್ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಸಿಎ ಗವರ್ನರ್ ರೇಸ್ ಪೋಲ್ಸ್ ಲೈವ್ ಪ್ರಾಥಮಿಕ ಚುನಾವಣೆ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ ರೇಸ್ ಅನ್ನು ಯಾರು ಗೆಲ್ಲುತ್ತಿದ್ದಾರೆ ಚುನಾವಣೆ ಸಿಎ ಚುನಾವಣೆ ಬೆಕೆರಾ ಗವರ್ನರ್ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಮತದಾನದ ಫಲಿತಾಂಶಗಳು ಸ್ಟೀವ್ ಹಿಲ್ಟನ್ ಯಾರು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ ಚುನಾವಣೆ ಸಿಎ ಚುನಾವಣೆ ಸಿಎ ಚುನಾವಣೆಗಳು ಸಿಎ ಪ್ರಾಥಮಿಕ ಚುನಾವಣೆಗಳು ಚುನಾವಣೆಗಳು ಇಂದು ಚುನಾವಣಾ ಫಲಿತಾಂಶಗಳು ಸಿಎ ಗವರ್ನರ್ ರೇಸ್ ಅನ್ನು ಯಾರು ಗೆಲ್ಲುತ್ತಾರೆ ಸಿಎ ಮತದಾನದ ಫಲಿತಾಂಶಗಳು ಸಿಎ ಚುನಾವಣೆಗಳು 2026 ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ ರೇಸ್