Nedávno jsem psal o tom, jaký je rozdíl mezi konzolí, terminálem a shellem? Svět Windows je zajímavý – a pro lidi bez Windows trochu zvláštní a neznámý. Možná používáte Ubuntu nebo Mac a vybrali jste si svůj shell jako zsh nebo bash nebo pwsh, ale pak se dostanete do Windows a přeskakujeme mezi shelly (a nyní operačními systémy s WSL!) na základě jednotlivých karet.
Pokud používáte prostředí Windows, jako je PowerShell, protože se vám líbí jeho engine založený na .NET Core a výkonný skriptovací jazyk, stále vám mohou chybět běžné příkazy *nix shellu jako ls, grep, sed a další.
Bez ohledu na to, jaký shell ve Windows používáte (powershell, yori, cmd, cokoliv), vždy můžete zavolat do své výchozí instance Ubuntu pomocí „wsl command“, tedy „wsl ls“ nebo „wsl grep“, ale bylo by hezké aby byly přirozenější a pohodlnější.
Nyní je k dispozici nová řada „obálky funkcí“, která zpřístupňuje příkazy Linuxu přímo v prostředí PowerShell, takže můžete snadno přecházet mezi více prostředími.
Může se to zdát divné, ale umožňuje nám to vytvářet úžasné zřetězené příkazy, které se přesouvají dovnitř a ven z Windows a Linuxu, PowerShellu a bash. Je to vlastně docela úžasné a velmi přirozené, pokud jste jako já nekonfesijní ve výběru operačního systému a preferovaného prostředí.
Tyto obálky funkcí jsou velmi úhledně navrženy a dokonce odhalují dokončení TAB napříč operačními systémy! To znamená, že mohu zadávat příkazy Linuxu v PowerShell a dokončení TAB přichází!
Je to super snadné nastavit. Z Githubu Mika Battisty
- Nainstalujte PowerShell Core
- Instalace podsystému Windows pro Linux (WSL)
- Nainstalujte modul WslInterop s
Install-Module WslInterop
- Importujte příkazy s
Import-WslCommand
buď z vašeho profilu pro trvalý přístup, nebo na vyžádání, když potřebujete příkaz (např.Import-WslCommand "awk", "emacs", "grep", "head", "less", "ls", "man", "sed", "seq", "ssh", "tail", "vim"
)
Provedete svůj instalační modul pouze jeden a poté spustíte poznámkový blok $profile a přidáte pouze jeden poslední řádek. Ujistěte se, že jste jej změnili, aby odkryl příkazy WSL/Linux, které chcete. Jakmile budete hotovi, stačí otevřít PowerShell Core a smíchat a spárovat své příkazy!
Z blogu:„S těmito obálkami funkcí nyní můžeme volat naše oblíbené linuxové příkazy přirozenějším způsobem, aniž bychom jim museli předponu wsl
nebo se starejte o to, jak se cesty Windows překládají na cesty WSL:"
man bash
less -i $profile.CurrentUserAllHosts
ls -Al C:\Windows\ | less
grep -Ein error *.log
tail -f *.log
Je to opravdu geniální věc a děkujeme Mikeovi, že se o to s námi podělil! Jdi to zkusit hned teď. https://github.com/mikebattista/PowerShell-WSL-Interop
Sponzor: Jako C#? My taky! Proto jsme vyvinuli rychlé, chytré, multiplatformní .NET IDE, které vám dává ještě větší kódovací výkon. Chytrá analýza kódu, bohaté doplňování kódu, okamžité vyhledávání a navigace, pokročilý debugger... S JetBrains Rider máte vše, co potřebujete, na dosah ruky. Kódujte C# rychlostí myšlenky na Linuxu, Macu nebo Windows. Vyzkoušejte JetBrains Rider ještě dnes!