Saltar al contenido

¿Cómo llamar a los comandos de Linux a través de WSL en la línea de comandos de Windows?

Si hallas algún problema en tu código o proyecto, recuerda probar siempre en un ambiente de testing antes añadir el código al trabajo final.

Solución:

Aparentemente, esta fue la función más solicitada para WSL y Microsoft ahora admite esta función. Para usar los comandos de Linux desde el símbolo del sistema (o PowerShell), simplemente prefix el mando con wsl. Entonces, por ejemplo, así es como se ejecuta ls de CMD.

C:temp> wsl ls
<- contents of C:temp ->

O así es como actualiza las listas de paquetes.

C:temp> wsl sudo apt-get update
[sudo] password for username:
Hit:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB]

Se pueden encontrar más detalles en los documentos oficiales. No estoy seguro si está buscando una solución que no implique ningún tipo de prefijo. Si ese es el caso, no conozco ninguna solución todavía.

Sin embargo, Microsoft no admite directamente lo que está solicitando …

  • Puede crear un “Alias ​​de consola” usando doskey.exe, pero estos alias de consola no son persistentes (cuando abre una nueva ventana del símbolo del sistema, desaparecen).
  • CMD /? nos informa de los dos siguientes Registro keys: HKey_Local_MachineSoftwareMicrosoftCommand ProcessorAutoRun y HKey_Current_UserSoftwareMicrosoftCommand ProcessorAutoRunque (siempre y cuando /D no se especificó la opción) se verificará el contenido para ejecutar (en ese orden) cuando se abra una nueva ventana del símbolo del sistema.

Si juntamos estas dos cosas con un FOR bucle, y un archivo agradable y fácilmente personalizable en su carpeta de usuario, podemos obtener una aproximación bastante cercana de lo que creo que desea.
Voy a poner esto en HKLM y hacer referencia a un archivo en %USERPROFILE%llamado exportlinuxcommands, para que esté disponible para todos los usuarios, pero fácilmente personalizable por usuario, y solo funcional para los usuarios que lo configuran. Si solo lo quiere para un usuario, o no quiere que sea personalizable por usuario, tendrá que modificar un poco las instrucciones.

  1. Abra el Editor del Registro
  2. Ir a HKey_Local_MachineSoftwareMicrosoftCommand Processor
  3. Haga clic con el botón derecho en una parte vacía de la ventana y elija “Nuevo” > “Valor de cadena” (o “Valor de cadena expandible”, pero las expansiones parecen un poco inútiles cuando se da cuenta de que el Procesador de comandos las expandirá después de leer el valor de todos modos.)
  4. Nómbralo “AutoRun” (sin las comillas)
  5. Haga doble clic en el nuevo valor que acaba de crear
  6. Ingresar IF EXIST %USERPROFILE%exportlinuxcommands FOR /F %i in (%USERPROFILE%exportlinuxcommands) DO @doskey %i=bash -c "%i $*" como los “datos de valor”.

Ahora solo necesitas hacer un archivo en tu %USERPROFILE% carpeta (es decir C:UsersYourUserName) llamado exportlinuxcommands, con cada comando de Linux para el que desea un alias en una línea separada. Por ejemplo:

ls
rm
cat

¿Quieres eliminar uno? Elimínelo del archivo y no estará allí en la próxima ventana del símbolo del sistema que abra.
¿Quieres añadir otro más tarde? Simplemente agréguelo al archivo en su propia línea, y la próxima vez que abra una ventana del símbolo del sistema, estará allí.

Si te apasiona este mundo, tienes la libertad de dejar una crónica acerca de qué le añadirías a este post.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *