Aanbevolen, 2019

Editor'S Choice

Hoe Linux Bash Shell werkt op Windows 10

Met de release van de Anniversary Update voor Windows 10, kondigde Microsoft het Windows Subsystem for Linux (WSL) aan - een manier om echte, native Bash op Windows 10 uit te voeren, die het uitvoeren van native Linux binaries ondersteunt. Het doet dit door een gebruikersmodus Ubuntu Linux-afbeelding op Windows te laten draaien.

Dit betekent dat je Linux-opdrachtregelprogramma's kunt uitvoeren, zoals ls, grep, top en chmod . Aangezien je echte Ubuntu eronder draait, lsb-release -a wordt uitgevoerd, krijg je de volgende uitvoer:

Je kunt apt-get en vrienden gebruiken om hulpprogramma's te installeren zoals vim, git, screen, tmux of zelfs een spelletje nethack:

Houd er echter rekening mee dat dit systeem in bèta is en niet bedoeld is voor serverworkloads. Het is slechts een hulpmiddel voor ontwikkelaars (en enthousiasten) om hun Linux-gebaseerde applicaties op Windows zonder aanpassingen uit te testen. Dit is ook geen tool bedoeld voor het uitvoeren van Linux GUI-toepassingen of -omgevingen zoals Gnome of KDE, hoewel dat ook mogelijk is met bepaalde hacks. Als je dat hebt opgelost, laten we eens kijken hoe de Linux-shell werkt in Windows 10.

Windows Subsystem for Linux (WSL)

Volgens de officiële documentatie: "WSL is een verzameling componenten waarmee native Linux ELF64-binaire bestanden op Windows kunnen worden uitgevoerd". Het doet dat door een gevirtualiseerde Linux-kernelinterface bovenop de Windows NT-kernel te implementeren. Dat wil zeggen, het gebruikt geen code van de feitelijke Linux-kernel - telkens wanneer een toepassing een Linux-specifieke systeemaanroep (syscall) uitvoert, vertaalt WSL het naar de equivalente Windows-syscall, die dan al het zware werk doet.

Verschillen met virtuele machines en Cygwin

Laten we nu eens kijken hoe Linux Bash Shell op Windows 10 anders is in vergelijking met virtuele machines en Cygwin.

Virtuele machines

U denkt misschien: "Wel, waarom zou u dit gebruiken? Waarom niet gewoon een Linux VM gebruiken in Windows? "

In vergelijking met een virtuele machine gebruikt WSL minder bronnen . Het laat je ook werken met je bestanden zoals je zou doen op Linux, terwijl je volledige toegang krijgt tot het onderliggende Windows-bestandssysteem zonder afhankelijk te hoeven zijn van gedeelde mappen of netwerkshares.

Cygwin

Een andere populaire methode voor het uitvoeren van populaire Linux / Unix-achtige tools op Windows is Cygwin. Het grootste verschil tussen de twee benaderingen is dat Cygwin geen manier is om native Linux binaries op Windows uit te voeren. Het biedt alleen een set GNU- en Open Source-tools die dezelfde functionaliteit bieden als een Linux-distributie op Windows.

Aan de andere kant zijn WSL-tools native Linux ELF-64 gecompileerde binaire bestanden die op Windows draaien. Als u bijvoorbeeld een opdracht apt-get install emacs uitvoert in WSL, worden dezelfde bestanden gedownload en geïnstalleerd als op een Ubuntu 14.04-installatie, vanuit de officiële Ubuntu-repositories.

Gebruikers, machtigingen en bestandssystemen in WSL

Bestandssysteemhiërarchie

WSL wordt geïnstalleerd onder de %LocalAppData%\lxss\rootfs de huidige gebruiker. Dit staat bekend als de WSL-omgeving en fungeert als de Linux " / " (root) -directory. Bijvoorbeeld, als uw gebruikersnaam op Windows beebom, zal de root directory van Linux zich bevinden in C:\Users\beebom\AppData\Local\lxss\rootfs. Dit betekent dat elke Windows-gebruiker zijn eigen WSL-omgeving kan hebben en wijzigingen kan aanbrengen zoals apt-get install, zonder andere Windows-gebruikers te beïnvloeden.

Het is mogelijk om toegang te krijgen tot het onderliggende Windows-bestandssysteem in WSL. Alle drives zijn gemount onder /mnt. Bijvoorbeeld: C:\ is gemount onder /mnt/c, D:\ is gemount onder /mnt/d, etc.

Gebruikers en machtigingen

Wanneer u WSL voor het eerst installeert, wordt u gevraagd om een ​​nieuwe standaard Linux-gebruiker te maken. Deze gebruiker hoeft niet dezelfde naam te hebben als de huidige Windows-gebruiker en wordt in het algemeen als een afzonderlijke entiteit behandeld. Je kunt zelfs meerdere Linux-gebruikers maken, bestuurd door een enkele Windows-gebruiker.

Het is mogelijk om root rechten te verkrijgen met behulp van de opdracht sudo . Onthoud dat root in WSL alleen gevolgen heeft voor de gebruikersrechten binnen de Linux-omgeving en het bestandssysteem - ze hebben geen invloed op de verleende Windows-rechten. Een WSL-sessie met Windows-beheerdersbevoegdheden kan bijvoorbeeld cd /mnt/c/Users/Administrator terwijl een Bash-sessie zonder beheerdersbevoegdheden de machtiging Geweigerd ziet. Als u sudo cd /mnt/c/Users/Administrator krijgt u geen toegang tot de map Administrator omdat de machtigingen door Windows worden beperkt.

Linux-specifieke functies van het bestandssysteem

Linux is een hoofdlettergevoelig systeem. Dat betekent dat photo.png en Photo.png als twee verschillende bestanden worden behandeld. Hoewel Windows standaard niet hoofdlettergevoelig is, is het nog steeds hoofdlettergevoelig. Wat betekent dat, terwijl photo.png en Photo.png niet worden behandeld als twee afzonderlijke bestanden, het zich zeker bewust is van het verschil in het geval.

WSL behandelt hoofdlettergevoeligheid net als bij Linux. Het is zelfs mogelijk om twee bestanden te maken waarvan de naam alleen per geval verschilt van de WSL-omgeving. Houd er echter rekening mee dat veel Windows-toepassingen dergelijke situaties niet aankunnen en mogelijk niet in staat zijn om een ​​of beide bestanden te openen.

Evenzo worden symbolische koppelingen ondersteund, mits u een NTFS-bestandssysteem gebruikt. Symbolische koppelingen werken echter alleen binnen WSL en kunnen niet worden opgelost door andere Windows-toepassingen.

Linux ondersteunt ook bijna alle speciale tekens in bestandsnamen, terwijl Windows meer restrictief is. WSL staat het gebruik van dergelijke speciale tekens echter toe, op voorwaarde dat ze zijn beperkt tot de omgeving van het Linux-systeem.

Klaar om de Linux Commandoregel op Windows uit te voeren?

Dus, dat is hoe Ubuntu Bash of Linux Bash Shell, ook bekend als Windows Subsystem for Linux, werkt op Windows 10 (met de Anniversary-update). Samen met zijn werking hebben we ook geleerd hoe het anders en beter is dan de traditionele methoden voor het uitvoeren van Linux-specifieke opdrachten op Windows. Dus, als je altijd al Linux-commando's wilde gebruiken, ga dan aan de slag en als je vragen, opmerkingen of tips hebt, laat het ons dan weten in de comments.

Top