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

  1. Instala la extensión WSL en VS Code (la del pingüinito de Linux)

  2. Abre VS Code desde WSL usando el botón "Remote Explorer" y seleccionando Ubuntu

  3. Crea un espacio de trabajo dentro de WSL (no en Windows)

  4. Vuelve a instalar las extensiones (como Python) dentro del entorno WSL

  5. 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.

    1. Abre el Explorador de Archivos en Windows.

    2. En la barra de direcciones, escribe \\wsl$ y presiona Enter.

    3. Verás una carpeta por cada distribución de Linux que tengas instalada (por ejemplo, Ubuntu). Haz doble clic para entrar.

    4. 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

  1. ¿Qué es WSL?

  2. Instalación de WSL y Ubuntu

  3. Primeros pasos con la terminal

  4. Comandos básicos de navegación

  5. Gestión de archivos y directorios

  6. Trabajar con texto y archivos

  7. Permisos y propietarios

  8. Procesos y gestión del sistema

  9. Redes y conectividad

  10. Personalización de la terminal

  11. Integración con Windows

  12. Consejos y trucos útiles

  13. 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

  1. Abrir PowerShell como Administrador (clic derecho → Ejecutar como administrador).

  2. Instalar WSL con el comando:

    powershell
    wsl --install

    Este comando activa WSL, instala WSL 2 como predeterminado y descarga la distribución Ubuntu por defecto.

  3. Reiniciar el equipo si se solicita.

  4. 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.

  5. 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.

  6. ¡Listo! Ya tienes Bash funcionando.

Actualizar los paquetes

Siempre es buena práctica actualizar el sistema:

bash
sudo apt update && sudo apt upgrade -y

Primeros pasos con la terminal

Al abrir la terminal, verás algo como:

text
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

ComandoDescripción
pwdMuestra el directorio actual (Print Working Directory).
whoamiMuestra el nombre del usuario actual.
echo "Hola"Imprime texto en la terminal.
clearLimpia la pantalla (o Ctrl+L).
historyMuestra el historial de comandos.
exitCierra la terminal.

Prueba:

bash
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

ComandoDescripción
lsLista archivos y carpetas.
ls -lLista con detalles (permisos, tamaño, fecha).
ls -aMuestra 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:

bash
ls -la          # Lista detallada con ocultos
cd /etc         # Ve a /etc
pwd             # Muestra /etc
ls              # Ver contenido
cd ~            # Vuelve al home

Autocompletado 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

ComandoDescripció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:

bash
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 todo

Ver contenido de archivos

ComandoDescripció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:

bash
sudo apt install nano -y   # (si no está instalado)
nano mi_nota.txt

Dentro 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:

bash
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.txt

Comandos útiles para texto

ComandoDescripción
grep <patrón> <archivo>Busca líneas que contengan el patrón.
wc -lCuenta líneas.
sortOrdena líneas.
uniqElimina líneas duplicadas (requiere estar ordenado).
cut -d: -f1Extrae 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

text
-rwxr-xr-- 1 juan juan 1234 mar 10 12:00 script.sh
  • Primer carácter: - archivo, d directorio, l enlace.

  • 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

bash
sudo chown nuevo_usuario archivo
sudo chown nuevo_usuario:nuevo_grupo archivo

Ejemplo práctico:

bash
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

ComandoDescripción
ps auxMuestra todos los procesos en ejecución.
ps -efOtra vista detallada.
topMonitor interactivo en tiempo real (presiona q para salir).
htopMejorado y más colorido (instalar con sudo apt install htop).

Matar procesos

bash
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

bash
uname -a        # Información del kernel
df -h           # Espacio en disco (en formato humano)
free -h         # Memoria RAM y swap
uptime          # Tiempo encendido y carga

Ejecutar comandos como superusuario (sudo)

bash
sudo apt install git   # Instala git con privilegios

Se te pedirá la contraseña del usuario de Ubuntu (no la de Windows).


Redes y conectividad

Comandos de red básicos

ComandoDescripció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 aMuestra todas las interfaces de red (reemplaza a ifconfig).
ss -tulpnMuestra puertos en escucha (similar a netstat).
nslookup dominio.comResuelve DNS.

Conexión SSH (cliente)

bash
ssh usuario@servidor.com

Si 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/:

bash
ls /mnt/c/     # Unidad C:
ls /mnt/d/     # Unidad D: (si existe)
cd /mnt/c/Users/tu_usuario/Desktop

Personalizació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:

bash
export PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
  • \u usuario, \h hostname, \w ruta completa, \$ muestra $ o # según privilegios.

Alias

Crea atajos para comandos largos en ~/.bashrc:

bash
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:

bash
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:

bash
nano /mnt/c/Users/tu_usuario/Documents/nota.txt

Abrir aplicaciones de Windows desde WSL

Puedes lanzar programas de Windows desde la terminal de Bash:

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 a exit).

  • Ctrl + Z → Suspende un proceso (luego fg para reanudarlo).

  • Ctrl + R → Búsqueda inversa en el historial.

  • TAB → Autocompletado.

  • Ctrl + L → Limpia la pantalla (como clear).

Historial de comandos

  • history muestra todos los comandos ejecutados.

  • !<número> repite el comando con ese número.

  • !! repite el último comando.

  • Ctrl + R y escribe para buscar.

Ayuda en línea

  • man <comando> → Muestra el manual del comando.

  • comando --help → Muestra una ayuda breve.

Variables de entorno

bash
echo $HOME          # Muestra el directorio home
export MI_VAR="valor"   # Define una variable
echo $MI_VAR

Comandos 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>&1 combina error con salida normal.

Ejemplo:

bash
ls /archivo_inexistente 2> error.log

Scripts Bash

Crea un archivo con extensión .sh:

bash
#!/bin/bash
# Mi primer script
echo "Hola, mundo"

Hazlo ejecutable (chmod +x) y ejecuta con ./script.sh.


Recursos adicionales


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:

    bash
    ls /mnt/c/
  • Navegar a una carpeta específica: Para moverte a, por ejemplo, tu carpeta de "Documentos", usa cd:

    bash
    cd /mnt/c/Users/TuUsuarioWindows/Documentos

    Recuerda reemplazar TuUsuarioWindows con 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 cp para copiar un archivo a tu entorno de WSL. Por ejemplo, para copiar mi_archivo.txt a tu carpeta de inicio en WSL:

    bash
    cp mi_archivo.txt /home/tu_usuario_wsl/

    (Reemplaza tu_usuario_wsl con 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.

    1. Abre el Explorador de Archivos en Windows.

    2. En la barra de direcciones, escribe \\wsl$ y presiona Enter.

    3. Verás una carpeta por cada distribución de Linux que tengas instalada (por ejemplo, Ubuntu). Haz doble clic para entrar.

    4. 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.

    • En WSL, para copiar la salida de un comando al portapapeles de Windows, usa clip.exe. Por ejemplo:

      bash
      cat /etc/hosts | clip.exe
    • En Windows, para pegar ese texto en una terminal de WSL, solo usa el atajo de teclado habitual Ctrl + V (o clic derecho).


Comentarios

Entradas más populares de este blog

12. Hola Mundo en Docker.

11¿Qué es Docker? y ¿Por qué debo saberlo?

14. Publish and Detached modes