Anbefalet, 2020

Redaktørens Valg

Sådan fungerer Linux Bash Shell på Windows 10

Med udgivelsen af ​​jubilæumsopdateringen til Windows 10 annoncerede Microsoft Windows Subsystem for Linux (WSL) - en måde at køre rigtig, indfødt 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-mode Ubuntu Linux-billede oven på Windows.

Det betyder, at du kan køre Linux kommandolinjeværktøjer som ls, grep, top og chmod . Da du kører ægte Ubuntu nedenunder, kører lsb-release -a vil give dig følgende output:

Du kan bruge apt-get og venner til at installere værktøjer som vim, git, screen, tmux eller endda spille et spil nethack:

Husk dog, at dette system er i beta og ikke beregnet til serverens arbejdsbyrder. Det er kun et værktøj til udviklere (og entusiaster) at teste deres Linux-centreret 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, selv om det også er muligt med visse hackere. Efter at have ryddet det ud, lad os tage et kig på, hvordan Linux-skalen virker i Windows 10.

Windows Subsystem til Linux (WSL)

Ifølge den officielle dokumentation er "WSL en samling af komponenter, der gør det muligt at køre Linux Linux ELF64-binære filer på Windows". Det gør det ved at implementere en virtualiseret Linux-kerneinterface oven på Windows NT-kernen. Det betyder, at det ikke bruger nogen kode fra den egentlige Linux-kerne - når en applikation laver et Linux-specifikt systemopkald (syscall), oversætter WSL det til den tilsvarende Windows-syscall, som så gør alt det tunge løft.

Forskelle fra virtuelle maskiner og Cygwin

Lad os nu se, hvordan Linux Bash Shell på Windows 10 er anderledes end de virtuelle maskiner og Cygwin.

Virtuelle maskiner

Du kan tænke, "Nå, hvorfor bruge det her? Hvorfor ikke bare bruge en Linux VM i Windows? "

Sammenlignet med en virtuel maskine bruger WSL færre ressourcer . Det lader dig også arbejde med dine filer som du ville på Linux, samtidig med at du får fuld adgang til det underliggende Windows-filsystem uden at skulle stole på delte mapper eller netværksandele.

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 fremgangsmåder er, at Cygwin ikke er en måde at køre indbyggede Linux-binære filer på Windows. Det giver kun et sæt af GNU og Open Source-værktøjer, der giver funktionalitet svarende til en Linux-distribution på Windows.

På den anden side er WSL-værktøjer native Linux ELF-64 kompilerede binære filer, der kører på Windows. For eksempel vil kørsel med en apt-get install emacs kommando i WSL downloade og installere de samme filer som på en Ubuntu 14.04-installation, fra de officielle Ubuntu-depoter.

Brugere, Tilladelser og Filsystemer i WSL

File System Hierarchy

WSL er installeret under den aktuelle brugers %LocalAppData%\lxss\rootfs . Dette kaldes WSL Environment og fungerer som Linux " / " (root) bibliotek. Hvis dit brugernavn på Windows f.eks. Er beebom, vil Linux's rodmappe være placeret i C:\Users\beebom\AppData\Local\lxss\rootfs. Det betyder, at hver Windows-bruger kan have sit eget WSL-miljø og kan foretage ændringer som apt-get install 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 er C:\ monteret under /mnt/c, D:\ er monteret under /mnt/d osv.

Brugere og Tilladelser

Når du først installerer WSL, vil det bede dig om at oprette en ny standard Linux-bruger. Denne bruger behøver ikke at have samme navn som den nuværende Windows-bruger og behandles som en separat enhed generelt. Du kan endda oprette flere Linux-brugere, der styres af en enkelt Windows-bruger.

Det er muligt at opnå root privilegier ved hjælp af sudo kommandoen. Husk at være root i WSL kun påvirker brugerens rettigheder i Linux-miljøet og filsystemet - de har ingen indflydelse på de tildelte Windows-privilegier. For eksempel kan en WSL-session med Windows-administratorrettigheder være cd /mnt/c/Users/Administrator mens en Bash-session uden administratorrettigheder vil se Tilladelse nægtet. Skrivning sudo cd /mnt/c/Users/Administrator giver ikke adgang til administratorens mappe, da tilladelserne er begrænset af Windows.

Linux-specifikke filsystemfunktioner

Linux er et case-sensitive system. Det betyder at photo.png og Photo.png behandles som to forskellige filer. Selv om Windows som standard ikke er følsomfølsom, er det stadig tilfældet. Hvilket betyder, at mens photo.png og Photo.png ikke behandles som to forskellige filer, er det helt sikkert klar over forskellen i tilfælde.

WSL håndterer sårfølsomhed ligesom på Linux. Det er endda muligt at oprette to filer, hvis navn kun adskiller fra hvert enkelt tilfælde uden for WSL-miljøet. Husk dog, at mange Windows-programmer ikke kan håndtere sådanne situationer og måske ikke kan åbne en eller begge filer.

Tilsvarende understøttes symbolske links, forudsat at du kører et NTFS-filsystem. Symboliske links fungerer dog kun inden for WSL og kan ikke løses af andre Windows-programmer.

Linux understøtter også næsten alle specialtegn inden for filnavne, mens Windows er mere restriktive. WSL tillader dog at bruge sådanne specialtegn, forudsat at de er begrænset til Linux-systemets miljø.

Klar til at køre Linux Command Line på Windows?

Så det er sådan, at Ubuntu Bash eller Linux Bash Shell, også kendt som Windows Subsystem for 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 villet bruge Linux-kommandoer, kom i gang, og hvis du har spørgsmål, kommentarer eller tip, skal du sørge for at fortælle os i kommentarfeltet.

Top