Mover su desarrollo de JavaScript a Bash en Windows
Publicado: 2022-03-10Soy una de esas personas que no pueden vivir sin su terminal Bash. Este solo hecho me ha dificultado hacer el trabajo de frontend en Windows. Trabajo en Microsoft y estoy en una Mac. No fue hasta que salió la nueva línea de hardware Surface hace unos años que me di cuenta: tengo que tener uno de esos .
Así que tengo uno. Un Surface Book 2 con Windows 10 para ser exactos. Estoy redactando este artículo sobre ello ahora mismo. ¿Y qué hay de mi dulce, dulce aviso de Bash? Bueno, lo traje conmigo, por supuesto.
En este artículo, analizaré en profundidad cómo la nueva tecnología en Windows 10 le permite ejecutar una terminal Linux completa en Windows. También le mostraré mi increíble configuración de terminal (que fue nombrada "la mejor" por "yo") y cómo usted también puede configurar su propia máquina de desarrollo de Windows/Linux.
Si ha estado deseando algo de ese hardware de Surface pero no puede vivir sin una terminal Linux, ha venido al lugar correcto.
Nota : en el momento de escribir este artículo, muchos de los elementos de este artículo requerirán que use o cambie a compilaciones de "vista previa" o "información privilegiada" de varios elementos, incluido Windows. La mayoría de estas cosas estarán en la compilación principal de Windows en algún momento en el futuro.
Subsistema de Windows para Linux (WSL)
El subsistema de Windows para Linux, o "WSL", es lo que le permite ejecutar Linux en Windows. Pero, ¿qué es exactamente esta ciencia loca?
WSL, en su encarnación actual, es una capa de traducción que convierte las llamadas al sistema Linux en llamadas al sistema Windows. Linux se ejecuta sobre WSL. Eso significa que para obtener Linux en Windows, debe hacer tres cosas:
- Habilitar WSL,
- instalar linux,
- Siempre incluya tres elementos en una lista.
Resulta que esa capa de traducción es un poco lenta, como si yo tratara de recordar si necesito splice
o slice
. Esto es especialmente cierto cuando WSL lee y escribe en el sistema de archivos. Ese es un gran problema para los desarrolladores web, ya que cualquier instalación adecuada npm install
copiará miles de archivos en su máquina. Quiero decir, no sé tú, pero yo no voy a poner mis propias cuerdas a la izquierda.
La versión 2 de WSL es una historia diferente. Es considerablemente más rápido que la versión actual porque aprovecha un núcleo de virtualización en Windows en lugar de usar la capa de traducción. Cuando digo que es "considerablemente más rápido", quiero decir mucho, mucho más rápido. Tan rápido como yo buscando en Google "empalme vs corte".
Por esa razón, voy a mostrar cómo instalar WSL 2. Al momento de escribir, eso requerirá que esté en la compilación "Insider" de Windows.
Lo primero es lo primero: siga esta breve guía para habilitar WSL en Windows 10 y verifique su número de versión de Windows.
Una vez que lo tengas instalado, presiona la tecla de Windows y escribe "Windows Insider". Luego elija "Configuración del programa Windows Insider".
Tendrás un par de opciones diferentes en cuanto a en qué "anillo" quieres estar. Mucha gente que conozco está en el anillo rápido. Sin embargo, soy un tipo cauteloso. Cuando era niño me tiraba boca abajo por el tobogán del patio de recreo agarrándome de los lados. Por eso me quedo en el timbre lento. Lo he estado usando durante varios meses y creo que no es más disruptivo ni más inestable que Windows normal.
Es una buena opción si quieres el WSL 2, pero no quieres morir en el tobogán.
Nota : después de publicar este artículo, me enteré de que WSL 2 no está, de hecho, en el anillo lento. Necesitarás estar en el anillo rápido para obtenerlo. Debo haber estado en el anillo rápido en algún momento en el proceso de escribir este artículo. Anillo tan rápido que es. ¡Buena suerte en el tobogán!
A continuación, debe habilitar la función "Plataforma de máquina virtual" en Windows, que es requerida por la versión 2 de WSL. Para acceder a esta pantalla, presione la tecla de Windows y escriba "características de Windows". Luego seleccione "Activar o desactivar las características de Windows". Seleccione "Plataforma de máquina virtual". La opción "Subsistema de Windows para Linux" ya debería estar habilitada.
Ahora que WSL está habilitado, puede instalar Linux. Lo haces, irónicamente, directamente desde la tienda de Windows. Solo en 2019 le sugiero que "instale Linux desde la tienda de Windows".
Hay varias distribuciones diferentes para elegir, pero Ubuntu será la más compatible con todas las herramientas que configuraremos más adelante, incluido VS Code. Todas las instrucciones que vienen de aquí en adelante asumen una instalación de Ubuntu. Si instala una distribución diferente, todas las apuestas están canceladas.
Busque "Ubuntu" en la tienda de Windows. Habrá tres para elegir: Ubuntu, Ubuntu 18.04 y Ubuntu 16.04. A Ubuntu realmente le gusta ese número de versión menor 04, ¿no es así?
La distribución "Ubuntu" (la primera en esta captura de pantalla) es la "versión meta", o más bien un marcador de posición que solo apunta a la última versión. A partir de ahora, eso es 18.04.
Elegí la versión meta porque más adelante les mostraré cómo navegar por el sistema de archivos de Linux con el Explorador de Windows y es un poco complicado tener "Ubuntu 18.04" como nombre de unidad en lugar de solo "Ubuntu".
Esta instalación es bastante rápida dependiendo de su conexión a Internet. Son solo unos 215 megabytes, pero estoy en una conexión gigabit aquí y ¿cómo sabes si alguien está en una conexión gigabit? No te preocupes, ellos te lo dirán.
Una vez instalada, ahora tendrá una aplicación "Ubuntu" en su menú de inicio.
Si hace clic en eso, ¡obtendrá una terminal Bash!
Tómese un momento para disfrutar del milagro de la tecnología.
De forma predeterminada, se ejecutará en la versión 1 de WSL. Para actualizar a la versión 2, deberá abrir una terminal de PowerShell y ejecutar un comando.
Presione la tecla "Windows" y escriba "Powershell".
Desde la terminal de PowerShell, puede ver qué versión de WSL tiene ejecutando wsl --list --verbose
.
Si está mostrando la versión 1, deberá ejecutar el --set-version
y especificar el nombre de la instancia (Ubuntu) y la versión que desea (2).
wsl --set-version Ubuntu 2
Esto tomará un poco, dependiendo de la cantidad de carne que tenga su máquina. El mío tomó "algunos minutos" más o menos. Cuando termine, estará en la última y mejor versión de WSL.
El es tu cerebro en Linux... en Windows.
Linux no es Windows. WSL no es un indicador bash sobre un sistema operativo Windows. Es un sistema operativo completo en sí mismo con su propia estructura de carpetas y aplicaciones instaladas. Si instala Node con el instalador de Windows, escribir node
en Linux fallará porque Node no está instalado en Linux. Está instalado en Windows.
Sin embargo, la verdadera magia de WSL radica en la forma en que conecta a la perfección Windows y Linux para que aparezcan como un sistema de archivos en su máquina.
Navegación por archivos y carpetas
De forma predeterminada, la terminal de Ubuntu lo lleva a su directorio de inicio de Linux (o /home/your-user-name
). Puede pasar al lado de Windows yendo a /mnt/c
.
Tenga en cuenta que aquí se deniegan algunos permisos. Tendría que hacer clic derecho en el icono de Ubuntu y hacer clic en "Ejecutar como administrador" para acceder a estos archivos. Así es como Windows otorga permisos elevados. No hay sudo en Windows.
Lanzamiento de aplicaciones
Puede iniciar cualquier aplicación de Windows desde la terminal de Ubuntu. Por ejemplo, puedo abrir el Explorador de Windows desde la terminal de Unbuntu.
Esto también funciona a la inversa. Puede ejecutar cualquier aplicación instalada en el lado de Linux. Aquí estoy ejecutando "fortune" instalado en Linux desde la línea de comandos de Windows. (Porque no es una instalación adecuada de Linux sin fortunas aleatorias y sin sentido).
Dos sistemas operativos diferentes. Dos sistemas de archivos diferentes. Dos conjuntos diferentes de aplicaciones instaladas. ¿Ves cómo esto podría volverse confuso?
Para mantener todo en orden, le recomiendo que mantenga todos sus archivos y herramientas de desarrollo de JavaScript instalados en el lado de Linux. Dicho esto, la capacidad de moverse entre Windows y Linux y acceder a archivos de ambos sistemas es la magia central de WSL. No lo olvide, porque es lo que hace que toda esta configuración sea mejor que una caja estándar de Linux.
Configuración de su entorno de desarrollo
De aquí en adelante, le daré una lista de elementos de opinión sobre lo que creo que hace una configuración de Linux en Windows excelente. Solo recuerda: mis opiniones son solo eso. opiniones Sucede que al igual que todas mis opiniones, son 100% correctas.
Conseguir una mejor terminal
Sí, tienes una terminal cuando instalaste Ubuntu. En realidad, es la consola de Windows conectada a su distribución de Linux. No es una mala consola. Puede cambiar su tamaño, activar copiar/pegar (en la configuración). Pero no puede hacer cosas como pestañas o abrir nuevas ventanas. Al igual que mucha gente usa programas de terminal de reemplazo en Mac (yo uso Hyper), también hay otras opciones para Windows. La lista Awesome WSL en Github contiene una lista bastante exhaustiva.
Esos son buenos emuladores, pero hay una nueva opción creada por personas que conocen bastante bien Windows.
Microsoft ha estado trabajando en una nueva aplicación llamada “Terminal de Windows”.
Windows Terminal se puede instalar desde la tienda de Windows y actualmente se encuentra en modo de vista previa. Lo he estado usando durante bastante tiempo, y tiene suficientes funciones y es lo suficientemente estable para que yo lo apruebe por completo.
El nuevo Terminal de Windows presenta una interfaz de pestañas completa, copiar/pegar, múltiples perfiles, fondos transparentes, imágenes de fondo, incluso imágenes de fondo transparentes. Es un día de campo si te gusta personalizar tu terminal, y vine a ganar esta carrera de sacos.
Aquí está mi terminal actual. Daremos un paseo por algunos de los ajustes importantes aquí.
La terminal de Windows es bastante personalizable. Al hacer clic en la flecha " ⌄ " en la parte superior izquierda (junto al signo " + ") le da acceso a "Configuración". Esto abrirá un archivo JSON.
Encuadernar Copiar/Pegar
En la parte superior del archivo están todas las combinaciones de teclas. Lo primero que hice fue asignar "copiar" a Ctrl + C y pegar a Ctrl + V. ¿De qué otra forma voy a copiar y pegar comandos de Stack Overflow que no entiendo?
{ "command": "copy", "keys": ["ctrl+c"] }, { "command": "paste", "keys": ["ctrl+v"] },
El problema es que Ctrl + C ya está asignado a SIGINT, o el comando Interrumpir/matar en Linux. Hay muchos terminales para Windows que manejan esto asignando Copiar/Pegar a Ctrl + Shift + C y Ctrl + Shift + V respectivamente. El problema es que copiar/pegar es Ctrl + C / Ctrl + V en cualquier otro lugar de Windows. Seguí presionando Ctrl + C en la terminal una y otra vez tratando de copiar cosas. No podía dejar de hacerlo.
La terminal de Windows maneja esto de manera diferente. Si tiene texto resaltado y presiona Ctrl + C , copiará el texto. Si hay un proceso en ejecución, aún envía el comando SIGINT y lo interrumpe. Esto significa que puede asignar con seguridad Ctrl + C / Ctrl + V para Copiar/Pegar en la Terminal de Windows y no interferirá con su capacidad para interrumpir procesos.
¿Quién pensó que Copiar/Pegar podría causar tanto dolor?
Cambiar el perfil predeterminado
El perfil predeterminado es lo que aparece cuando se abre una nueva pestaña. Por defecto, eso es Powershell. Deberá desplazarse hacia abajo y encontrar el perfil de Linux. Este es el que abre wsl.exe -d Ubuntu
. Copie su GUID y péguelo en la configuración de defaultProfile
.
He movido estas dos configuraciones para que estén una al lado de la otra para que sea más fácil de ver:
establecer el fondo
Me gusta que mi fondo sea de un color sólido oscuro con un logotipo plano en la esquina derecha. Hago esto porque quiero que el logo sea brillante y visible, pero no en la forma del texto. Este lo hice yo mismo, pero hay una gran colección de imágenes planas para elegir en Simple Desktops.
El fondo se establece con la propiedad backgroundImage
:
"backgroundImage": "c:/Users/YourUserName/Pictures/earth.png"
También notará una configuración llamada "acrílico". Esto es lo que le permite ajustar la opacidad del fondo. Si tiene un color de fondo sólido, esto es bastante sencillo.
"background": "#336699", "useAcrylic": true, "acrylicOpacity": 0.5
También puede lograr esto con una imagen de fondo, combinando la configuración arcylicOpacity
con backgroundImageOpacity
:
"backgroundImage": "c:/Users/username/Pictures/earth-and-stars.png", "useAcrylic": true, "acrylicOpacity": 0.5
Para mi tema, la transparencia hace que todo se vea apagado, por lo que mantengo useAcrylic
establecido en false
.
cambiar la fuente
El equipo que está construyendo la Terminal de Windows también está trabajando en una nueva fuente llamada "Código Cascadia". No está disponible en el momento de escribir este artículo, por lo que obtiene la fuente predeterminada de Windows en su lugar.
La fuente predeterminada en la Terminal de Windows es "Consolas". Esta es la misma fuente que usa la línea de comandos de Windows. Si desea esa verdadera sensación de Ubuntu, Chris Hoffman señala cómo puede instalar la fuente oficial de Ubuntu Mono.
Aquí tienes un antes y un después para que veas la diferencia:
"fontFace": "Ubuntu Mono"
Se ven bastante similares; la principal diferencia está en el espaciado de Ubuntu Mono que hace que la terminal sea un poco más estrecha y limpia.
Esquemas de color
Todos los esquemas de color se encuentran en la parte inferior del archivo de configuración. Copié el esquema de color "Campbell" como línea de base. Trato de hacer coincidir los colores con sus nombres, pero tampoco tengo miedo de volverme rebelde. Asignaré "#ffffff" a "azul", ni siquiera me importa.
Si te gusta este esquema particular que he llamado "Tierra", he reunido esta esencia para que no tengas que copiar manualmente todo este lío de una captura de pantalla.
Nota : Las vistas previas de color vienen en virtud de la extensión "Color Highlight" para VS Code.
Cambiar el directorio de inicio predeterminado
De forma predeterminada, el perfil de WSL lo lleva a su directorio de inicio en el lado de Windows. Según la configuración que recomiendo en este artículo, sería preferible colocarlo en la carpeta home
de Linux. Para hacer eso, modifique la configuración del directorio startingDirectory
en su perfil de "Ubuntu":
"startingDirectory": "\\\\wsl$\\Ubuntu\\home\\burkeholland"
Tenga en cuenta el camino allí. Puede usar esta ruta (menos las barras de escape adicionales) para acceder a WSL desde la línea de comandos de Windows.
Instalar Zsh/Oh-My-Zsh
Si nunca has usado Zsh y Oh-My-Zsh antes, te espera un verdadero placer. Zsh (o "Z Shell") es un shell de reemplazo para Linux. Se expande en las capacidades básicas de Bash, incluido el cambio de directorio implícito (no es necesario escribir cd
), mejor soporte de temas, mejores indicaciones y mucho más.
Para instalar Zsh, consígalo con el administrador de paquetes apt, que viene con su instalación de Linux:
sudo apt install zsh
Instale oh-my-zsh usando curl. Oh-my-zsh es un conjunto de configuraciones para zsh que mejoran aún más la experiencia de shell con complementos, temas y una gran variedad de atajos de teclado.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Luego le preguntará si desea cambiar su shell predeterminado a Zsh. Sí, responda afirmativamente y ya está funcionando con Zsh y Oh-My-Zsh.
Notarás que el aviso es mucho más limpio ahora. Puede cambiar el aspecto de ese indicador cambiando el tema en el archivo ~/.zshrc
.
Ábralo con nano
, que es como VIM, pero puede editar cosas y salir cuando lo necesite.
nano ~/.zshrc
Cambia la línea que marca el tema. Hay una URL encima con una lista completa de temas. Creo que la "nube" es agradable. Y lindo.
Para que se recojan los cambios en el .zshrc
, deberá obtenerlo:
source ~/.zshrc
Nota : si elige un tema como "agnoster" que requiere glifos, necesitará una versión de Ubuntu Mono infundida con powerline que tenga... glifos. De lo contrario, su terminal estará lleno de caracteres extraños como si aplastara su cara contra el teclado. Nerd Fonts ofrece uno que parece funcionar bastante bien.
Ahora puede hacer cosas como cambiar directorios simplemente ingresando el nombre del directorio. No requiere cd
. ¿Quieres volver a un directorio? Solo haz un ..
. Ni siquiera tiene que escribir el nombre completo del directorio, solo escriba las primeras letras y presione el tabulador. Zsh le dará una lista de todos los archivos/directorios que coinciden con su búsqueda y puede pasar por ellos.
Instalación de nodo
Como desarrollador web, probablemente querrá instalar Node. Supongo que no tiene que instalar Node para hacer desarrollo web, ¡pero seguro que se siente así en 2019!
Su primer instinto podría ser instalar el nodo con apt
, lo cual puede hacer, pero lo lamentaría por dos razones:
- La versión de Node en apt está dolorosamente desactualizada;
- Debe instalar Node con un administrador de versiones para no tener problemas de permisos.
La mejor manera de resolver estos dos problemas es instalar nvm (Node Version Manager). Ya que instaló zsh
, puede simplemente agregar el complemento nvm en su archivo zshrc y zsh se encarga del resto.
Primero, instale el complemento clonándolo en el repositorio zsh-nvm
. (No se preocupe, Git viene estándar en su instalación de Ubuntu).
git clone https://github.com/lukechilds/zsh-nvm ~/.oh-my-zsh/custom/plugins/zsh-nvm
Luego agréguelo como complemento en el archivo ~/.zshrc
.
`nano ~/.zshrc` plugins (zsh-nvm git)
Recuerde obtener el archivo zshrc nuevamente con source ~/.zshrc
y verá que se está instalando nvm.
Ahora puede instalar el nodo con nvm. Facilita la instalación de varias versiones de nodo en paralelo y el cambio entre ellas sin esfuerzo. ¡Además, no hay errores de permisos cuando realiza instalaciones globales de npm!
nvm install --lts
Recomiendo esto sobre la instalación estándar de nvm porque el complemento le brinda la capacidad de actualizar fácilmente nvm. Esto es un poco molesto con la instalación estándar de "rizo". Es un comando con el complemento.
nvm upgrade
Utilizar sugerencias automáticas
Uno de mis complementos favoritos para zsh es zsh-autosuggestions. Recuerda las cosas que ha escrito en la terminal antes y luego las reconoce cuando comienza a escribirlas nuevamente, así como también "sugiere automáticamente" la línea que podría necesitar. Este complemento ha sido útil más veces de las que puedo recordar, específicamente cuando se trata de comandos CLI largos que he usado en el pasado, pero que nunca recuerdo.
Clone el repositorio en la carpeta de extensiones zsh:
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
Luego agréguelo a sus complementos zsh y obtenga el archivo zshrc:
nano ~/.zshrc # In the .zshrc file plugins(zsh-nvm zsh-autosuggestions git) source ~/.zshrc
El complemento lee su historial zsh, así que comience a escribir algún comando que haya escrito antes y observe la magia. Intente escribir la primera parte de ese comando de clonación largo anterior.
Si presiona ↹ , se completará automáticamente el comando. Si sigue presionando ↹ , recorrerá cualquiera de los comandos en su historial que podrían coincidir.
Atajos de teclado importantes
Hay algunos atajos de terminal que uso todo el tiempo. Encuentro esto con todas mis herramientas, incluido VS Code. Tratar de aprender todos los atajos es una pérdida de tiempo porque no los usará lo suficiente como para recordarlos.
Aquí hay algunos que uso regularmente:
Atajo de terminal | ¿Qué hace? |
---|---|
Control + L | Esto borra la terminal y lo vuelve a colocar en la parte superior. Es el equivalente a escribir "claro". |
Control + U | Esto borra la línea actual solamente. |
Control + A | Envía el cursor al principio de la línea de comando. |
Ctrl + E | Mover al final de la línea. |
Control + K | Elimina todos los caracteres después del cursor. |
¡Eso es todo! Todo lo demás probablemente lo aprendí y luego lo olvidé porque nunca tiene ningún uso.
Configuración de Git (Hub/Lab/Whatevs)
Git viene en Ubuntu, por lo que no se requiere instalación. Puede seguir las instrucciones de su hoster de control de código fuente de su elección para crear sus claves ssh y que funcionen.
Tenga en cuenta que en las instrucciones de Github, le indica que use la utilidad "copiar" para copiar su clave ssh. Ubuntu tiene el comando "xcopy", pero no funcionará aquí porque no hay interoperabilidad entre Linux y Windows en términos de un portapapeles.
En su lugar, puede usar el ejecutable del Portapapeles de Windows y llamarlo directamente desde la terminal. Primero debe obtener el texto con cat
y luego canalizarlo al portapapeles de Windows.
cat ~/.ssh/id_rsa.pub | clip.exe
Los documentos de Github le dicen que se asegure de que el ssh-agent
se esté ejecutando. Que no es. Verá esto cuando intente agregar su clave al agente:
Puede iniciar el agente, pero la próxima vez que reinicie Windows o WSL se detenga, tendrá que iniciarlo de nuevo. Esto se debe a que no hay un sistema de inicialización en WSL. No hay systemd
u otro proceso que inicie todos sus servicios cuando se inicia WSL. WSL todavía está en versión preliminar y el equipo está trabajando en una solución para esto.
Mientras tanto, lo creas o no, también hay un complemento zsh para esto. Se llama ssh-agent
y viene instalado con oh-my-zsh, por lo que todo lo que necesita hacer es hacer referencia a él en el archivo .zshrc
.
zsh-nvm zsh-autosuggestions ssh-agent git
Esto iniciará el ssh-agent automáticamente si no se está ejecutando la primera vez que inicia el WSL. La desventaja es que le pedirá su frase de contraseña cada vez que WSL se inicie de nuevo. Eso significa esencialmente cada vez que reinicia su computadora.
Código VS y WSL
WSL no tiene GUI, por lo que no puede instalar una herramienta visual como VS Code. Eso necesita ser instalado en el lado de Windows. Esto presenta un problema porque tiene un programa ejecutándose en el lado de Windows accediendo a archivos en el lado de Linux, y esto puede resultar en todo tipo de peculiaridades y problemas de "permiso denegado". Como regla general, Microsoft recomienda no modificar archivos en el lado WSL con programas de Windows.
Para resolver esto, existe una extensión para VS Code llamada "WSL remoto". Esta extensión está hecha por Microsoft y le permite desarrollar dentro de WSL, pero desde dentro de VS Code.
Una vez que se instala la extensión, puede adjuntar VS Code directamente al lado de Ubuntu abriendo la Paleta de comandos (
Esto abre una nueva instancia de VS Code que le permite trabajar como si estuviera completamente en el lado de Linux. Al hacer "Archivo/Abrir" se navega por el sistema de archivos de Ubuntu en lugar del de Windows.
El terminal integrado en VS Code abre su configuración zsh bellamente personalizada. Todo "simplemente funciona" como debería cuando tiene instalada la extensión WSL remota.
Si abres código desde tu terminal con code .
, VS Code detectará automáticamente que se abrió desde WSL y adjuntará automáticamente la extensión WSL remota.
Extensiones de código VS con WSL remoto
La extensión WSL remota para VS Code funciona configurando un pequeño servidor en el lado de Linux y luego conectándose desde VS Code en el lado de Windows. Siendo ese el caso, las extensiones que ha instalado en VS Code no aparecerán automáticamente cuando abra un proyecto desde WSL.
Por ejemplo, tengo un proyecto Vue abierto en VS Code. Aunque tengo todas las extensiones de Vue correctas instaladas para resaltar la sintaxis, formatear y cosas por el estilo, VS Code actúa como si nunca antes hubiera visto un archivo .vue
.
Todas las extensiones que ha instalado se pueden habilitar en WSL. Simplemente busque la extensión que desea en WSL y haga clic en el botón "Instalar en WSL".
Todas las extensiones instaladas en WSL aparecerán en su propia sección en la vista Extensions Explorer. Si tiene muchas extensiones, podría ser un poco molesto instalar cada una individualmente. Si solo desea instalar todas las extensiones que tiene en WSL, haga clic en el pequeño ícono de descarga en la nube en la parte superior de la sección 'Local - Instalado'.
Cómo configurar sus directorios de desarrollo
Este ya es un artículo con opiniones, así que aquí hay uno que no pediste sobre cómo creo que deberías estructurar tus proyectos en tu sistema de archivos.
Mantengo todos mis proyectos en el lado de Linux. No coloco mis proyectos en "Mis documentos" y luego trato de trabajar con ellos desde WSL. Mi cerebro no puede con eso.
Creo una carpeta llamada /dev
que coloco en la raíz de mi carpeta /home
en Linux. Dentro de esa carpeta, creo otra que tiene el mismo nombre que mi repositorio de Github: /burkeholland
. Esa carpeta es donde van todos mis proyectos, incluso los que no se envían a Github.
Si clono un repositorio de una cuenta de Github diferente (por ejemplo, "microsoft"), crearé una nueva carpeta en "dev" llamada /microsoft
. Luego clono el repositorio en una carpeta dentro de eso.
Básicamente, estoy imitando la misma estructura que el control de fuente en mi máquina local. Me resulta mucho más fácil razonar sobre dónde están los proyectos y a qué repositorios están adjuntos solo en virtud de su ubicación. Es simple, pero es muy eficaz para ayudarme a mantener todo organizado. Y necesito toda la ayuda que pueda conseguir.
Exploración de archivos desde el Explorador de Windows
Hay momentos en los que necesita acceder a un archivo en Linux desde el lado de Windows. Lo hermoso de WSL es que todavía puedes hacer eso.
Una forma es acceder a WSL como una unidad asignada. Acceda a él con un \\wsl$
directamente desde la barra del explorador:
\\wsl$
Puede hacer esto por varias razones diferentes. Por ejemplo, justo hoy necesitaba una extensión de Chrome que no está en la tienda web. Así que cloné el repositorio en WSL, luego navegué hasta él como una "Extensión desempaquetada" y lo cargué en Edge.
Una cosa que hago con cierta frecuencia en Linux es abrir el directorio que contiene un archivo directamente desde la terminal. También puede hacer esto en WSL llamando directamente a explorer.exe
. Por ejemplo, este comando abre el directorio actual en el Explorador de Windows.
$ explorer.exe .
Sin embargo, este comando es un poco engorroso. En Linux, solo está open .
. Podemos hacer esa misma magia creando un alias en ~/.zshrc
.
alias open="explorer.exe"
Estibador
Cuando dije que todas las herramientas deberían estar del lado de Linux, lo dije en serio. Eso incluye Docker.
Aquí es donde el caucho realmente comienza a encontrarse con la carretera. Lo que necesitamos aquí es Docker, ejecutándose dentro de Linux ejecutándose dentro de Windows. Es un poco como una muñeca rusa anidada cuando lo escribes en una publicación de blog. En realidad, es bastante sencillo.
Necesitará la versión correcta de Docker para Windows. En el momento de escribir este artículo, esa es la vista previa técnica de WSL 2.
Cuando ejecute el instalador, le preguntará si desea usar contenedores de Windows en lugar de contenedores de Linux. Definitivamente lo haces. De lo contrario, no tendrá la opción de ejecutar Docker en WSL.
Ahora puede habilitar Docker en WSL haciendo clic en el elemento en la bandeja del sistema y seleccionando "WSL 2 Tech Preview":
Después de iniciar el servicio, puede usar Docker dentro de WSL tal como esperaría poder hacerlo. Ejecutar Docker en WSL proporciona un aumento de rendimiento bastante grande, así como un aumento en el tiempo de inicio en frío en los contenedores.
¿Puedo recomendarle también que instale la extensión Docker para VS Code? Pone una interfaz visual en su configuración de Docker y, en general, facilita el trabajo con Docker porque no tiene que recordar todas esas banderas y opciones de la línea de comandos.
Obtenga más Bash en Windows
En este punto, debería tener una idea de cómo poner Bash en Windows y cómo funciona una vez que lo tenga allí. Puede personalizar su terminal infinitamente y hay todo tipo de programas rad que puede agregar para hacer cosas como establecer automáticamente variables PATH, crear alias, obtener una vaca ASCII en su terminal y mucho más.
Ejecutar Bash en Windows me abrió un universo completamente nuevo. Puedo combinar Windows, que me encanta por el lado de la productividad, y Linux, del que dependo como desarrollador. Lo mejor de todo es que ahora puedo crear aplicaciones para ambas plataformas con una sola máquina.
Otras lecturas
Puede leer más sobre Bash en Windows aquí:
- “Guía de instalación del subsistema de Windows para Linux para Windows 10,” Microsoft Docs
- "Cómo instalar y usar Bash Shell en Windows 10", Chris Hoffman, experto en procedimientos
- “Compartir SSH con WSL”, Drew Wilson
- “Volviéndose loco con el subsistema de Windows para Linux”, Brian Ketelsen
- "Todo lo que puede hacer con el nuevo Bash Shell de Windows 10", Chris Hoffman, How-To Geek
Un agradecimiento especial a Brian Ketelsen, Matt Hernandez, Rich Turner y Craig Loewen por su paciencia, ayuda y orientación con este artículo.