J'ai récemment posté sur Quelle est la différence entre une console, un terminal et un shell ? Le monde de Windows est intéressant - et un peu étrange et inconnu des non-Windows. Vous pouvez utiliser Ubuntu ou Mac et vous avez choisi votre shell comme zsh ou bash ou pwsh, mais ensuite vous arrivez à Windows et nous sautons entre les shells (et maintenant les systèmes d'exploitation avec WSL !) onglet par onglet.
Si vous utilisez un shell Windows comme PowerShell parce que vous aimez son moteur basé sur .NET Core et son puissant langage de script, vous risquez de manquer les commandes communes * nix shell comme ls, grep, sed et plus encore.
Quel que soit le shell que vous utilisez dans Windows (powershell, yori, cmd, peu importe), vous pouvez toujours appeler votre instance Ubuntu par défaut avec "wsl command" donc "wsl ls" ou "wsl grep" mais ce serait bien de intégrez-les plus naturellement et confortablement.
Il existe désormais une nouvelle série de "fonction wrappers" qui rendent les commandes Linux disponibles directement dans PowerShell afin que vous puissiez facilement passer d'un environnement à l'autre.
Cela peut sembler étrange, mais cela nous permet de créer des commandes canalisées incroyables qui entrent et sortent de Windows et Linux, PowerShell et bash. C'est en fait assez étonnant et très naturel si vous, comme moi, êtes non confessionnel dans votre choix de système d'exploitation et de shell préféré.
Ces wrappers de fonctions sont très bien conçus et exposent même la complétion TAB sur tous les systèmes d'exploitation ! Cela signifie que je peux taper des commandes Linux dans PowerShell et que la complétion TAB arrive !
C'est super facile à mettre en place. Du Github de Mike Battista
- Installer PowerShell Core
- Installer le sous-système Windows pour Linux (WSL)
- Installez le module WslInterop avec
Install-Module WslInterop
- Importer des commandes avec
Import-WslCommand
soit depuis votre profil pour un accès persistant, soit à la demande lorsque vous avez besoin d'une commande (par exempleImport-WslCommand "awk", "emacs", "grep", "head", "less", "ls", "man", "sed", "seq", "ssh", "tail", "vim"
)
Vous ferez votre Install-Module un seul, puis exécuterez le bloc-notes $profile et ajouterez juste cette dernière ligne. Assurez-vous de le modifier pour exposer les commandes WSL/Linux que vous souhaitez. Une fois que vous avez terminé, vous pouvez simplement ouvrir PowerShell Core et mélanger et assortir vos commandes !
Du blog, "Avec ces wrappers de fonction en place, nous pouvons désormais appeler nos commandes Linux préférées de manière plus naturelle sans avoir à les préfixer avec wsl
ou vous soucier de la façon dont les chemins Windows sont traduits en chemins WSL : "
man bash
less -i $profile.CurrentUserAllHosts
ls -Al C:\Windows\ | less
grep -Ein error *.log
tail -f *.log
C'est vraiment génial et bravo à Mike de l'avoir partagé avec nous ! Allez essayer maintenant. https://github.com/mikebattista/PowerShell-WSL-Interop
Parrain : Vous aimez C# ? Nous aussi ! C'est pourquoi nous avons développé un IDE .NET rapide, intelligent et multiplateforme qui vous donne encore plus de puissance de codage. Analyse de code intelligente, complétion de code enrichie, recherche et navigation instantanées, débogueur avancé... Avec JetBrains Rider, tout ce dont vous avez besoin est à portée de main. Codez C# à la vitesse de la pensée sur Linux, Mac ou Windows. Essayez JetBrains Rider dès aujourd'hui !