Med lanseringen av Anniversary Update för Windows 10 meddelade Microsoft att Windows Subsystem för Linux (WSL) - ett sätt att köra äkta, native Bash på Windows 10, som stöder körning av inbyggda Linux-binärer. Det gör det genom att köra en användarläge Ubuntu Linux-bild ovanpå Windows.
Detta innebär att du kan köra Linux-kommandoradsverktyg som ls
, grep
, topp
och chmod
. Eftersom du kör äkta Ubuntu under, kör lsb-release -a
ger dig följande resultat:
Du kan använda apt-get
och vänner att installera verktyg som vim
, git
, skärm
, tmux
, eller till och med spela en omgång nethack:
Tänk dock på att detta system är i beta och inte avsedd för serverbelastningar. Det är bara ett verktyg för utvecklare (och entusiaster) att testa sina Linux-centrerade applikationer på Windows utan ändringar. Detta är inte heller ett verktyg som är avsett att köra Linux GUI-applikationer eller miljöer som Gnome eller KDE, även om det också är möjligt med vissa hack. Efter att ha rensat ut det, låt oss ta en titt på hur Linux-skalet fungerar i Windows 10.
Windows-delsystem för Linux (WSL)
Enligt den officiella dokumentationen är ”WSL en samling komponenter som gör det möjligt för inbyggda Linux ELF64-binärer att köras på Windows”. Det gör det genom att implementera ett virtualiserat Linux-kärngränssnitt ovanpå Windows NT-kärnan. Det vill säga att den inte använder någon kod från den faktiska Linux-kärnan - när en applikation gör ett Linux-specifikt systemanrop (syscall) översätter WSL det till motsvarande Windows-syscall, vilket sedan gör alla tunga lyft.
Skillnader från virtuella maskiner och Cygwin
Låt oss nu titta på hur Linux Bash Shell på Windows 10 är annorlunda jämfört med sådana som virtuella maskiner och Cygwin.
Virtuella maskiner
Du kanske tänker, ”Tja, varför använda det här? Varför inte bara använda en Linux-virtuell dator i Windows? ”
Jämfört med en virtuell maskin, WSL använder färre resurser. Det låter dig också arbeta med dina filer som på Linux, samtidigt som du ger dig fullständig åtkomst till det underliggande Windows-filsystemet utan att behöva förlita dig på delade mappar eller nätverksresurser.
Cygwin
En annan populär metod för att köra populära Linux / Unix-liknande verktyg på Windows är Cygwin. Den största skillnaden mellan de två metoderna är att Cygwin är inte ett sätt att köra inbyggda Linux-binärer på Windows. Det ger bara en uppsättning GNU- och Open Source-verktyg som ger funktionalitet liknande till en Linux-distribution på Windows.
Å andra sidan, WSL-verktyg är inbyggd Linux ELF-64 sammanställda binärer som körs på Windows. Till exempel kör en apt-get install emacs
kommandot i WSL kommer att ladda ner och installera samma filer som på en Ubuntu 14.04-installation, från de officiella Ubuntu-förvaren.
Användare, behörigheter och filsystem i WSL
Filsystemshierarki
WSL installeras under den aktuella användarens % LocalAppData% \ lxss \ rootfs
katalog. Detta är känt som WSL-miljö och fungerar som Linux “/
”(Root) -katalog. Till exempel om ditt användarnamn på Windows är beebom
, Linux rotkatalog kommer att finnas i C: \ Användare \ beebom \ AppData \ Local \ lxss \ rootfs.
Detta innebär att varje Windows-användare kan ha sin egen WSL-miljö och kan göra ändringar som apt-get install
programvarupaket utan att påverka andra Windows-användare.
Det är möjligt att komma åt det underliggande Windows-filsystemet i WSL. Alla enheter är monterade under / mnt.
Till exempel, C: \
är monterad under / mnt / c
, D: \
är monterad under / mnt / d
, etc.
Användare och behörigheter
När du först installerar WSL kommer den att uppmana dig att skapa en ny standard Linux-användare. Den här användaren behöver inte ha samma namn som den nuvarande Windows-användaren och behandlas som en separat enhet i allmänhet. Du kan till och med skapa flera Linux-användare, styrda av en enda Windows-användare.
Det är möjligt att få rot
privilegier med hjälp av sudo
kommando. Tänk på att vara rot
i WSL påverkar endast användarens rättigheter inom Linux-miljön och filsystemet - de har ingen inverkan på de beviljade Windows-behörigheterna. Till exempel kan en WSL-session med Windows-administratörsbehörighet cd / mnt / c / Användare / Administratör
medan en Bash-session utan administratörsbehörigheter skulle se Tillstånd nekad. Skriver sudo cd / mnt / c / Användare / Administratör
ger inte åtkomst till administratörskatalogen eftersom behörigheterna är begränsade av Windows.
Linuxspecifika filsystemfunktioner
Linux är en skiftlägeskänsliga systemet. Det betyder att foto.png
och Photo.png
behandlas som två olika filer. Medan Windows inte är fallet känslig som standard är det fortfarande fall medveten. Vilket betyder att medan foto.png
och Photo.png
behandlas inte som två olika filer, det är det verkligen medveten av skillnaden i fall.
WSL hanterar skiftlägeskänslighet precis som på Linux. Det är till och med möjligt att skapa två filer vars namn bara skiljer sig från fall till fall utanför WSL-miljön. Tänk dock på att många Windows-program inte kan hantera sådana situationer och kanske inte kan öppna en eller båda filerna.
Liknande, symboliska länkar stöds, förutsatt att du kör ett NTFS-filsystem. Symboliska länkar fungerar dock bara inuti WSL och kan inte lösas av andra Windows-applikationer.
Linux stöder också nästan alla speciella karaktärer inuti filnamn, medan Windows är mer restriktivt. WSL tillåter dock användning av sådana specialtecken, förutsatt att de är begränsade till Linux-systemets miljö.
SE OCH: Hur man synkroniserar ditt OneDrive-konto på en Linux-dator
Redo att köra Linux-kommandoraden på Windows?
Så det är så här Ubuntu Bash eller Linux Bash Shell, även känt som Windows Subsystem för Linux, fungerar på Windows 10 (med jubileumsuppdateringen). Tillsammans med dess arbete lärde vi oss också hur det är annorlunda och bättre än de traditionella metoderna för att köra Linux-specifika kommandon på Windows. Så om du alltid har velat använda Linux-kommandon, kom igång och om du har frågor, kommentarer eller tips, se till att meddela oss i kommentarfältet.