Dicas para executar programas do Windows 10 numa concha WSL Linux

O Subsistema Windows para o Linux está a ligar a divisão entre o Windows e o Linux, permitindo que as pessoas executem programas do Windows 10 diretamente dentro de uma concha Do Linux. Um dos pontos fortes do Subsistema Windows para o Linux (WSL) é que os utilizadores não só podem executar uma distribuição Linux no Windows 10, como também têm a flexibilidade de executar programas do Windows 10 no Linux.
Devido a esta capacidade, o Linux pode controlar funcionalidades do Windows ou para que os programas windows funcionem em conjunto com o sistema de ficheiros WSL ou a sua saída processada pelos comandos Linux. Além disso, os utilizadores de WSL podem até criar scripts de concha complexos que afetam a propagação do Linux e também podem ser utilizados para executar comandos no Windows 10.
Tanto o Windows 10 como o Linux utilizam uma variável ‘PATH’ que envolve uma lista de pastas que são pesquisadas quando as pessoas executam um programa. Se tentar lançar um programa e não puder ser detetado no PATH, tanto o Linux como o Windows dir-lhe-ão que o programa não pode ser encontrado. Nessas situações, seria necessário executar o programa utilizando o seu percurso completo como “C:Notepad2Notepad.exe.”
Quando uma distribuição WSL for lançada pelo Windows 10, configurará a variável Linux PATH para incluir as pastas binárias Linux padrão e o seu caminho regular do Windows 10. Este caminho pode ser visto digitando o env grep “PATH” comando em uma origem da concha WSL.
Além de executar programas para atuar em conjunto com ficheiros na WSL, também pode processar a saída dos programas do Windows 10 no Linux. Quando um programa de consolas Windows é lançado, a sua saída é exibida diretamente no Linux e não no Windows. Esta saída pode então ser processada usando programas como sed, awk, sort, etc. Como um exemplo simples, se quiséssemos obter uma lista de serviços do Windows 10 classificados pelo nome de serviço, poderíamos usar o seguinte comando:
sc.exe query | grep SERVICE_NAME | awk ‘{print $1=””; print $0}’ | sort -bf| sed ‘/^$/d’