GNU/Linux >> Linux Esercitazione >  >> Linux

Un'alleanza meravigliosamente empia:comandi Linux reali per PowerShell con wrapper di funzioni WSL

Ho postato di recente su Qual è la differenza tra una console, un terminale e una shell? Il mondo di Windows è interessante, e un po' strano e sconosciuto per le persone non Windows. Potresti usare Ubuntu o Mac e hai scelto la tua shell come zsh o bash o pwsh, ma poi arrivi su Windows e stiamo saltando tra le shell (e ora i sistemi operativi con WSL!) Scheda per scheda.

Se stai utilizzando una shell di Windows come PowerShell perché ti piace il suo motore basato su .NET Core e il potente linguaggio di scripting, potresti comunque perdere i comuni comandi della shell *nix come ls, grep, sed e altri.

Non importa quale shell stai usando in Windows (powershell, yori, cmd, qualunque cosa) puoi sempre chiamare la tua istanza Ubuntu predefinita con "wsl command" quindi "wsl ls" o "wsl grep" ma sarebbe bello renderli più naturalmente e comodamente integrati.

Ora è disponibile una nuova serie di "wrapper di funzioni" che rendono i comandi Linux disponibili direttamente in PowerShell in modo da poter passare facilmente tra più ambienti.

Potrebbe sembrare strano, ma ci consente di creare fantastici comandi in pipe che si muovono dentro e fuori Windows e Linux, PowerShell e bash. In realtà è piuttosto sorprendente e molto naturale se tu, come me, non sei confessionale nella scelta del sistema operativo e della shell preferita.

Questi wrapper di funzioni sono progettati in modo molto accurato ed espongono persino il completamento TAB su tutti i sistemi operativi! Ciò significa che posso digitare comandi Linux in PowerShell e arriva il completamento di TAB!

È super facile da configurare. Dal Github di Mike Battista

  • Installa PowerShell Core
  • Installa il sottosistema Windows per Linux (WSL)
  • Installa il modulo WslInterop con Install-Module WslInterop
  • Importa comandi con Import-WslCommand dal tuo profilo per l'accesso persistente o su richiesta quando hai bisogno di un comando (ad es. Import-WslCommand "awk", "emacs", "grep", "head", "less", "ls", "man", "sed", "seq", "ssh", "tail", "vim" )

Farai il tuo modulo di installazione solo uno, quindi esegui il blocco note $profile e aggiungi solo un'ultima riga. Assicurati di cambiarlo per esporre i comandi WSL/Linux che desideri. Una volta che hai finito, puoi semplicemente aprire PowerShell Core e combinare e abbinare i tuoi comandi!

Dal blog, "Con questi wrapper di funzioni in atto, ora possiamo chiamare i nostri comandi Linux preferiti in un modo più naturale senza doverli prefissare con wsl oppure preoccupati di come i percorsi di Windows vengono tradotti in percorsi WSL:"

  • man bash
  • less -i $profile.CurrentUserAllHosts
  • ls -Al C:\Windows\ | less
  • grep -Ein error *.log
  • tail -f *.log

È davvero una cosa geniale e complimenti a Mike per averlo condiviso con noi! Vai a provarlo ora. https://github.com/mikebattista/PowerShell-WSL-Interop

Sponsor: Come C#? Anche noi! Ecco perché abbiamo sviluppato un IDE .NET veloce, intelligente e multipiattaforma che ti offre ancora più potenza di codifica. Analisi del codice intelligente, completamento del codice completo, ricerca e navigazione istantanea, un debugger avanzato... Con JetBrains Rider, tutto ciò di cui hai bisogno è a portata di mano. Codifica C# alla velocità del pensiero su Linux, Mac o Windows. Prova JetBrains Rider oggi!


Linux
  1. 3 consigli per la stampa con Linux

  2. 8 comandi Linux per una gestione efficace dei processi

  3. Spiegazione del sottosistema Windows per Linux, WSL e WSL2

  4. 20 comandi Linux di base per principianti spiegati con esempi

  5. 10 comandi Linux per la diagnostica di rete

14 Comandi Tar di base in Linux con esempi per i principianti

4 comandi Stat in Linux con esempio per utenti principianti

La guida definitiva al sottosistema Windows per Linux (Windows WSL)

Installa Windows 10 su Linux con VirtualBox

Come eseguire app della GUI Linux su Windows 10 con WSL e WSLg

Sviluppo Web e Tecniche Avanzate con Linux su Windows (WSL)