A Windows 10 évfordulójának frissítésével a Microsoft bejelentette a Windows Linux alrendszerét (WSL), amely a natív Linux binárisok futtatását támogató Windows 10 operációs rendszeren futó, natív Bash rendszert futtat. Ez úgy történik, hogy egy felhasználói módú Ubuntu Linux-képet futtat a Windows tetején.
Ez azt jelenti, hogy futtathat olyan Linux parancssori eszközöket, mint az ls
, grep
, top
és chmod
. Mivel az eredeti Ubuntu alatt fut, az lsb-release -a
futtatása a következő kimenetet adja:
Az apt-get
és a barátok segítségével telepíthetünk olyan segédprogramokat, mint a vim
, git
, screen
, tmux
vagy nethack:
játék nethack:
Ne feledje azonban, hogy ez a rendszer bétában van, és nem szolgál kiszolgálói terhelésekre. Ez csak egy eszköz a fejlesztőknek (és a rajongóknak), hogy Linux-központú alkalmazásokat teszteljenek Windows-on módosítás nélkül. Ez nem egy olyan eszköz, amely Linux GUI alkalmazások vagy környezetek, például Gnome vagy KDE futtatására szolgál, bár ez bizonyos hackekkel is lehetséges. Miután megtisztítottuk, nézzük meg, hogyan működik a Linux shell a Windows 10 rendszerben.
Windows alrendszer Linux számára (WSL)
A hivatalos dokumentáció szerint „A WSL olyan összetevők gyűjteménye, amelyek lehetővé teszik a natív Linux ELF64 binárisok futtatását Windows rendszeren”. Ezt úgy valósítja meg, hogy a Windows NT kernel tetején egy virtualizált Linux kernel felületet valósít meg. Ez azt jelenti, hogy nem használ semmilyen kódot a tényleges Linux-kernelről - amikor egy alkalmazás Linux-specifikus rendszerhívást (syscall) készít, a WSL lefordítja azt a megfelelő Windows rendszerhez, amely az összes nehéz emelést elvégzi.
Különbségek a virtuális gépek és a Cygwin között
Most nézzük meg, hogyan különbözik a Linux Bash Shell a Windows 10-ben a virtuális gépek és a Cygwin hasonlóságaihoz képest.
Virtuális gépek
Lehet, hogy gondolod: - Nos, miért használod ezt? Miért nem csak Linux operációs rendszert használ a Windows rendszerben?
A virtuális géphez képest a WSL kevesebb erőforrást használ . Lehetővé teszi továbbá, hogy fájljaival együtt dolgozzon a Linuxon, miközben teljes hozzáférést biztosít a mögöttes Windows fájlrendszerhez anélkül, hogy a megosztott mappákra vagy a hálózati megosztásra kellene támaszkodnia.
cygwin
A népszerű Linux / Unix-szerű eszközök Windows-on történő futtatásának másik népszerű módja a Cygwin. A két megközelítés között a legnagyobb különbség az, hogy a Cygwin nem a natív Linux binárisok Windows-on történő futtatásának módja . Csak olyan GNU és Open Source eszközöket tartalmaz, amelyek a Windows rendszerű Linux disztribúcióhoz hasonló funkcionalitást biztosítanak.
Másrészt a WSL eszközök natív Linux ELF-64 összeállított binárisok, amelyek Windows-on futnak. Például az apt-get install emacs
parancs futtatása a WSL-ben ugyanazokat a fájlokat fogja letölteni és telepíteni, mint az Ubuntu 14.04 telepítésén, a hivatalos Ubuntu tárolókból.
Felhasználók, engedélyek és fájlrendszerek a WSL-ben
Fájlrendszer hierarchia
A WSL az aktuális felhasználó %LocalAppData%\lxss\rootfs
van telepítve. Ezt WSL környezetnek nevezik, és Linux /
(root) könyvtárként működik. Például, ha a felhasználóneved a Windows-on beebom
, akkor a Linux gyökérkönyvtára C:\Users\beebom\AppData\Local\lxss\rootfs.
Ez azt jelenti, hogy minden Windows-felhasználó rendelkezik saját WSL-környezettel, és olyan változtatásokat végezhet, mint az apt-get install
szoftvercsomagok, anélkül, hogy befolyásolná a Windows többi felhasználóját.
A WSL-ben elérhető az alapul szolgáló Windows fájlrendszer. Minden meghajtó a /mnt.
Például C:\
a /mnt/c
, D:\
a /mnt/d
alatt stb.
Felhasználók és engedélyek
A WSL első telepítésekor új alapértelmezett Linux-felhasználó létrehozását kéri. Ennek a felhasználónak nem kell ugyanaz a neve, mint a jelenlegi Windows-felhasználónak, és általában különálló entitásként kell kezelni. Még több Linux-felhasználó is létrehozható, amelyet egyetlen Windows-felhasználó vezérel.
Lehetőség van root
jogosultságok megszerzésére a sudo
paranccsal. Ne feledje, hogy a WSL root
csak a Linux környezetben és fájlrendszeren belüli jogait érinti - nincs hatással a megadott Windows jogosultságokra. Például a Windows adminisztrátori jogosultságokkal rendelkező WSL-munkamenet cd /mnt/c/Users/Administrator
míg az admin jogosultság nélküli Bash-munkamenet engedélyezés megtagadva lesz. A sudo cd /mnt/c/Users/Administrator
beírása nem ad hozzáférést az Adminisztrátor könyvtárához, mivel az engedélyeket a Windows korlátozza.
Linux-specifikus fájlrendszer-funkciók
A Linux kis- és nagybetű-érzékeny rendszer. Ez azt jelenti, hogy a photo.png
és a Photo.png
két különböző fájlnak tekintendő. Míg a Windows alapértelmezés szerint nem érzékeny a kis- és nagybetűkre, még mindig tudatában van . Ez azt jelenti, hogy míg a photo.png
és a Photo.png
nem tekinthető két különálló fájlnak, biztosan tudatában van a különbségnek.
A WSL úgy kezeli az esetérzékenységet, mint a Linuxon. Lehetőség van még két olyan fájl létrehozására is, amelyek neve csak a WSL-környezeten kívül eltérő. Ne feledje azonban, hogy sok Windows-alkalmazás nem tudja kezelni az ilyen helyzeteket, és nem tudja megnyitni egy vagy mindkét fájlt.
Hasonlóképpen, szimbolikus hivatkozások támogatottak, feltéve, hogy NTFS fájlrendszert futtat. A szimbolikus hivatkozások azonban csak a WSL-ben fognak működni, és más Windows-alkalmazások nem oldhatók meg.
A Linux szinte minden speciális karaktert támogat a fájlnevekben, míg a Windows szigorúbb. A WSL azonban lehetővé teszi az ilyen speciális karakterek használatát, feltéve, hogy ezek a Linux rendszer környezetére korlátozódnak.
Készen áll a Linux parancssorának futtatására a Windows rendszeren?
Tehát így az Ubuntu Bash vagy a Linux Bash Shell, más néven Windows alrendszer a Linux operációs rendszeren működik a Windows 10 rendszeren (az évforduló frissítésével). Munkájával együtt megtanultuk, hogyan különbözik és jobb, mint a hagyományos Linux-specifikus parancsok futtatásának módszerei. Tehát, ha mindig Linux-parancsokat szeretne használni, kezdje el, és ha kérdése, észrevétele vagy tippje van, győződjön meg róla, hogy tudassa velünk a megjegyzések részben.