Otkrijte snagu Basha na sustavu Windows

Microsoft Windows može biti dominantan igrač na radnoj površini, ali brzo rastuće tržište softvera otvorenog koda - posebno za administrativne i razvojne alate - očito favorizira Linux. O mobilnom tržištu da i ne govorimo, gdje Android koristi Linux verzije. Ako ste programer za Windows, bubanj za upoznavanje Linux mogućnosti postaje sve glasniji.

Tijekom godina Microsoft je uveo razne zaobilazne načine korištenja Linux mogućnosti na sustavu Windows, kao što su PowerShell sa SSH i Cygwin i MSYS. Pokretanje Linuxa unutar virtualnog stroja je još jedna mogućnost. Ali VM-ovi troše značajnu količinu resursa i ne pružaju prvorazredno Linux iskustvo, na primjer, ne možete uređivati ​​lokalne datoteke ili dobiti puni pristup lokalnim pogonima.

Kako se IT svijet okreće prema Linuxu za mnoge projekte, Microsoft je iznio novu ponudu da iskoristi ovo rastuće tržište. Bash na sustavu Windows je odgovor. Ovdje ćemo vas voditi kroz instaliranje Basha na sustav Windows i dati vam okus što možete učiniti - i zašto biste to učinili - u Linux naredbenom retku.

Pregled Bash-a na sustavu Windows

Bash na sustavu Windows nova je značajka dodana sustavu Windows 10. Microsoft se udružio s tvrtkom Canonical, inače tvorcima Ubuntu Linuxa, kako bi izgradio ovu novu infrastrukturu u sustavu Windows pod nazivom Windows podsustav za Linux (WSL). Omogućuje programerima pristup cjelovitom skupu Ubuntu CLI-a i uslužnih programa. Uz izvorno Linux iskustvo, programeri mogu pokretati Linux naredbe na sustavu Windows, uključujući pristup lokalnim datotekama i pogonima. Kako je Linux izvorno integriran u Windows, programeri dobivaju fleksibilnost za rad na istoj datoteci u Linuxu i Windowsu. Jednostavno rečeno, Bash na sustavu Windows donosi Ubuntu korisničku zemlju u sustav Windows minus Linux kernel.

Bash nasuprot PowerShell-u

Microsoft već ima naredbenu ljusku u PowerShell-u. Pa, kako se Bash na sustavu Windows razlikuje? PowerShell je Microsoftov okvir za upravljanje konfiguracijom za automatizaciju zadataka. Koristi se za upravljanje sustavom Windows sa svojom API-orijentiranom arhitekturom. S druge strane, Bash se za automatizaciju i razvoj uglavnom oslanja na tekstualne datoteke. Njih se dvije razlikuju i po fokusu i po dizajnu. Na primjer, kada popisujete datoteke u direktoriju pomoću lsnaredbe, PowerShell prikazuje izlaz kao objekte datoteka, dok Bash na sustavu Windows prikazuje izlaz kao skup nizova. Srećom, za administratore sustava Windows možete raditi s oba rješenja jedno uz drugo i dobiti najbolje od oba svijeta.

Jedna riječ opreza: PowerShell ima pseudonime koji vam omogućuju da mislite da izvršavate tradicionalne Bash naredbe kad zapravo koristite PowerShell cmdlet komande. Ovo bi moglo spotaknuti neke ljude. Na primjer, lspseudonim je Get-ChildItemnaredbe. Slično tome, pwdje alias za Get-Locationi cdjest alias za Set-Location. Za popis svih pseudonima u PowerShell-u upotrijebite Get-Aliascmdlet.

Bash na sustavu Windows pruža višestruke pogodnosti programerima otvorenog koda. Donošenjem izvornih Linux mogućnosti u Windows, Bash na Windowsu eliminira potrebu za dvostrukim podizanjem sustava s Ubuntuom za pristup Linux mogućnostima. Ne trebate ići na Mac OS X, pokretati virtualni stroj ili stvarati zaobilazna rješenja pomoću Cygwin-a. Daje potreban skup alata za pisanje i izradu koda za vaše scenarije i platforme. Pristupanjem Windowsovom datotečnom sustavu s Bash-a možete raditi na istim datotekama koristeći Windows ili Linux CLI.

Kako je Microsoft Bash prenio na Windows?

Na konferenciji o gradnji u travnju 2016. godine, Microsoft je na iznenađenje mnogih najavio Windows podsustav za Linux (WSL). Rođen u partnerstvu s Canonical-om, Bash na sustavu Windows prvi je put isporučen s Windows 10 Anniversary Update. Dolazi iz dva dijela: temeljni podsustav i paket. Osnovni podsustav već je dio sustava Windows 10 Insider Builds i nudi Linux API na sustavu Windows, što znači da možete izvorno učitati Linux knjižnice i izvršne datoteke. Canonical nudi softverski paket kao opciju. Ovaj softverski paket nudi Bash i CLI alate potrebne za Linux okruženje.

Instaliranje Basha

Da bi pokrenuo Bash na sustavu Windows, vaš sustav mora pokrenuti x64 Windows 10 Anniversary Update Build 14393 ili noviji. Izgradnju otkrivate upisivanjem winveru naredbeni okvir.

Ako je verzija izrade manja od 14393, nećete moći instalirati Bash.

Da biste omogućili Bash na podržanoj gradnji, prvo trebate uključiti način za programere. Da biste to učinili, prijeđite na Postavke, kliknite Za programere i odaberite radio gumb Način za programere. Nakon što to učinite, od vas će se zatražiti da potvrdite.

Nakon što se to učini, mora se omogućiti značajka Windows podsustav za Linux. To ćete najlakše postići pomoću PowerShell cmdleta:

Omogući-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-podsustav-Linux

Da biste otvorili Bash u sustavu Windows, otvorite naredbeni redak, upišite bashi prihvatite ugovor o licenci. Kada se Bash instalira, izvršava nekoliko promjena u vašem sustavu:

  • Preuzima se slika Ubuntu korisničkog načina.
  • Stvorena je skrivena mapa koja se nalazi na %localappdata%\lxss\ .
  • Prečac se postavlja na radnu površinu.

Da biste pokrenuli Bash, sada možete ili otići u naredbeni redak ili upotrijebiti ikonu prečaca na radnoj površini.

Nakon uspješne instalacije Basha, sustav će zatražiti da stvorite Unix korisničko ime i lozinku. Ovo korisničko ime i lozinka su za Bash i ni na koji se način ne odnose na vaše Windows okruženje.

Početak rada s naredbama

Jednom u Bashu imate nekoliko dostupnih naredbi za upravljanje WSL-om i Ubuntu slikom.

  • lxrun: Za upravljanje WSL instancom
  • lxrun/install: Za pokretanje postupka preuzimanja i instaliranja
  • lxrun/uninstall: Da biste deinstalirali Ubuntu sliku
  • lxrun/update: Ažuriranje indeksa WSL paketa
  • lxrun/setdefaultuser: Za postavljanje zadanog Bash-a na Ubuntu korisniku

Bash na sustavu Windows također vam, naravno, omogućuje pokretanje mnogih "tradicionalnih" Bash naredbi. Na primjer:

  • grep: Za pronalaženje linija koje odgovaraju uzorku
  • sed: Za zamjenu niza
  • echo: Za prikaz vrijednosti na zaslon
  • var=2: Za stvaranje varijable za $var
  • =!=: Za usporedbu malih isječaka tekstova

Navigacijske naredbe

Za navigaciju možete koristiti i Windows DOS naredbu cdza kretanje kroz strukturu mape.

  • cd temp: Mijenja radni direktorij u mapu pod nazivom temp
  • cd\: Vodi vas u korijenski direktorij. Kako Ubuntu nema slova pogona poput Windows-a, korijenski direktorij bio bi direktorij najviše razine.
  • cd..: Vodi upit za jednu razinu prema gore (odnosno u nadređeni direktorij)
  • cd~: Vodi vas u početni direktorij

Međutim, cdu PowerShell-u je nešto drugačije u Bashu na Ubuntuu. U WSL okruženju, vaši Windows pogoni pohranjeni su u /mntmapu, a naziv pogona koristi se kao podmapa. Kada koristite cdnaredbu, trebali biste u skladu s tim promijeniti put.

Prikaži naredbe

Da biste provjerili put i sadržaj direktorija, slijedi nekoliko primjera:

  • pwd: Ispisuje stazu ili direktorij na zaslonu
  • ls: Prikazuje datoteke u direktoriju

Naredbe za pomoć

Ako želite razumjeti funkcionalnost i parametre povezane sa svakom naredbom, mannaredba se može koristiti.

Upišite man i prikazat će se sinopsis čemu služi naredba i pridruženi parametri. To je slično helpnaredbi PowerShell .

Uređivanje naredbi

Jedna od prednosti Basha je što radite s običnim tekstom. To znači da se ne morate petljati s postavkama registra ili programa. Bez obzira želite li promijeniti redoslijed pokretanja ili konfiguraciju web poslužitelja, jednostavno uredite odgovarajuću tekstualnu datoteku. Da biste učinkovito izvršavali zadatke uređivanja, potreban vam je dobar uređivač teksta. Bash nudi moćne urednike koji će vam olakšati posao. Nekoliko dobrih primjera uređivača teksta dostupnih u Bashu su nanoi vi.

Upravljanje paketima u Bashu

Budući da u osnovi koristite Linux, sada imate i naredbe za upravljanje paketima dostupne u obliku apt-get. Nekoliko primjera:

  • sudo apt-get update: Osvježava popis spremišta iz kojih se može izvući
  • sudo apt-get upgrade: Nadograđuje sav softver na najnoviju verziju
  • apt-cache search app_name: Pretražuje spremište za određenu aplikaciju
  • sudo apt-get install apt-name: Preuzima i instalira određenu aplikaciju

sudoje dodan svim naredbama kako bi vam omogućio pokretanje naredbe pod drugim korisnikom, superuser (ili admin) kao zadani. Slična je tehnici "pokreni kao administrator" u sustavu Windows.

Naredbe za umrežavanje

Za preuzimanje datoteka putem HTTP-a s poslužitelja ili URL-a sada možete koristiti curlnaredbu. Ova je naredba slična PowerShell-ovom Invoke-WebRequestcmdletu.

Slično tome, možete se povezati s drugim udaljenim Linux računalom i na njemu pokretati naredbe. Budući da smo sada u Linuxu, napokon imamo istinskog SSH klijenta za rad. Umjesto da koristimo Cygwin ili trenutnu beta implementacije OpenSSH za Windows, sada možemo pokretati SSH nativno putem sshnaredbe:

ssh korisničko ime @ abc.com

Iako smo na temi OpenSSH-a, sada imamo i izvornu mogućnost sigurnog kopiranja datoteka preko SCP-a pomoću ugrađene scpnaredbe:

scp lokalna datoteka korisničko [email protected]: remotedirectory / remotefile

S Bashom na sustavu Windows sada vam je na raspolaganju puno drugih značajki:

  • Alati poput Git, Python i Ruby izravno na sustavu Windows
  • Uređivači naredbenog retka kao što su emacs i vi
  • Pristup sustavu datoteka Windows s Bash okruženja
  • Korisnička podrška za Linux
  • Podrška za Symlink
  • Montaža spremišta preko /mnt

Koji su uobičajeni slučajevi upotrebe Bash-a u sustavu Windows?

Trenutno mnogi programeri koriste alate za Windows i Linux, što znači da moraju izvršiti dvostruko podizanje sustava ili pokrenuti Linux unutar virtualnog stroja da bi dobili CLI mogućnosti. Kada mogu pokrenuti te alate u sustavu Windows, tada Windows postaje njihova primarna radna površina. U tom slučaju ne moraju prenositi Linux aplikacije i usluge na Windows sustave. Iako su neki ljudi mogli pokretati Linux GUI aplikacije u sustavu Windows, mnogi ljudi imaju prikladan Linux CLI za obavljanje jednostavnih zadataka bez kupnje namjenskog Linux stroja od Azurea ili prebacivanje na Mac uređaj u jednostavne svrhe. Kako je skriptiranje na Bashu jednostavno, možete automatizirati razvojne zadatke, poput sigurnosne kopije web stranica u Apacheu.

Na primjer, mnogi programeri koriste GitHub za zadatke kontrole verzija. Da biste pristupili GitHubu u sustavu Windows, morate instalirati GitHub za Windows, a zatim upotrijebiti naredbe commit i push za urezivanje promjena. Naizmjenično morate preuzeti uslužni program Git, što je naporan postupak. S Bashom na sustavu Windows vaš posao postaje jednostavan:

apt-get instalirati git

git počiniti

git push

Također, pod Bashom vam nisu potrebni alati treće strane za rad s tradicionalnim vrstama datoteka Linux poput GZIPed tarballs (tar.gz datoteke).

Koji su nedostaci upotrebe Bash-a na sustavu Windows?

Bash na sustavu Windows još je uvijek u beta verziji i sadrži neke grube rubove. Microsoft kaže da Bash na sustavu Windows možda trenutno ne može savršeno izvršiti sve vaše skripte. Međutim, Microsoft pažljivo prati izvedbu i povratne informacije i proaktivno uvodi promjene u ovo rješenje.

Kao drugo, Bash na sustavu Windows stvoren je za razvojnu zajednicu. Nije dizajniran za upravljanje Windows okruženjima. Iako možete raditi stvari poput pokretanja demona poslužitelja u WSL-u, on ne nudi pune mogućnosti cjelovitog virtualnog stroja Linux. Ako namjeravate pokretati poslužiteljske procese pod radnim opterećenjima na Ubuntuu, trebali biste pogledati druge alternative za pokretanje cjelovitog operativnog sustava Linux.

Konačno, Bash na sustavu Windows donosi Linux mogućnosti u sustav Windows. Međutim, Linux alati neće moći komunicirati s Windows alatima i aplikacijama. To znači da nema mogućnosti različitih platformi zbog njihovih inherentnih razlika u arhitekturi.

Bash na sustavu Windows još je u početnoj fazi. Iako postoje neka ograničenja za ovo rješenje, Microsoft neprekidno radi na dodavanju dodatnih mogućnosti za brisanje tih razlika i pretvaranje Windows-a u platformu br. 1 za svaku vrstu razvojnog projekta. Pripazite na ovaj projekt tvrtke Microsoft. S novim stavom Microsofta u svijetu otvorenog koda, zasigurno će Bash učiniti prvorazrednim građaninom Windowsa kako vrijeme bude odmicalo.

Povezani članci

  • Osnovni vodič za PowerShell za Windows, Windows Server i Exchange
  • 10 osnovnih PowerShell sigurnosnih skripti za Windows administratore
  • Sve o PowerShell dobavljačima i modulima
  • Idi profesionalno: Korisnički vodič za PowerShell