Met de release van de jubileumupdate voor Windows 10 kondigde Microsoft de Windows-subsysteem voor Linux (WSL) - 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-image bovenop Windows uit te voeren.
Dit betekent dat u Linux-opdrachtregelprogramma's kunt uitvoeren, zoals ls
, grep
, top
en chmod
. Omdat je echte Ubuntu eronder gebruikt, wordt running lsb-release -a
geeft je de volgende output:
Je kunt gebruiken apt-get
en vrienden om hulpprogramma's te installeren, zoals vim
, git
, scherm
, tmux
, of zelfs een spelletje spelen nethack:
Houd er echter rekening mee dat dit systeem zich in bèta- en niet bedoeld voor server-workloads. Het is slechts een hulpmiddel voor ontwikkelaars (en enthousiastelingen) om hun Linux-centrische applicaties zonder aanpassingen op Windows uit te testen. Dit is ook geen tool die bedoeld is om Linux GUI-applicaties of omgevingen zoals Gnome of KDE te draaien, hoewel dat ook mogelijk is met bepaalde hacks. Laten we, nadat we dat hebben gewist, eens kijken hoe de Linux-shell werkt in Windows 10.
Windows-subsysteem voor Linux (WSL)
Volgens de officiële documentatie is "WSL een verzameling componenten waarmee native Linux ELF64-binaries op Windows kunnen draaien". Het doet dat door een gevirtualiseerde Linux-kernelinterface bovenop de Windows NT-kernel te implementeren. Dat wil zeggen, het gebruikt geen code van de eigenlijke Linux-kernel - wanneer een applicatie een Linux-specifieke systeemaanroep doet (syscall), vertaalt WSL het naar het equivalente Windows syscall, dat 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 dan die van virtuele machines en Cygwin.
Virtuele machines
Je denkt misschien: "Wel, waarom zou je dit gebruiken? Waarom gebruik je niet gewoon een Linux-VM in Windows? "
Vergeleken met een virtuele machine, WSL gebruikt minder bronnen. Het laat je ook met je bestanden werken zoals je zou doen onder Linux, terwijl je volledige toegang hebt tot het onderliggende Windows-bestandssysteem zonder afhankelijk te zijn van gedeelde mappen of netwerkshares..
Cygwin
Een andere populaire methode om populaire Linux / Unix-achtige tools op Windows uit te voeren, is Cygwin. Het grootste verschil tussen de twee benaderingen is dat Cygwin is geen manier om native Linux-binaries uit te voeren op Windows. Het biedt alleen een set GNU- en Open Source-tools die functionaliteit bieden vergelijkbaar naar een Linux-distributie op Windows.
Aan de andere kant, WSL-tools zijn native Linux ELF-64 gecompileerde binaire bestanden die op Windows draaien. Als u bijvoorbeeld een apt-get install emacs
commando in WSL zal dezelfde bestanden downloaden en installeren als op een Ubuntu 14.04-installatie, vanuit de officiële Ubuntu-repositories.
Gebruikers, machtigingen en bestandssystemen in WSL
Bestandssysteemhiërarchie
WSL is geïnstalleerd onder de huidige gebruikersinstellingen % LocalAppData% \ lxss \ rootfs
directory. Dit staat bekend als de WSL-omgeving en fungeert als de Linux “
”(Root) directory. Als uw gebruikersnaam in Windows bijvoorbeeld beebom
, De root-directory van Linux bevindt zich 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
softwarepakketten, zonder andere Windows-gebruikers te beïnvloeden.
Het is mogelijk om toegang te krijgen tot het onderliggende Windows-bestandssysteem in WSL. Alle schijven zijn onder gemonteerd / mnt.
Bijvoorbeeld, C: \
is onder gemonteerd / mnt / c
, D: \
is onder gemonteerd / mnt / d
, enz.
Gebruikers en machtigingen
Wanneer u WSL voor het eerst installeert, wordt u gevraagd om een nieuwe standaard Linux-gebruiker aan te maken. Deze gebruiker hoeft niet dezelfde naam te hebben als de huidige Windows-gebruiker en wordt in het algemeen als een aparte entiteit behandeld. U kunt zelfs meerdere Linux-gebruikers maken, bestuurd door één Windows-gebruiker.
Het is mogelijk om wortel
privileges met behulp van de sudo
opdracht. Onthoud dat wezen wortel
in WSL heeft alleen gevolgen voor de gebruikersrechten binnen de Linux-omgeving en het bestandssysteem - ze hebben geen invloed op de verleende Windows-privileges. Een WSL-sessie met Windows-beheerdersrechten kan bijvoorbeeld cd / mnt / c / Gebruikers / Administrator
terwijl een Bash-sessie zonder beheerdersrechten Permission Denied zou zien. Typen sudo cd / mnt / c / Gebruikers / Administrator
geeft geen toegang tot de directory van de beheerder, aangezien de machtigingen worden beperkt door Windows.
Linux-specifieke bestandssysteemfuncties
Linux is een hoofdlettergevoelig systeem. Dat betekent dat photo.png
en Foto.png
worden behandeld als twee verschillende bestanden. Terwijl Windows niet het geval is gevoelig standaard is dit nog steeds het geval bewust. Dat betekent dat terwijl photo.png
en Foto.png
worden niet behandeld als twee verschillende bestanden, dat is het zeker bewust van het verschil in geval.
WSL verwerkt hoofdlettergevoeligheid net als op Linux. Het is zelfs mogelijk om twee bestanden aan te maken waarvan de naam alleen per geval verschilt buiten de WSL-omgeving. Houd er echter rekening mee dat veel Windows-toepassingen dergelijke situaties niet aankunnen en mogelijk een of beide bestanden niet kunnen openen.
Evenzo, symbolische links worden ondersteund, op voorwaarde dat 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 karakters binnen bestandsnamen, terwijl Windows beperkter is. WSL staat het gebruik van dergelijke speciale tekens echter toe, op voorwaarde dat ze beperkt zijn tot de Linux-systeemomgeving.
ZIE OOK: Uw OneDrive-account synchroniseren op een Linux-computer
Klaar om de Linux-opdrachtregel op Windows uit te voeren?
Dus dat is hoe Ubuntu Bash of Linux Bash Shell, ook wel bekend als Windows Subsystem voor Linux, werkt op Windows 10 (met de jubileumupdate). Naast de werking ervan, hebben we ook geleerd hoe het anders en beter is dan de traditionele methoden om Linux-specifieke opdrachten op Windows uit te voeren. Dus als je altijd al Linux-commando's hebt willen gebruiken, ga dan aan de slag en als je vragen, opmerkingen of tips hebt, laat het ons dan weten in het opmerkingengedeelte.