Microsofts nye Linux-værktøjer til Windows misser pointen - her er grunden til, at WSL vinder

Indeks
  1. Hvad er Coreutils til Windows?
    1. Klassiske Linux/Unix-værktøjer på Windows Kommandolinjen
  2. Installation af Coreutils til Windows
    1. Lettere installation med Winget
  3. Brug af Coreutils til Windows
    1. Håber du ikke kan lide PowerShell
  4. Hvorfor jeg bliver ved WSL
    1. WSL forbedrer Coreutils på Windows
    2. Jeg holder mig til WSL for Linux på Windows

Microsoft har nu integreret Linux-værktøjer som Coreutils i Windows, hvilket letter brugen af kendte Linux-kommandoer, men WSL forbliver den bedste løsning for Linux-brugere.

Microsoft, der engang kritiserede Linux i 2000'erne, understøtter nu muligheder for at køre Linux-programmer på Windows. WSL, Windows Subsystem for Linux, er i dag den primære metode, men Microsoft har også implementeret nogle Linux-kommandoer direkte i Kommandoprompt og PowerShell. Jeg besluttede at teste dem.

Hvad er Coreutils til Windows?

Klassiske Linux/Unix-værktøjer på Windows Kommandolinjen

GNU Core Utilities, eller coreutils, omfatter mange af de værktøjer, man holder af i Linux. Det er porteringer af standard Unix-værktøjer, inklusive over 100 redskaber som ls, pwd, echo og sort. Det er så udbredt, at mange Linux-distributioner kaldes "GNU/Linux-distributioner".

Hvis en Linux-distro mangler Coreutils, bruges ofte et lettere alternativ som BusyBox til grundlæggende kommandoer. Shell'en implementerer også egne værktøjer som "indbyggede", da de indlæses hurtigere fra hukommelsen.

GNU's version er ikke den eneste. Et andet projekt, uutils, har lavet sin egen version af coreutils i Rust, kendt for sin hukommelsessikkerhed og reducerede fejlrisiko. Det er denne version, Microsoft har portet til Kommandoprompt og PowerShell, så brugere, der kender Linux, slipper for at lære nye kommandoer.

Installation af Coreutils til Windows

Lettere installation med Winget

Instalationen af Coreutils til Windows var ligetil. WinGet gjorde det muligt at installere med minimal indsats. WinGet, en pakkeadministrator for Windows, minder om apt eller pacman, du måske har brugt på Linux.

En enkel kommando er alt, hvad der kræves:

winget install Microsoft.Coreutils

Og så er der ingen brug for sudo; WinGet åbner automatisk en UAC-prompt for at installere som administrator.

Brug af Coreutils til Windows

Håber du ikke kan lide PowerShell

Efter installationen var det tid til at se, hvordan coreutils fungerede i min kommandolinje-arbejdsgang.

Da jeg forsøgte et par kommandoer i PowerShell, stødte jeg på problemer. Microsoft har aliaseret mange Linux-kommandoer, herunder ls og pwd. Disse aliaser tilsidesætter coreutils' værktøjer.

GitHub-siden for coreutils påpeger endda de konflikter, man kan forvente mellem coreutils og PowerShell-kommandoerne. De fleste kommandoer overlapper allerede med PowerShell-kommandoer og aliaser.

Skal du bruge dette nye paket, må du skifte til Kommandoprompt, den ældre kommandolinegrænseflade fra Windows NT 3.1 i 1993. Selvom den kaldes "DOS-boks" for sin lighed med MS-DOS, er det faktisk en anden kommandoprompt. Selvom den har fået opmærksomhed som en del af Windows Terminal, er PowerShell fortsat den primære kommandolinje. Microsoft kan have vurderet Kommandoprompt som forældet, men mange programmer bruger stadig den til vigtige opgaver.

At arbejde med disse værktøjer i Kommandoprompt føltes genkendeligt. De fungerede stort set som forventet, herunder ls, cat og andet. Ingen overraskelse, da de primært er direkte porteringer af...

Hvorfor jeg bliver ved WSL

WSL forbedrer Coreutils på Windows

Microsoft ønskede at lette overgangen mellem Windows og Linux, men manglerne ved dette værktøj holder mig fast i WSL for at køre Linux-kommandoer.

Årsagen?

WSL var allerede tilgængeligt. Her kan jeg installere distroer som Ubuntu, Debian og Fedora. Kombinationen af Windows og PowerShell-kommandoer fungerer problemfrit. En Linux-kommando fra PowerShell? Begynd med en .exe til kommandoens navn, så er du kørende.

Coreutils tilføjer ikke meget for dem, der allerede kender Linux og har WSL installeret.

En anden ulempe er afhængigheden af Kommandoprompt. Microsoft holder sandsynligvis Kommandoprompt i live, men det er ikke deres fokus længere. PowerShell og WSL dominerer.

Desuden er Kommandoprompt enkelttasking uden jobkontrol eller terminalmultiplexing. Jeg foretrækker PowerShell eller en Linux-shell, der tilbyder multitasking.

Der er en lang tradition for Unix-lignende værktøjer på DOS og Windows, som går tilbage til 1980'erne, da Microsoft planlagde at lancere "Xenix." De gjorde endda DOS-værktøjer mere lig Unix for dette formål. Selvom det ikke gik som planlagt, ser det ud til, at fusionen mellem Linux og Windows er på rette vej.

Jeg holder mig til WSL for Linux på Windows

Nogle idéer virker gode på papiret, men falmer i praksis. Jeg var tiltrukket af at køre Unix-lignende værktøjer fra Windows, men de kræver PowerShell for at fungere ordentligt. Måske vil fremtidige versioner løse konflikterne og øge coreutils' anvendelighed. Indtil da bruger jeg WSL til at brobygge mellem Linux og Windows.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

Go up