GNU/Linux >> Znalost Linux >  >> Linux

Rok Linuxu na ploše (Windows) - WSL tipy a triky

V poslední době jsem udělal spoustu práce v bash/zsh/fish - Linuxing. V případě, že jste to nevěděli, Windows 10 nyní umí provozovat Linux. Jistě, můžete provozovat Linux na virtuálním počítači, ale je těžký a potřebujete slušný stroj. Shell můžete spustit pod Dockerem, ale budete potřebovat Hyper-V a Windows 10 Pro. Můžete dokonce přejít na https://shell.azure.com a získat terminál kdekoli – dělám to na svém Chromebooku.

Ale většinou Linux spouštím nativně na Windows 10. Můžete jít. Stačí jednou otevřít PowerShell jako správce a spustit tento příkaz a restartovat:

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

Pak přejděte do Windows Store a stáhněte si Ubuntu, nebo Debian, nebo Kali, nebo cokoli jiného.

  • Ubuntu
  • OpenSUSE
  • SLES
  • Kali Linux
  • Debian GNU/Linux

To, co se děje, je, že používáte Linux v uživatelském režimu bez linuxového jádra. Systémová volání (systémová volání), která tyto neupravené Linuxy používají, jsou zprostředkována pro Windows. Fork linuxový proces? Je to pikoproces ve Windows a zobrazuje se ve správci úloh.

Chcete upravovat soubory Windows a upravovat je ve Windows i Linuxu? Uchovávejte své soubory/kód v /mnt/c/ a můžete je upravovat s jinými OS. Nepoužívejte systém Windows k „proniknutí do systému souborů Linux“. Existují draci.

Jakmile máte nainstalovaný Linux (nebo mnoho, jako já), můžete je spravovat a používat mnoha způsoby.

Myslíte si, že je to hloupé nebo hloupé? Přestaňte číst a běžte dál na Linuxu a přeji vám vše nejlepší. Více energie pro vás.

Chcete vědět více? Chcete hledat nové a kreativní způsoby, jak získat to NEJLEPŠÍ z UI Windows a nástrojů příkazového řádku Linuxu? Čtěte dál, přátelé.

wslconfig

WSL znamená "Windows Subsystem for Linux." Počínaje Windows 10 (verze 1709 – to je 2017-09, Fall Creators Update. Spusťte „Winver“, abyste viděli, co používáte), máte příkaz nazvaný „wslconfig“. Vyzkoušet to. Obsahuje seznam distribucí, které máte, a řídí, která se spustí, když napíšete „bash“.

Níže se podívejte, že moje výchozí hodnota pro „bash“ je Ubuntu 16.04, ale pokud chci, mohu spustit 18.04 ručně. Podívejte se, jak se přesunu z cmd do bash a vystoupím, pak se vrátím bez problémů. Opět žádný VM.

C:\>wslconfig /l /all
Windows Subsystem for Linux Distributions:
Ubuntu (Default)
Ubuntu-18.04
openSUSE-42
Debian
kali-rolling

C:\>wslconfig /l
Windows Subsystem for Linux Distributions:
Ubuntu (Default)
Ubuntu-18.04
openSUSE-42
Debian
kali-rolling

C:\>bash
128 → $ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.4 LTS
Release: 16.04
Codename: xenial
128 → $ exit
logout

C:\>ubuntu1804
scott@SONOFHEXPOWER:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04 LTS
Release: 18.04
Codename: bionic
scott@SONOFHEXPOWER:~$

Můžete také vložit věci do příkazů Linuxu propojením s wsl nebo bash takto:

C:\Users\scott\Desktop>dir | wsl grep "poop"
05/18/2018 04:23 PM <DIR> poop

Pokud používáte Windows a spouštíte cmd.exe nebo powershell.exe, je nejlepší přejít do Linuxu spuštěním wsl nebo bash, protože zachovává aktuální adresář.

C:\Users\scott\Desktop>bash
129 → $ pwd
/mnt/c/Users/scott/Desktop
129 → $ exit
logout

Chladný! Zajímá vás, jaké je to číslo před mou výzvou? To je moje hladina cukru v krvi. Ale to je jiný příspěvek na blogu.

wsl.conf

V /etc/wsl.conf je soubor, který vám umožňuje ovládat věci, jako jestli váš Linux automaticky připojuje vaše Windows disky. Můžete také ovládat pokročilejší věci, například pokud systém Windows automaticky generuje soubor hostitelů nebo zpracovává /etc/fstab. Je to na vás!

Distribuce

K dispozici je půl tuctu distribucí a bylo mi řečeno, že další budou přibývat, ale VY si také můžete vytvořit/zabalit svou vlastní distribuci Linuxu pro WSL pomocí balíčku/distro-launcheru, který je open source na GitHubu.

Docker a WSL

Každý chce vědět, jestli můžete spustit Docker "nativní" na WSL. Ne, to je trochu moc "Počátek" a jak bylo zmíněno, linuxové kernel není přítomno. Neupravené binární soubory elfů fungují dobře, ale Windows to dělá. ALE!

Můžete spustit Docker pro Windows a kliknout na "Expose daemon on localhost:2375" a protože Windows a WSL/Linux sdílejí stejný prostor portů, MŮŽETE velmi šťastně spouštět klienta Docker na WSL.

Poté, co máte Docker pro Windows spuštěný na pozadí, nainstalujte jej do Ubuntu podle běžných pokynů. Potom aktualizujte svůj .bashrc, aby váš místní klient dockeru mohl komunikovat s Dockerem pro Windows:

echo "export DOCKER_HOST=tcp://0.0.0.0:2375" >> ~/.bashrc && source ~/.bashrc

Existuje spousta mnohem delších a podrobnějších výukových programů „Docker on WSL“, takže pokud byste chtěli více technických podrobností, doporučuji vám je zkontrolovat! Pokud používáte hodně Volume Mounts, považoval jsem Nickův zápis za velmi užitečný.

Nyní, když spouštím „obrázky dockeru“ nebo cokoli jiného z WSL, mluvím s Dockerem pro Windows. Funguje skvěle, přesně tak, jak byste očekávali, a obrázky a kontejnery sdílíte v obou světech.

128 → $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
podcast test 1bd29d0223da 9 days ago 2.07GB
podcast latest e9dd366f0375 9 days ago 271MB
microsoft/dotnet-samples aspnetapp 80a65a6b6f95 11 days ago 258MB
microsoft/dotnet-samples dotnetapp b3d7f438bad3 2 weeks ago 180MB
microsoft/dotnet 2.1-sdk 1f63052e44c2 2 weeks ago 1.72GB
microsoft/dotnet 2.1-aspnetcore-runtime 083ca6a642ea 2 weeks ago 255MB
microsoft/dotnet 2.1-runtime 6d25f57ea9d6 2 weeks ago 180MB
microsoft/powershell latest 708fb186511e 2 weeks ago 318MB
microsoft/azure-cli latest 92bbcaff2f87 3 weeks ago 423MB
debian jessie 4eb8376dc2a3 4 weeks ago 127MB
microsoft/dotnet-samples latest 4070d1d1e7bb 5 weeks ago 219MB
docker4w/nsenter-dockerd latest cae870735e91 7 months ago 187kB
glennc/fancypants latest e1c29c74e891 20 months ago 291MB

Skvělé.

Kódování a úprava souborů

Musím znovu zasáhnout tento bod. Neměňte soubory Linux pomocí aplikací a nástrojů Windows. Můžete však sdílet soubory a upravovat je s Windows i Linux tím, že ponecháte kód v souborovém systému Windows.

Moje práce je například na c:\github, takže je také na /mnt/c/github. Používám kód Visual Studio a upravuji tam svůj kód (nebo vim z WSL) a spouštím kód z Linuxu. Dokonce mohu spustit bash/wsl z kódu Visual Studio pomocí jeho integrovaného terminálu. Stačí stisknout "Ctrl+P" v kódu Visual Studio a napsat "Select Default Shell."

V edici Windows 10 Insiders má Windows nyní uživatelské rozhraní nazvané „Sety“, které vám poskytne příkazové řádky s kartami. Zde instaluji Ruby on Rails v Ubuntu vedle dvou dalších výzev - Cmd a PowerShell. Toto všechno je výchozí systém Windows – žádné doplňky ani další programy pro toto prostředí.

Jako příklad zde používám Rails, protože podpora Ruby/Rails ve Windows s nativními rozšířeními byla historicky výzvou. Existuje skupina lidí, kteří se hrdinně (a nevděčně) snaží, aby Ruby on Rails dobře fungoval na Windows, ale dnes to není potřeba. Funguje skvěle na Linuxu pod Windows.

Mohu také spouštět aplikace nebo nástroje pro Windows z Linuxu, pokud použiji jejich celé jméno s příponou (jako code.exe) nebo nastavím alias.

Zde jsem vytvořil alias „kód“, který spouští kód v aktuálním adresáři, a pak jsem nechal VS Code spouštět úpravy mé nové aplikace Rails.

Mohu dokonce kombinovat Windows a Linux při propojení. To pravděpodobně učiní lidi s Windows šťastnými a hluboce urazí lidi s Linuxem. Nebo, pokud nejste denominační jako já, vykopete to!

$ ipconfig.exe | grep IPv4 | cut -d: -f2
172.21.240.1
10.159.21.24

Opět připomenutí:Úprava souborů umístěných mimo /mnt/<x> s aplikací Windows ve WSL není podporováno. Ale upravte věci na /mnt/x čímkoli a budete v pohodě.

Sdílení Sdílení Sdílení

Pokud máte Windows 10 Build 17064 nebo novější (spusťte ver z Windows nebo "cmd.exe /c /ver" z Linuxu) a můžete dokonce sdílet proměnnou prostředí!

131 → $ cmd.exe /c ver

Microsoft Windows [Version 10.0.17672.1000]

Existuje speciální proměnná prostředí nazvaná „WSLENV“, což je dvojtečkou oddělený seznam proměnných prostředí, které by měly být zahrnuty při spouštění procesů WSL z procesů Win32 nebo Win32 z WSL. V podstatě mu dáte seznam proměnných, které chcete roam/sdílet. To usnadní věci, jako jsou duální sestavení napříč platformami. Můžete dokonce přidat příznak /p a automaticky přeloží cesty mezi stylem c:\windows a stylem /mnt/c/windows.

Podívejte se na příklad na blogu WSL o tom, jak sdílet GOPATH a používat VSCode ve Windows a spouštět Go na obou místech.

K překladu názvů cest mezi Windows a WSL můžete také použít speciální vestavěný příkazový řádek s názvem "wslpath". To je užitečné, pokud sdílíte bash skripty, vytváříte skripty pro různé platformy (mám skripty PowerShell Core, které běží na obou místech) nebo jen potřebujete programově přepínat typy cest.

131 → $ wslpath "d:\github\hanselminutes-core"
/mnt/d/github/hanselminutes-core
131 → $ wslpath "c:\Users\scott\Desktop"
/mnt/c/Users/scott/Desktop

Pro wslpath zatím neexistuje žádná manuálová stránka, ale zkopírováno z tohoto problému na GitHubu, zde je podstata:

wslpath usage:
-a force result to absolute path format
-u translate from a Windows path to a WSL path (default)
-w translate from a WSL path to a Windows path
-m translate from a WSL path to a Windows path, with ‘/’ instead of ‘\\’

Jedna poslední poznámka, jakmile si nainstalujete distribuci Linuxu z Windows Store, je na vás, abyste ji udržovali aktuální. Windows Store nespustí "apt upgrade" ani se nikdy nedotkne vašich Linuxů, jakmile budou nainstalovány. Navíc můžete mít Ubuntu 1604 a 1804 nainstalované vedle sebe a nic to nezkazí.

Související odkazy

  • Nastavení prostředí Shiny Development Environment v systému Linux na Windows 10
  • Badass Terminal:Aktualizace WSL, macOS a Ubuntu dotfiles!!! od Jessicy Deen

Používáte WSL?

Sponzor: Podívejte se na JetBrains Rider:multiplatformní .NET IDE. Upravujte, refaktorujte, testujte a ladte aplikace ASP.NET, .NET Framework, .NET Core, Xamarin nebo Unity. Zjistěte více a stáhněte si 30denní zkušební verzi!


Linux
  1. Tipy a triky pro použití CUPS pro tisk s Linuxem

  2. Jak získat přístup k souborovým systémům Linux ve Windows 10 a WSL 2

  3. Kali Linux v obchodě Windows App Store

  1. Tipy a triky pro proměnné prostředí Linuxu

  2. Linux .htaccess tipy a triky

  3. Zjistěte verzi OS, Linux a Windows z Powershell

  1. 5 zajímavých tipů a triků pro příkazový řádek v Linuxu – část 1

  2. Dobrý, zlý a ošklivý Linux v roce 2014

  3. Tipy a triky pro použití příkazu wget Linux