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

in tech

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

Windows 用 Coreutils とは何ですか?

Windows コマンドラインのクラシック Linux/Unix ユーティリティ

Windows 用 Coreutils の Github ページ。

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

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

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

Windows 用 Coreutils のインストール

ウイングゲットで簡単取り付け

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 競合のリスト。

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

コマンド プロンプトでこれらのユーティリティを実際に使用するのは、親しみのあるものでした。これらのユーティリティは、ls、cat、その他を含め、ほとんどが私が期待したとおりに動作しました。これらは主に既存の電力会社のストレートポートであるため、これはそれほど驚くべきことではありません。

私が WSL にこだわる理由

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

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 は今後もコマンド プロンプトを利用できるようにするようですが、同社は企業顧客向けのレガシー テクノロジをサポートすることでよく知られているため、優先事項ではありません。 Windows では PowerShell と WSL が主なコマンド ライン インターフェイスのようです。

さらに悪いことに、コマンド プロンプトはシングルタスクであるため、ジョブ制御やターミナルの多重化のようなものは利用できません。私としては、PowerShell のようなもの、あるいはさらに良いことに、完全なマルチタスク能力を備えた Linux シェルのようなものを利用したいと考えています。

DOS および Windows には Unix に似たユーティリティの伝統があり、その起源は、Microsoft が「Xenix」と呼ばれる自社バージョンの Unix を会社の未来にすることを意図していた 1980 年代にまで遡ります。 Microsoft は、この移行に備えて、DOS ユーティリティを Unix の対応物と同じように動作させることさえできました。歴史は異なった展開を見せたが、Linux と Windows を融合するという同社の取り組みは一周しつつあるようだ。


Windows 上での Linux 修正には WSL を使い続けるつもりです

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

このテーマについてさらに詳しく知りたい方は以下をご覧ください

完全ガイドはこちら

関連記事

前の投稿
ポモドーロメソッドを使用して、より多くの動きをし、座る時間を減らしましょう
次の投稿
Anthropic、最新モデルは「神話レベル」だが厳格な安全対策が施されていると発表