Consejos para ejecutar programas de Windows 10 en un shell WSL Linux

El subsistema de Windows para Linux está vinculando la división entre Windows y Linux al permitir que las personas ejecuten programas de Windows 10 directamente dentro de un shell de Linux. Uno de los puntos fuertes del subsistema de Windows para Linux (WSL) es que los usuarios no sólo pueden ejecutar una distribución de Linux en Windows 10, sino que también tiene la flexibilidad de ejecutar programas de Windows 10 en Linux.
Debido a esta capacidad, Linux puede controlar las características de los programas de Windows o Windows para trabajar junto con el sistema de archivos WSL o su salida procesada por los comandos de Linux. Además, los usuarios de WSL pueden incluso crear scripts de shell complejos que afectan a la propagación de Linux y también se pueden emplear para ejecutar comandos en Windows 10.
Tanto Windows 10 como Linux usan una variable ‘PATH’ que implica una lista de carpetas que se buscan cuando las personas ejecutan un programa. Si intenta iniciar un programa y no se puede detectar en el PATH, tanto Linux como Windows le dirán que el programa no se puede encontrar. En esas situaciones, tendría que ejecutar el programa utilizando su ruta de acceso completa como «C:»Notepad2-Notepad.exe.»
Cuando Windows 10 inicia una distribución WSL, configurará la variable Linux PATH para incluir las carpetas binarias estándar de Linux y la ruta de acceso normal de Windows 10. Esta ruta se puede ver escribiendo el env . grep «PATH» en un símbolo del sistema de shell WSL.
Además de ejecutar programas para actuar junto con archivos en WSL, también puede procesar la salida de programas de Windows 10 en Linux. Cuando se inicia un programa de consola de Windows, su salida se exhibe directamente en Linux en lugar de en Windows. Esta salida se puede procesar utilizando programas como sed, awk, sort, etc. Por ejemplo, si quisiéramos obtener una lista de servicios de Windows 10 ordenados por el nombre del servicio, podríamos usar el siguiente comando:
sc.exe query | grep SERVICE_NAME | awk ‘{print $1=»»; print $0}’ | sort -bf| sed ‘/^$/d’