Odată cu lansarea Actualizării de Aniversare pentru Windows 10, Microsoft a anunțat Subsistemul Windows pentru Linux (WSL) - o modalitate de a rula Bash nativ real pe Windows 10, care acceptă execuția binarelor native Linux. Acest lucru se face prin rularea unei imagini Ubuntu Linux în modul de utilizare pe partea de sus a Windows.
Aceasta înseamnă că puteți rula linii de comandă Linux cum ar fi ls
, grep
, top
și chmod
. Din moment ce rulați sub Ubuntu autentic dedesubt, executarea lsb-release -a
va da următoarea ieșire:
Puteți folosi apt-get
și prietenii să instaleze utilitare cum ar fi vim
, git
, screen
, tmux
sau chiar să joace un joc de nethack:
Rețineți, totuși, că acest sistem este în versiune beta și nu este destinat încărcărilor de lucru ale serverului. Este doar un instrument pentru dezvoltatorii (și entuziaștii) să-și testeze aplicațiile centrate pe Linux fără modificări Windows. Acesta nu este, de asemenea, un instrument destinat să ruleze aplicații sau medii GUI Linux, cum ar fi Gnome sau KDE, deși acest lucru este posibil și cu anumite hack-uri. După ce am eliminat acest lucru, să aruncăm o privire asupra funcționării shell-ului Linux în Windows 10.
Subsistemul Windows pentru Linux (WSL)
Conform documentației oficiale, "WSL este o colecție de componente care permite ca binarele Linux ELF64 native să ruleze pe Windows". Acest lucru se întâmplă prin implementarea unei interfețe virtuale de kernel Linux pe partea de sus a kernel-ului Windows NT. Aceasta înseamnă că nu utilizează niciun cod din kernel-ul actual al Linux - ori de câte ori o aplicație generează un apel de sistem specific sistemului Linux (syscall), WSL îl traduce la sistemul echivalent Windows, care face apoi toate ridicările grele.
Diferențe față de mașinile virtuale și Cygwin
Acum, să aruncăm o privire la modul în care Linux Bash Shell pe Windows 10 este diferit în comparație cu mașinile virtuale și Cygwin.
Mașini virtuale
S-ar putea să vă gândiți: "Ei bine, de ce să folosiți asta? De ce nu folosiți doar un VM Linux în Windows? "
Comparat cu o mașină virtuală, WSL utilizează mai puține resurse . De asemenea, vă permite să lucrați cu fișierele pe care le-ați efectuat pe Linux, oferindu-vă acces total la sistemul de fișiere Windows, fără a trebui să vă bazați pe folderele partajate sau pe cele de rețea.
Cygwin
O altă metodă populară de a rula instrumente populare Linux / Unix pe Windows este Cygwin. Cea mai mare diferență între cele două abordări este că Cygwin nu este o modalitate de a rula binarele native Linux pe Windows. Acesta oferă doar un set de instrumente GNU și Open Source care oferă funcționalități similare cu distribuția Linux pe Windows.
Pe de altă parte, instrumentele WSL sunt binare native Linux ELF-64 compilate care rulează pe Windows. De exemplu, executarea unei comenzi apt-get install emacs
în WSL va descărca și instala aceleași fișiere ca pe o instalare Ubuntu 14.04, din depozitele oficiale Ubuntu.
Utilizatori, Permisiuni și Sisteme de Fișiere în WSL
Ierarhia sistemelor de fișiere
WSL este instalat în directorul %LocalAppData%\lxss\rootfs
al utilizatorului curent. Acesta este cunoscut sub numele de WSL Environment și acționează ca directorul Linux " /
" (root). De exemplu, dacă numele dvs. de utilizator pe Windows este beebom
, directorul rădăcină al Linux va fi localizat în C:\Users\beebom\AppData\Local\lxss\rootfs.
Acest lucru înseamnă că fiecare utilizator Windows poate avea propriul mediu WSL și poate efectua modificări, cum ar fi pachetele software de apt-get install
, fără a afecta alți utilizatori Windows.
Este posibil să accesați sistemul de fișiere Windows de bază din WSL. Toate unitățile sunt montate sub /mnt.
De exemplu, C:\
este montat sub /mnt/c
, D:\
este montat sub /mnt/d
, etc.
Utilizatori și Permisiuni
Când instalați pentru prima dată WSL, vă va solicita să creați un nou utilizator implicit Linux. Acest utilizator nu are nevoie de același nume ca și utilizatorul Windows curent și este considerat, în general, o entitate separată. Puteți crea chiar mai mulți utilizatori Linux, controlați de un singur utilizator Windows.
Este posibil să obțineți privilegii de root
utilizând comanda sudo
. Rețineți că faptul că sunteți root
în WSL afectează numai drepturile utilizatorului în mediul Linux și sistemul de fișiere - acestea nu au niciun impact asupra privilegiilor Windows acordate. De exemplu, o sesiune WSL cu privilegii de administrare Windows poate fi cd /mnt/c/Users/Administrator
timp ce o sesiune Bash fără privilegii admin va vedea permisiunea refuzată. Tastarea sudo cd /mnt/c/Users/Administrator
nu va permite accesul în directorul Administratorului, deoarece permisiunile sunt restricționate de Windows.
Funcțiile sistemului de fișiere specifice sistemului Linux
Linux este un sistem sensibil la caz . Aceasta înseamnă că photo.png
și Photo.png
sunt tratate ca două fișiere diferite. În timp ce sistemul Windows nu este sensibil la sensibilizarea la majuscule în mod obișnuit, este în continuare cazul. Ceea ce inseamna ca in timp ce photo.png
si Photo.png
nu sunt tratate ca doua fisiere distincte, cu siguranta este constient de diferenta in cazul.
WSL se ocupă de sensibilitatea cazurilor la fel ca pe Linux. Este posibil chiar să creați două fișiere al căror nume diferă numai după caz în afara mediului WSL. Rețineți totuși că multe aplicații Windows nu se pot ocupa de astfel de situații și că nu pot deschide unul sau ambele fișiere.
În mod similar, sunt acceptate legăturile simbolice, cu condiția să rulați un sistem de fișiere NTFS. Cu toate acestea, legăturile simbolice vor funcționa numai în interiorul WSL și nu pot fi rezolvate de alte aplicații Windows.
De asemenea, Linux suportă aproape toate caracterele speciale din numele fișierelor, în timp ce Windows este mai restrictiv. WSL, cu toate acestea, permite utilizarea unor astfel de caractere speciale, cu condiția ca acestea să fie limitate la mediul sistemului Linux.
Sunteți gata să executați linia de comandă Linux pe Windows?
Deci, așa funcționează Ubuntu Bash sau Linux Bash Shell, cunoscut și sub numele de Windows Subsystem for Linux, pe Windows 10 (cu actualizarea Aniversare). Odată cu lucrul, am învățat și cum este diferit și mai bun decât metodele tradiționale de rulare a comenzilor specifice Linux pe Windows. Deci, dacă ați dorit întotdeauna să utilizați comenzi Linux, începeți și dacă aveți întrebări, comentarii sau sfaturi, asigurați-vă că ne anunțați în secțiunea de comentarii.