Med frigivelsen af jubilæumsopdateringen til Windows 10 annoncerede Microsoft Windows-undersystem til Linux (WSL) - en måde at køre ægte, native Bash på Windows 10, som understøtter udførelse af native Linux-binære filer. Det gør det ved at køre et bruger Linux-Ubuntu-billede oven på Windows.
Dette betyder, at du kan køre Linux kommandolinjeværktøjer som f.eks ls
, grep
, top
og chmod
. Da du kører ægte Ubuntu nedenunder, kører lsb-frigivelse -a
giver dig følgende output:
Du kan bruge apt-get
og venner til at installere hjælpeprogrammer som f.eks vim
, git
, skærm
, tmux
, eller endda spille et spil nethack:
Husk dog, at dette system er i beta og ikke beregnet til serverarbejdsbelastninger. Det er kun et værktøj til udviklere (og entusiaster) til at teste deres Linux-centrerede applikationer på Windows uden ændringer. Dette er heller ikke et værktøj beregnet til at køre Linux GUI-applikationer eller miljøer som Gnome eller KDE, selvom det også er muligt med visse hacks. Efter at have ryddet det ud, lad os se på, hvordan Linux-shell fungerer i Windows 10.
Windows-undersystem til Linux (WSL)
I henhold til den officielle dokumentation er “WSL en samling af komponenter, der gør det muligt at køre oprindelige Linux ELF64-binære filer på Windows”. Det gør det ved at implementere en virtualiseret Linux-kerneinterface oven på Windows NT-kernen. Det vil sige, det bruger ikke nogen kode fra den aktuelle Linux-kerne - når en applikation foretager et Linux-specifikt systemopkald (syscall), oversætter WSL det til det tilsvarende Windows-syscall, som derefter gør alt det tunge løft.
Forskelle fra virtuelle maskiner og Cygwin
Lad os nu se på, hvordan Linux Bash Shell på Windows 10 er forskellig i forhold til virtuelle maskiner og Cygwin.
Virtuelle maskiner
Du tænker måske, ”Nå, hvorfor bruge det? Hvorfor ikke bare bruge en Linux-VM i Windows? ”
Sammenlignet med en virtuel maskine, WSL bruger færre ressourcer. Det giver dig også mulighed for at arbejde med dine filer som på Linux, samtidig med at du får fuld adgang til det underliggende Windows-filsystem uden at skulle stole på delte mapper eller netværksshares..
Cygwin
En anden populær metode til at køre populære Linux / Unix-lignende værktøjer på Windows er Cygwin. Den største forskel mellem de to tilgange er, at Cygwin er ikke en måde at køre oprindelige Linux-binære filer på på Windows. Det giver kun et sæt GNU- og Open Source-værktøjer, der giver funktionalitet lignende til en Linux-distribution på Windows.
På den anden side, WSL-værktøjer er native Linux ELF-64 kompilerede binære filer, der kører på Windows. For eksempel at køre en apt-get installer emacs
kommando i WSL vil downloade og installere de samme filer som på en Ubuntu 14.04-installation fra de officielle Ubuntu-arkiver.
Brugere, tilladelser og filsystemer i WSL
Filsystemhierarki
WSL er installeret under den aktuelle brugers % LocalAppData% \ lxss \ rootfs
vejviser. Dette er kendt som WSL-miljø og fungerer som Linux “/
”(Rod) -mappe. For eksempel, hvis dit brugernavn på Windows er beebom
, Linux rodmappe vil være placeret i C: \ Brugere \ beebom \ AppData \ Local \ lxss \ rootfs.
Dette betyder, at hver Windows-bruger kan have sit eget WSL-miljø og kan foretage ændringer som f.eks apt-get installation
softwarepakker uden at påvirke andre Windows-brugere.
Det er muligt at få adgang til det underliggende Windows-filsystem i WSL. Alle drev er monteret under / mnt.
For eksempel, C: \
er monteret under / mnt / c
, D: \
er monteret under / mnt / d
, etc.
Brugere og tilladelser
Når du først installerer WSL, vil den bede dig om at oprette en ny standard Linux-bruger. Denne bruger behøver ikke at have det samme navn som den nuværende Windows-bruger og behandles generelt som en separat enhed. Du kan endda oprette flere Linux-brugere, der styres af en enkelt Windows-bruger.
Det er muligt at få rod
privilegier ved hjælp af sudo
kommando. Husk at være rod
i WSL påvirker kun brugerens rettigheder inden for Linux-miljøet og filsystemet - de har ingen indflydelse på de tildelte Windows-rettigheder. For eksempel kan en WSL-session med Windows-administratorrettigheder muligvis cd / mnt / c / Brugere / administrator
mens en Bash-session uden administratorrettigheder ville se Tilladelse nægtet. Indtastning sudo cd / mnt / c / Brugere / administrator
giver ikke adgang til administratorens bibliotek, da tilladelserne er begrænset af Windows.
Linux-specifikke filsystemfunktioner
Linux er en store og små bogstaver system. Det betyder det foto.png
og Foto.png
behandles som to forskellige filer. Mens Windows ikke er tilfældet følsom som standard er det stadig tilfældet klar over. Hvilket betyder, at mens foto.png
og Foto.png
behandles ikke som to forskellige filer, det er det bestemt klar over af forskellen i sagen.
WSL håndterer store og små bogstaver som på Linux. Det er endda muligt at oprette to filer, hvis navn kun adskiller sig efter sag uden for WSL-miljøet. Husk dog, at mange Windows-applikationer ikke kan håndtere sådanne situationer og muligvis ikke kan åbne en eller begge filer.
Tilsvarende, symbolske links understøttes, forudsat at du kører et NTFS-filsystem. Imidlertid fungerer symbolske links kun i WSL og kan ikke løses af andre Windows-applikationer.
Linux understøtter også næsten alle specialtegn inde i filnavne, mens Windows er mere restriktivt. WSL tillader dog brug af sådanne specialtegn, forudsat at de er begrænset til Linux-systemets miljø.
SE OGSÅ: Sådan synkroniseres din OneDrive-konto på en Linux-computer
Klar til at køre Linux Command Line på Windows?
Så det er sådan, Ubuntu Bash eller Linux Bash Shell, også kendt som Windows Subsystem til Linux, fungerer på Windows 10 (med jubilæumsopdateringen). Sammen med dets arbejde lærte vi også, hvordan det er anderledes og bedre end de traditionelle metoder til at køre Linux-specifikke kommandoer på Windows. Så hvis du altid har ønsket at bruge Linux-kommandoer, skal du komme i gang, og hvis du har spørgsmål, kommentarer eller tip, skal du sørge for at give os besked i kommentarfeltet.