Anbefalt, 2024

Redaksjonens

Hvordan Linux Bash Shell fungerer på Windows 10

Med utgivelsen av jubileumsoppdateringen for Windows 10, annonserte Microsoft Windows-delsystemet for Linux (WSL) - en måte å kjøre ekte, innfødt Bash på Windows 10, som støtter kjøring av innfødte Linux-binaries. Det gjør dette ved å kjøre et brukermodus Ubuntu Linux-bilde på toppen av Windows.

Dette betyr at du kan kjøre Linux-kommandolinjeverktøy som ls, grep, top og chmod . Siden du kjører ekte Ubuntu under, kjører lsb-release -a vil gi deg følgende utgang:

Du kan bruke apt-get og venner til å installere verktøy som vim, git, screen, tmux, eller til og med spille et spill av nethack:

Vær imidlertid oppmerksom på at dette systemet er i beta og ikke ment for serverbelastning. Det er bare et verktøy for utviklere (og entusiaster) for å teste ut deres Linux-sentrale applikasjoner på Windows uten endringer. Dette er heller ikke et verktøy beregnet på å kjøre Linux GUI-applikasjoner eller miljøer som Gnome eller KDE, selv om det også er mulig med visse hack. Etter å ha fjernet det, la oss se på hvordan Linux-skallet fungerer i Windows 10.

Windows Subsystem for Linux (WSL)

Ifølge den offisielle dokumentasjonen, "WSL er en samling av komponenter som gjør det mulig å kjøre inn Linux Linux ELF64-binaries på Windows". Det gjør det ved å implementere et virtualisert Linux-kjernegrensesnitt på toppen av Windows NT-kjernen. Det betyr at det ikke bruker noen kode fra den egentlige Linux-kjernen - når et program lager et Linux-spesifikt systemanrop (syscall), oversetter WSL det til tilsvarende Windows-syscall, som deretter gjør alt tungt løft.

Forskjeller fra virtuelle maskiner og Cygwin

La oss nå se på hvordan Linux Bash Shell på Windows 10 er forskjellig i forhold til virtuelle maskiner og Cygwin.

Virtuelle maskiner

Du kan tenke, "Vel, hvorfor bruke dette? Hvorfor ikke bare bruke en Linux VM i Windows? "

Sammenlignet med en virtuell maskin bruker WSL færre ressurser . Det lar deg også arbeide med filene dine som du ville på Linux, samtidig som du gir full tilgang til det underliggende Windows-filsystemet uten å måtte stole på delte mapper eller nettverksaksjer.

Cygwin

En annen populær metode for å kjøre populære Linux / Unix-lignende verktøy på Windows er Cygwin. Den største forskjellen mellom de to tilnærmingene er at Cygwin ikke er en måte å kjøre innfødte Linux-binære filer på Windows. Den gir bare et sett med GNU og Open Source-verktøy som gir funksjonalitet som ligner en Linux-distribusjon på Windows.

På den annen side er WSL-verktøy innfødte Linux ELF-64 kompilerte binære filer som kjører på Windows. For eksempel vil kjøring av en apt-get install emacs kommando i WSL laste ned og installere de samme filene som på en Ubuntu 14.04-installasjon fra de offisielle Ubuntu-depotene.

Brukere, Tillatelser og Filsystemer i WSL

Filsystemhierarki

WSL er installert under den gjeldende brukerens %LocalAppData%\lxss\rootfs katalog. Dette er kjent som WSL Environment og fungerer som Linux " / " (root) katalogen. For eksempel, hvis brukernavnet ditt på Windows er beebom, vil Linuxs rotkatalog være plassert i C:\Users\beebom\AppData\Local\lxss\rootfs. Dette betyr at hver Windows-bruker kan ha sitt eget WSL-miljø, og kan gjøre endringer som apt-get install programvarepakker, uten å påvirke andre Windows-brukere.

Det er mulig å få tilgang til det underliggende Windows-filsystemet i WSL. Alle stasjoner er montert under /mnt. For eksempel er C:\ montert under /mnt/c, D:\ er montert under /mnt/d, etc.

Brukere og Tillatelser

Når du først installerer WSL, vil det be deg om å opprette en ny standard Linux-bruker. Denne brukeren trenger ikke å ha samme navn som den nåværende Windows-brukeren, og behandles som en separat enhet generelt. Du kan til og med opprette flere Linux-brukere, kontrollert av en enkelt Windows-bruker.

Det er mulig å skaffe rotasjonsrettigheter ved hjelp av sudo kommandoen. Husk at det å være root i WSL bare påvirker brukerens rettigheter i Linux-miljøet og filsystemet - de har ingen innvirkning på de tildelte Windows-privilegiene. For eksempel kan en WSL-økt med Windows administrasjonsrettigheter være cd /mnt/c/Users/Administrator mens en Bash-økt uten administrasjonsrettigheter vil se Tillatelse nektet. Skriving sudo cd /mnt/c/Users/Administrator gir ikke tilgang til administratorens katalog siden tillatelsene er begrenset av Windows.

Linux-spesifikke filsystemfunksjoner

Linux er et saksensitivt system. Det betyr at photo.png og Photo.png behandles som to forskjellige filer. Mens Windows ikke er saksfølsom som standard, er det fortsatt tilfelle bevisst . Det betyr at mens photo.png og Photo.png ikke blir behandlet som to forskjellige filer, er det helt sikkert klar over forskjellen i tilfelle.

WSL håndterer sårfølsomhet akkurat som på Linux. Det er også mulig å opprette to filer hvis navn bare er forskjellig fra tilfelle utenfor WSL-miljøet. Vær imidlertid oppmerksom på at mange Windows-programmer ikke kan håndtere slike situasjoner og kanskje ikke kan åpne en eller begge filene.

På samme måte støttes symbolske lenker, forutsatt at du kjører et NTFS-filsystem. Symboliske lenker vil imidlertid bare fungere innenfor WSL og kan ikke løses av andre Windows-programmer.

Linux støtter også nesten alle spesialtegn inne i filnavn, mens Windows er mer restriktiv. WSL tillater imidlertid å bruke slike spesialtegn, forutsatt at de er begrenset til Linux-systemets miljø.

Klar til å kjøre Linux-kommandolinjen på Windows?

Så, det er hvordan Ubuntu Bash eller Linux Bash Shell, også kjent som Windows Subsystem for Linux, fungerer på Windows 10 (med jubileumsoppdateringen). Sammen med arbeidet lærte vi også hvordan det er annerledes og bedre enn de tradisjonelle metodene for å kjøre Linux-spesifikke kommandoer på Windows. Så, hvis du alltid har ønsket å bruke Linux-kommandoer, kom i gang, og hvis du har spørsmål, kommentarer eller tips, sørg for å gi oss beskjed i kommentarfeltet.

Top