Tutorial de Consola Bash de Ubuntu en Windows (WSL)
usar VS Code con la extensión WSL, que es un flujo de trabajo completamente diferente a lo que hablamos antes.
El tutorial que compartes muestra exactamente esto:
🔍 Lo que hace el tutorial
Instala la extensión WSL en VS Code (la del pingüinito de Linux)
Abre VS Code desde WSL usando el botón "Remote Explorer" y seleccionando Ubuntu
Crea un espacio de trabajo dentro de WSL (no en Windows)
Vuelve a instalar las extensiones (como Python) dentro del entorno WSL
Ejecuta código Python usando el intérprete de Linux
------------------
Usando el Explorador de Archivos de Windows (El más fácil): WSL expone sus archivos a través de una ruta de red especial.
Abre el Explorador de Archivos en Windows.
En la barra de direcciones, escribe \\wsl$ y presiona Enter.
Verás una carpeta por cada distribución de Linux que tengas instalada (por ejemplo, Ubuntu). Haz doble clic para entrar.
Dentro, podrás navegar por todo el sistema de archivos de WSL. Ahora, puedes copiar y pegar archivos desde cualquier otra carpeta de Windows directamente en esta ventana, como si fuera una carpeta más de tu PC.
Usando el Explorador de Archivos de Windows (El más fácil): WSL expone sus archivos a través de una ruta de red especial.
Abre el Explorador de Archivos en Windows.
En la barra de direcciones, escribe
\\wsl$y presiona Enter.Verás una carpeta por cada distribución de Linux que tengas instalada (por ejemplo,
Ubuntu). Haz doble clic para entrar.Dentro, podrás navegar por todo el sistema de archivos de WSL. Ahora, puedes copiar y pegar archivos desde cualquier otra carpeta de Windows directamente en esta ventana, como si fuera una carpeta más de tu PC.
Aprende a usar la terminal de Linux (Ubuntu) directamente desde Windows, sin máquinas virtuales ni arranque dual. Con WSL (Windows Subsystem for Linux) tienes un entorno Bash nativo y potente.
📌 Índice
¿Qué es WSL?
Instalación de WSL y Ubuntu
Primeros pasos con la terminal
Comandos básicos de navegación
Gestión de archivos y directorios
Trabajar con texto y archivos
Permisos y propietarios
Procesos y gestión del sistema
Redes y conectividad
Personalización de la terminal
Integración con Windows
Consejos y trucos útiles
Recursos adicionales
¿Qué es WSL?
WSL (Windows Subsystem for Linux) es una capa de compatibilidad que permite ejecutar binarios de Linux (ELF) de forma nativa en Windows 10 y 11. No es una máquina virtual, sino un entorno que traduce llamadas al sistema de Linux a llamadas del kernel de Windows.
Con WSL 2 (la versión recomendada) obtienes:
Un kernel de Linux real.
Mejor rendimiento en E/S.
Compatibilidad total con Docker, Kubernetes, etc.
Al instalar Ubuntu desde la Microsoft Store, tendrás una distribución completa con Bash, el intérprete de comandos por defecto.
Instalación de WSL y Ubuntu
Requisitos
Windows 10 versión 2004 o superior (Build 19041 o mayor), o Windows 11.
Virtualización habilitada en la BIOS/UEFI (generalmente ya lo está).
Pasos
Abrir PowerShell como Administrador (clic derecho → Ejecutar como administrador).
Instalar WSL con el comando:
wsl --installEste comando activa WSL, instala WSL 2 como predeterminado y descarga la distribución Ubuntu por defecto.
Reiniciar el equipo si se solicita.
Tras el reinicio, se abrirá automáticamente una terminal de Ubuntu para completar la instalación. Si no ocurre, busca "Ubuntu" en el menú Inicio y ábrelo.
Crear usuario y contraseña:
Te pedirá un nombre de usuario (p. ej.,
juan).Luego una contraseña (no se ve mientras escribes, es normal).
Esta cuenta es independiente de tu usuario de Windows y se usará para
sudo.
¡Listo! Ya tienes Bash funcionando.
Actualizar los paquetes
Siempre es buena práctica actualizar el sistema:
sudo apt update && sudo apt upgrade -yPrimeros pasos con la terminal
Al abrir la terminal, verás algo como:
juan@PC-DE-JUAN:~$juan→ tu usuario.PC-DE-JUAN→ nombre del equipo (el de Windows).~→ indica que estás en tu directorio home (/home/juan).$→ indica que eres usuario normal (si fuera#sería root).
Comandos básicos para empezar
| Comando | Descripción |
|---|---|
pwd | Muestra el directorio actual (Print Working Directory). |
whoami | Muestra el nombre del usuario actual. |
echo "Hola" | Imprime texto en la terminal. |
clear | Limpia la pantalla (o Ctrl+L). |
history | Muestra el historial de comandos. |
exit | Cierra la terminal. |
Prueba:
pwd
whoami
echo "Bienvenido a Bash"Comandos básicos de navegación
Estructura del sistema de archivos
/→ raíz del sistema./home/→ directorios de los usuarios./etc/→ archivos de configuración./var/→ datos variables (logs, etc.)./tmp/→ archivos temporales./mnt/→ punto de montaje para unidades de Windows (ej./mnt/c/).
Navegar entre directorios
| Comando | Descripción |
|---|---|
ls | Lista archivos y carpetas. |
ls -l | Lista con detalles (permisos, tamaño, fecha). |
ls -a | Muestra también archivos ocultos (empiezan con .). |
cd <dir> | Cambia al directorio <dir>. |
cd .. | Sube un nivel (directorio padre). |
cd ~ | Va a tu home. |
cd / | Va a la raíz. |
cd - | Vuelve al directorio anterior. |
Ejemplos:
ls -la # Lista detallada con ocultos
cd /etc # Ve a /etc
pwd # Muestra /etc
ls # Ver contenido
cd ~ # Vuelve al homeAutocompletado con TAB
Escribe las primeras letras de un archivo o comando y presiona TAB para autocompletar. Muy útil.
Gestión de archivos y directorios
Crear, copiar, mover y eliminar
| Comando | Descripción |
|---|---|
mkdir <nombre> | Crea un directorio. |
touch <archivo> | Crea un archivo vacío o actualiza su fecha. |
cp <origen> <destino> | Copia archivos o directorios (usar -r para recursivo). |
mv <origen> <destino> | Mueve o renombra. |
rm <archivo> | Elimina un archivo. |
rm -r <directorio> | Elimina un directorio y su contenido (con cuidado). |
rmdir <directorio> | Elimina un directorio vacío. |
Ejemplos:
mkdir proyecto
cd proyecto
touch README.md
cp README.md README_backup.md
mv README.md doc.txt
ls
rm doc.txt
cd ..
rm -r proyecto # ¡Cuidado! Borra todoVer contenido de archivos
| Comando | Descripción |
|---|---|
cat <archivo> | Muestra el contenido completo. |
less <archivo> | Visualiza página por página (presiona q para salir). |
head -n <N> <archivo> | Muestra las primeras N líneas. |
tail -n <N> <archivo> | Muestra las últimas N líneas. |
tail -f <archivo> | Sigue el archivo en tiempo real (logs). |
Trabajar con texto y archivos
Editores de texto en la terminal
Nano: sencillo e intuitivo. Usa
nano archivo.txt.Vim: potente pero con curva de aprendizaje. Usa
vim archivo.txt.Emacs: también disponible.
Recomiendo nano para empezar:
sudo apt install nano -y # (si no está instalado)
nano mi_nota.txtDentro de nano:
Escribe el texto.
Ctrl + O→ Guardar.Ctrl + X→ Salir.
Redirecciones y tuberías (pipes)
>redirige la salida a un archivo (sobrescribe).>>añade al final del archivo.|(pipe) envía la salida de un comando como entrada de otro.
Ejemplos:
echo "Hola" > saludo.txt
echo "Mundo" >> saludo.txt
cat saludo.txt
# Contar líneas de un archivo
cat saludo.txt | wc -l
# Buscar texto con grep
grep "Hola" saludo.txtComandos útiles para texto
| Comando | Descripción |
|---|---|
grep <patrón> <archivo> | Busca líneas que contengan el patrón. |
wc -l | Cuenta líneas. |
sort | Ordena líneas. |
uniq | Elimina líneas duplicadas (requiere estar ordenado). |
cut -d: -f1 | Extrae campos (ej. de archivos CSV). |
Permisos y propietarios
En Linux, cada archivo tiene permisos para usuario, grupo y otros. Los permisos son lectura (r), escritura (w) y ejecución (x).
Ver permisos con ls -l
-rwxr-xr-- 1 juan juan 1234 mar 10 12:00 script.shPrimer carácter:
-archivo,ddirectorio,lenlace.Los siguientes 9 caracteres: 3 para usuario, 3 para grupo, 3 para otros.
Cambiar permisos con chmod
Modo simbólico:
chmod u+x archivo(añade ejecución al usuario).Modo octal:
chmod 755 archivo(rwxr-xr-x).
Cambiar propietario con chown
sudo chown nuevo_usuario archivo
sudo chown nuevo_usuario:nuevo_grupo archivoEjemplo práctico:
touch script.sh
ls -l script.sh
chmod +x script.sh # Hace ejecutable
./script.sh # Ejecuta (si tiene contenido)Procesos y gestión del sistema
Visualizar procesos
| Comando | Descripción |
|---|---|
ps aux | Muestra todos los procesos en ejecución. |
ps -ef | Otra vista detallada. |
top | Monitor interactivo en tiempo real (presiona q para salir). |
htop | Mejorado y más colorido (instalar con sudo apt install htop). |
Matar procesos
kill <PID> # Termina el proceso con ese ID
kill -9 <PID> # Forza la terminación
pkill <nombre> # Mata por nombre (ej. pkill firefox)Información del sistema
uname -a # Información del kernel
df -h # Espacio en disco (en formato humano)
free -h # Memoria RAM y swap
uptime # Tiempo encendido y cargaEjecutar comandos como superusuario (sudo)
sudo apt install git # Instala git con privilegiosSe te pedirá la contraseña del usuario de Ubuntu (no la de Windows).
Redes y conectividad
Comandos de red básicos
| Comando | Descripción |
|---|---|
ping <host> | Envía paquetes ICMP a un host. |
curl <url> | Descarga contenido de una URL (muestra en stdout). |
wget <url> | Descarga archivo a disco. |
ip a | Muestra todas las interfaces de red (reemplaza a ifconfig). |
ss -tulpn | Muestra puertos en escucha (similar a netstat). |
nslookup dominio.com | Resuelve DNS. |
Conexión SSH (cliente)
ssh usuario@servidor.comSi necesitas un servidor SSH, instala openssh-server (sudo apt install openssh-server).
Acceder a recursos de Windows desde WSL
Las unidades de Windows están montadas en /mnt/:
ls /mnt/c/ # Unidad C:
ls /mnt/d/ # Unidad D: (si existe)
cd /mnt/c/Users/tu_usuario/DesktopPersonalización de la terminal
Cambiar el prompt (PS1)
El prompt se define con la variable PS1. Puedes modificarla en ~/.bashrc para hacerla permanente.
Ejemplo de prompt con color y ruta:
export PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "\uusuario,\hhostname,\wruta completa,\$muestra$o#según privilegios.
Alias
Crea atajos para comandos largos en ~/.bashrc:
alias ll='ls -la'
alias gs='git status'
alias ..='cd ..'Luego recarga con source ~/.bashrc.
Instalar temas y fuentes (Windows Terminal)
Si usas Windows Terminal (recomendado), puedes:
Cambiar el tema (oscuro/claro).
Usar fuentes como Cascadia Code con ligaduras.
Configurar la transparencia, fondo de pantalla, etc.
ZSH y Oh My Zsh (opcional)
Para una experiencia más avanzada, instala Zsh y Oh My Zsh:
sudo apt install zsh -y
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"Integración con Windows
Acceso a archivos de Windows desde WSL
Puedes manipular archivos de Windows sin problemas. Por ejemplo, editar un archivo en C:\Users\tu_usuario\Documents desde WSL:
nano /mnt/c/Users/tu_usuario/Documents/nota.txtAbrir aplicaciones de Windows desde WSL
Puedes lanzar programas de Windows desde la terminal de Bash:
explorer.exe . # Abre el directorio actual en el Explorador de Windows
notepad.exe archivo.txt # Abre el archivo en el Bloc de notas
code . # Abre Visual Studio Code en el directorio actual (si está instalado)Variables de entorno y rutas
WSL comparte algunas variables de entorno de Windows. Puedes acceder a la variable PATH de Windows con $PATH.
Intercambio de archivos entre entornos
Evita modificar archivos del sistema de Windows desde WSL con herramientas de Linux que no estén preparadas. Pero para documentos, fotos, etc., es seguro.
Consejos y trucos útiles
Atajos de teclado
Ctrl + C→ Interrumpe el comando actual.Ctrl + D→ Cierra la terminal (equivalente aexit).Ctrl + Z→ Suspende un proceso (luegofgpara reanudarlo).Ctrl + R→ Búsqueda inversa en el historial.TAB→ Autocompletado.Ctrl + L→ Limpia la pantalla (comoclear).
Historial de comandos
historymuestra todos los comandos ejecutados.!<número>repite el comando con ese número.!!repite el último comando.Ctrl + Ry escribe para buscar.
Ayuda en línea
man <comando>→ Muestra el manual del comando.comando --help→ Muestra una ayuda breve.
Variables de entorno
echo $HOME # Muestra el directorio home
export MI_VAR="valor" # Define una variable
echo $MI_VARComandos compuestos (&&, ||, ;)
cmd1 && cmd2→ ejecuta cmd2 solo si cmd1 tuvo éxito.cmd1 || cmd2→ ejecuta cmd2 solo si cmd1 falló.cmd1; cmd2→ ejecuta ambos, independientemente.
Redirección de errores
2>redirige la salida de error estándar.2>&1combina error con salida normal.
Ejemplo:
ls /archivo_inexistente 2> error.logScripts Bash
Crea un archivo con extensión .sh:
#!/bin/bash
# Mi primer script
echo "Hola, mundo"Hazlo ejecutable (chmod +x) y ejecuta con ./script.sh.
Recursos adicionales
Guía de comandos de Linux (tldr) – versión simplificada del manual.
ExplainShell – desglosa cualquier comando.
Conclusión
Ahora tienes una herramienta poderosa: Bash en Windows. Puedes desarrollar, administrar servidores, automatizar tareas y mucho más, todo desde tu sistema operativo habitual.
Practica los comandos, experimenta y no temas romper nada (WSL es fácil de reinstalar). La terminal es tu aliada, y con este tutorial tienes una base sólida para seguir explorando.
¡Feliz coding
*********************************
WSL está diseñado para que compartir archivos entre Windows y Linux sea muy sencillo. La integración es tan directa que puedes ver y manipular los archivos de un sistema directamente desde el otro.
Aquí te explico cómo hacerlo en ambos sentidos.
📂 Desde WSL (Linux) hacia Windows
Desde tu terminal de WSL, puedes acceder a todas las unidades de Windows porque se montan automáticamente en la carpeta /mnt/.
Ver el contenido de tu disco C: Para listar los archivos de tu unidad C, usa el comando
ls:ls /mnt/c/Navegar a una carpeta específica: Para moverte a, por ejemplo, tu carpeta de "Documentos", usa
cd:cd /mnt/c/Users/TuUsuarioWindows/DocumentosRecuerda reemplazar
TuUsuarioWindowscon el nombre de tu usuario en Windows.Copiar un archivo de Windows a WSL: Una vez ubicado en la carpeta de Windows que te interesa, puedes usar el comando
cppara copiar un archivo a tu entorno de WSL. Por ejemplo, para copiarmi_archivo.txta tu carpeta de inicio en WSL:cp mi_archivo.txt /home/tu_usuario_wsl/(Reemplaza
tu_usuario_wslcon tu nombre de usuario en WSL).
🪟 Desde Windows hacia WSL (Linux)
Existen un par de métodos muy cómodos para hacer esto.
Usando el Explorador de Archivos de Windows (El más fácil): WSL expone sus archivos a través de una ruta de red especial.
Abre el Explorador de Archivos en Windows.
En la barra de direcciones, escribe
\\wsl$y presiona Enter.Verás una carpeta por cada distribución de Linux que tengas instalada (por ejemplo,
Ubuntu). Haz doble clic para entrar.Dentro, podrás navegar por todo el sistema de archivos de WSL. Ahora, puedes copiar y pegar archivos desde cualquier otra carpeta de Windows directamente en esta ventana, como si fuera una carpeta más de tu PC.
Copiar texto entre sistemas (Clipboard): Puedes usar el portapapeles para transferir texto entre ambos sistemas.
Comentarios
Publicar un comentario