Programmering

Oppdag kraften til Bash på Windows

Microsoft Windows kan være den dominerende spilleren på skrivebordet, men det raskt økende programvaremarkedet med åpen kildekode - spesielt for admin- og dev-verktøy - favoriserer helt klart Linux. For ikke å nevne mobilmarkedet, der Android bruker Linux-varianter. Hvis du er en utvikler på Windows, blir trommeslaget for å bli hip til Linux-funksjonene stadig høyere.

Gjennom årene har Microsoft introdusert forskjellige løsninger for bruk av Linux-funksjoner på Windows, for eksempel PowerShell med SSH og Cygwin og MSYS. Å kjøre Linux i en virtuell maskin er et annet alternativ. Men virtuelle maskiner bruker en betydelig mengde ressurser og gir ikke en førsteklasses Linux-opplevelse, ettersom du for eksempel ikke kan redigere lokale filer eller få full tilgang til lokale stasjoner.

Da IT-verdenen vender seg mot Linux for mange prosjekter, har Microsoft kommet med et nytt tilbud for å utnytte dette voksende markedet. Bash på Windows er svaret. Her veileder vi deg gjennom installering av Bash på Windows og gir deg en smakebit på hva du kan gjøre - og hvorfor du vil gjøre det - i Linux-kommandolinjen.

En oversikt over Bash på Windows

Bash on Windows er en ny funksjon lagt til Windows 10. Microsoft har gått sammen med Canonical, aka skaperne av Ubuntu Linux, for å bygge denne nye infrastrukturen i Windows kalt Windows Subsystem for Linux (WSL). Det gir utviklere tilgang til et komplett sett med Ubuntu CLI og verktøy. Med en innfødt Linux-opplevelse kan utviklere kjøre Linux-kommandoer på Windows, inkludert tilgang til lokale filer og stasjoner. Siden Linux er integrert i Windows, får utviklere fleksibilitet til å jobbe med den samme filen i Linux og Windows. Enkelt sagt, Bash på Windows bringer Ubuntu-brukerland til Windows minus Linux-kjernen.

Bash vs PowerShell

Microsoft har allerede et kommandoskall i PowerShell. Så hvordan skiller Bash på Windows seg? PowerShell er Microsofts rammeverk for konfigurasjonsadministrasjon for automatisering av oppgaver. Den brukes til å administrere Windows med sin API-orienterte arkitektur. Bash, derimot, er avhengig av tekstfiler for automatisering og utvikling. De to skiller seg både i fokus og design. For eksempel når du lister opp filer i en katalog ved hjelp av ls kommando, PowerShell viser utdata som filobjekter, mens Bash på Windows viser utdata som et sett med strenger. Heldigvis, for Windows-administratorer, kan du jobbe med begge løsningene side om side og få det beste fra begge verdener.

Ett ord med forsiktighet: PowerShell har aliaser som lar deg synes at du kjører tradisjonelle Bash-kommandoer når du faktisk kjører PowerShell-cmdlets. Dette kan snuble i noen mennesker. For eksempel, ls er et alias for Get-ChildItem kommando. På samme måte, pwd er et alias for Get-Location og cd er et alias for Set-Location. For å få en liste over alle aliaser i PowerShell, bruk Få-alias cmdlet.

Bash on Windows gir flere fordeler for åpen kildekode-utviklere. Ved å bringe native Linux-funksjoner til Windows, eliminerer Bash on Windows behovet for å kjøre dual booting med Ubuntu for å få tilgang til Linux-funksjoner. Du trenger ikke å gå for Mac OS X, kjøre en virtuell maskin eller lage løsninger med Cygwin. Det gir det nødvendige verktøysettet for å skrive og bygge kode for dine scenarier og plattformer. Ved å få tilgang til Windows-filsystemet fra Bash, kan du jobbe med de samme filene ved hjelp av Windows eller Linux CLI.

Hvordan portet Microsoft Bash til Windows?

På Byggkonferansen i april 2016 kunngjorde Microsoft Windows Subsystem for Linux (WSL) til overraskelse for mange. Født av et partnerskap med Canonical, ble Bash på Windows først levert med Windows 10 Anniversary Update. Den kommer i to deler: kjernesystemet og en pakke. Kjernedelsystemet er allerede en del av Windows 10 Insider Builds og tilbyr Linux API på Windows, noe som betyr at du kan laste inn Linux-biblioteker og kjørbare filer. Canonical tilbyr programvarepakken som et alternativ. Denne programvarepakken tilbyr Bash- og CLI-verktøy som kreves for Linux-miljøet.

Installerer Bash

For å kjøre Bash på Windows, må systemet kjøre x64 Windows 10 Anniversary Update Build 14393 eller nyere. Du oppdager bygningen ved å skrive winver i kommandoboksen.

Hvis byggeversjonen er mindre enn 14393, vil du ikke kunne installere Bash.

For å aktivere Bash på en støttet build, bør du først slå på Developer Mode. For å gjøre det, gå til Innstillinger, klikk på For utviklere og velg alternativknappen Utviklermodus. Når dette er gjort, blir du bedt om å bekrefte.

Når dette er gjort, må Windows Subsystem for Linux-funksjonen være aktivert. Den enkleste måten å gjøre dette på er gjennom en PowerShell-cmdlet:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

For å åpne Bash på Windows, åpne kommandoprompten, skriv bash, og godta lisensavtalen. Når Bash installeres, utfører det noen endringer i systemet ditt:

  • Et Ubuntu-brukermodusbilde lastes ned.
  • En skjult mappe som ligger på % localappdata% \ lxss \ er skapt.
  • En snarvei plasseres på skrivebordet.

For å kjøre Bash, kan du nå enten gå til ledeteksten eller bruke snarveisikonet på skrivebordet.

Etter vellykket installasjon av Bash vil systemet be deg om å opprette et Unix brukernavn og passord. Dette brukernavnet og passordet er for Bash og forholder seg ikke på noen måte til Windows-miljøet ditt.

Komme i gang med kommandoer

En gang i Bash har du noen tilgjengelige kommandoer for å administrere WSL og Ubuntu-bildet.

  • lxrun: For administrering av WSL-forekomsten
  • lxrun / installer: For å starte nedlastings- og installasjonsprosedyren
  • lxrun / avinstallere: For å avinstallere Ubuntu-bildet
  • lxrun / oppdatering: For å oppdatere WSL-pakkeindeksen
  • lxrun / setdefaultuser: For å angi standard Bash på Ubuntu-bruker

Bash på Windows lar deg selvfølgelig også kjøre mange "tradisjonelle" Bash-kommandoer. For eksempel:

  • grep: For å finne linjer som samsvarer med et mønster
  • sed: Å erstatte en streng
  • ekko: For å sende verdien til skjermen
  • var = 2: Å lage en variabel for $ var
  • =!=: Å sammenligne små tekstutdrag

Navigasjonskommandoer

For navigering kan du også bruke Windows DOS-kommandoen cd for å navigere i mappestrukturen.

  • cd temp: Endrer arbeidskatalogen til mappen som heter temp
  • cd \: Tar deg til rotkatalogen. Siden Ubuntu ikke har stasjonsbokstaver som Windows, vil rotkatalogen være katalogen på toppnivå.
  • cd ..: Tar ledeteksten ett nivå oppover (det vil si til foreldrekatalogen)
  • cd ~: Tar deg med til hjemmekatalogen

Derimot, cd i PowerShell er litt annerledes i Bash på Ubuntu. I WSL-miljøet lagres Windows-stasjonene dine i / mnt mappen, og navnet på stasjonen brukes som undermappe. Når du bruker cd kommando, bør du endre banen tilsvarende.

Vis kommandoer

For å kontrollere banen og innholdet til en katalog, er følgende et par eksempler:

  • pwd: Skriver ut banen eller katalogen du er på skjermen
  • ls: Viser filene i en katalog

Hjelpekommandoer

Hvis du vil forstå funksjonaliteten til og parametrene som er knyttet til hver kommando, Mann kommandoen kan brukes.

Type Mann og det vil vise sammendraget av hva kommandoen er for og tilhørende parametere. Dette ligner på PowerShell hjelp kommando.

Redigeringskommandoer

En av fordelene med Bash er at du jobber med ren tekst. Dette betyr at du ikke trenger å rote med register- eller programinnstillingene. Enten du vil endre oppstartssekvensen eller konfigurasjonen av webserveren, rediger du bare den tilhørende tekstfilen. For å effektivt utføre redigeringsoppgaver, trenger du en god tekstredigerer. Bash tilbyr kraftige redaktører for å gjøre jobben din enkel. Noen få gode eksempler på tekstredigerere tilgjengelig i Bash er nano og vi.

Pakkehåndtering i Bash

Siden du egentlig kjører Linux, har du nå også kommandoer for pakkehåndtering tilgjengelig i form av apt-get. Noen få eksempler:

  • sudo apt-get oppdatering: Oppdaterer listen over arkiver du kan trekke fra
  • sudo apt-get oppgradering: Oppgraderer all programvaren til den nyeste versjonen
  • apt-cache søk appnavn: Søker i depotet etter en bestemt app
  • sudo apt-get install apt-name: Last ned og installerer den aktuelle appen

sudo er forhåndsbetalt til alle kommandoer slik at du kan kjøre en kommando under en annen bruker, superbrukeren (eller admin) som standard. Det ligner "kjør som administrator" -teknikken i Windows.

Nettverkskommandoer

For å laste ned filer via HTTP fra en server eller en URL, kan du nå bruke krølle kommando. Denne kommandoen ligner på PowerShell Påkalle-WebRequest cmdlet.

På samme måte kan du koble til en annen ekstern Linux-datamaskin og kjøre kommandoer på den. Siden vi nå er i Linux, har vi endelig en ekte SSH-klient å jobbe med. I stedet for å bruke Cygwin eller den nåværende betaversjonen av OpenSSH-implementeringen for Windows, kan vi nå kjøre SSH naturlig via ssh kommando:

ssh brukernavn @ abc.com

Mens vi har temaet OpenSSH, har vi også den innfødte muligheten til å kopiere filer sikkert over SCP ved hjelp av den innebygde scp kommando også:

scp localfile [email protected]: remotedirectory / remotefile

Med Bash på Windows har du nå mange andre funksjoner innen fingertuppene:

  • Verktøy som Git, Python og Ruby direkte på Windows
  • Kommandolinjeditorer som emacs og vi
  • Tilgang til Windows-filsystemet fra Bash-miljøet
  • Linux brukerstøtte
  • Symlink-støtte
  • Lagring montering via / mnt

Hva er vanlige brukstilfeller for Bash på Windows?

For tiden bruker mange utviklere Windows- og Linux-verktøy, noe som betyr at de må utføre dual-booting eller kjøre Linux i en virtuell maskin for å få CLI-funksjonene. Når de kan kjøre disse verktøyene i Windows, blir Windows deres primære skrivebord. I så fall trenger de ikke portere Linux-apper og -tjenester til Windows-systemer. Mens noen mennesker har kunnet kjøre Linux GUI-apper i Windows, får mange en hendig Linux CLI til å utføre enkle oppgaver uten å kjøpe en dedikert Linux-maskin fra Azure eller flytte til en Mac-enhet for enkle formål. Siden skripting er enkelt på Bash, kan du automatisere utviklingsoppgaver som å sikkerhetskopiere nettsteder i Apache.

For eksempel bruker mange utviklere GitHub til versjonskontrolloppgaver. For å få tilgang til GitHub på Windows, må du installere GitHub for Windows, og deretter bruke kommitt og trykk kommandoer for å begå endringer. Alternativt må du laste ned Git-verktøyet, som er en kjedelig prosess. Med Bash på Windows blir jobben din enkel:

apt-get install git

git begå

git push

Under Bash trenger du heller ikke noen tredjepartsverktøy for å jobbe med tradisjonelle Linux-filtyper som GZIPed tarballs (tar.gz-filer).

Hva er ulempene med å bruke Bash på Windows?

Bash på Windows er fortsatt i beta og inneholder noen grove kanter. Microsoft sier at Bash på Windows kanskje ikke perfekt utfører alle skriptene dine på dette tidspunktet. Imidlertid overvåker Microsoft nøye ytelsen og tilbakemeldingen, og det gjør proaktivt endringer i denne løsningen.

For det andre ble Bash on Windows skapt for utviklingssamfunnet. Den var ikke designet for å administrere Windows-miljøer. Selv om du kan gjøre ting som å kjøre serverdemoner i WSL, tilbyr den ikke alle funksjonene til en fullstendig virtuell Linux-maskin. Hvis du har tenkt å kjøre serverprosesser under produksjonsarbeidsbelastninger på Ubuntu, bør du se på andre alternativer for å kjøre et fullt Linux-operativsystem.

Til slutt bringer Bash on Windows Linux-funksjonene til Windows. Linux-verktøy vil imidlertid ikke kunne samhandle med Windows-verktøy og applikasjoner. Dette betyr ingen funksjoner på tvers av plattformer på grunn av deres iboende arkitekturforskjeller.

Bash on Windows er fortsatt i begynnelsen. Selv om det er noen begrensninger for denne løsningen, jobber Microsoft intenst med å legge til flere muligheter for å slette disse forskjellene og gjøre Windows til plattform nr. 1 for alle typer utviklingsprosjekter. Hold et øye med dette prosjektet fra Microsoft. Med Microsofts nye holdning i åpen kildekode, vil det sikkert gjøre Bash til en førsteklasses borger i Windows etter hvert som tiden går.

Relaterte artikler

  • Den viktige guiden til PowerShell for Windows, Windows Server og Exchange
  • 10 viktige PowerShell-sikkerhetsskripter for Windows-administratorer
  • Alt om PowerShell-leverandører og moduler
  • Gå proff: Strømbrukerhåndboken til PowerShell
$config[zx-auto] not found$config[zx-overlay] not found