Proyecto

General

Perfil

Acciones

Guía de Comandos Esenciales y Paquetes Útiles para Ubuntu

Esta guía proporciona una lista de comandos esenciales para administrar un sistema Ubuntu en Windows Subsystem for Linux (WSL) y una selección de paquetes útiles para tareas comunes, desarrollo y productividad. Es un complemento ideal para configuraciones como WSL con Nginx y Certbot.

Requisitos Previos

  • Ubuntu instalado en WSL (por ejemplo, Ubuntu 20.04 LTS o 22.04 LTS).
  • Acceso a la terminal de Ubuntu.
  • Conexión a Internet para instalar paquetes.
  • Familiaridad básica con la terminal.

Sección 1: Comandos Esenciales de Ubuntu

Los siguientes comandos son fundamentales para administrar y navegar en Ubuntu. Se dividen en categorías para facilitar su uso.

Gestión de Paquetes

  • Actualizar la lista de paquetes:

    sudo apt update
    

    Actualiza el índice de paquetes disponibles.

  • Actualizar paquetes instalados:

    sudo apt upgrade -y
    

    Instala las últimas versiones de los paquetes instalados.

  • Instalar un paquete:

    sudo apt install <nombre_paquete> -y
    

    Ejemplo: sudo apt install nginx -y.

  • Eliminar un paquete:

    sudo apt remove <nombre_paquete> -y
    

    Elimina un paquete, pero conserva los archivos de configuración.

  • Eliminar un paquete y sus configuraciones:

    sudo apt remove --purge <nombre_paquete> -y
    
  • Limpiar paquetes no necesarios:

    sudo apt autoremove -y
    

    Elimina dependencias obsoletas.

  • Buscar un paquete:

    apt search <término>
    

    Busca paquetes en los repositorios.

Gestión de Archivos y Directorios

  • Listar archivos y directorios:

    ls
    

    Opciones útiles: ls -l (detallado), ls -a (incluye ocultos).

  • Cambiar de directorio:

    cd <ruta_directorio>
    

    Ejemplo: cd /var/www/html.

  • Crear un directorio:

    mkdir <nombre_directorio>
    
  • Crear un archivo:

    touch <nombre_archivo>
    
  • Copiar archivos o directorios:

    cp <origen> <destino>
    

    Ejemplo: cp /var/www/html/index.html /var/www/html/index.html.bak.

  • Mover o renombrar archivos:

    mv <origen> <destino>
    
  • Eliminar archivos o directorios:

    rm <archivo>
    rm -r <directorio>
    

    Usa -f para forzar eliminación sin confirmación (con cuidado).

  • Ver contenido de un archivo:

    cat <archivo>
    

    Otras opciones: less <archivo> (navegación), more <archivo> (paginado).

Gestión de Permisos

  • Cambiar permisos:

    chmod <permisos> <archivo_o_directorio>
    

    Ejemplo: chmod 755 /var/www/html.

  • Cambiar propietario:

    chown <usuario>:<grupo> <archivo_o_directorio>
    

    Ejemplo: chown www-data:www-data /var/www/html.

Gestión de Procesos

  • Ver procesos activos:

    ps aux
    
  • Monitorear procesos en tiempo real:

    top
    

    Alternativa: htop (requiere instalación).

  • Terminar un proceso:

    kill <PID>
    

    Usa kill -9 <PID> para forzar terminación.

Gestión de Servicios

  • Iniciar un servicio:

    sudo systemctl start <nombre_servicio>
    

    Ejemplo: sudo systemctl start nginx.

  • Detener un servicio:

    sudo systemctl stop <nombre_servicio>
    
  • Habilitar un servicio al inicio:

    sudo systemctl enable <nombre_servicio>
    
  • Verificar estado de un servicio:

    sudo systemctl status <nombre_servicio>
    

Gestión de Red

  • Verificar puertos abiertos:

    sudo netstat -tuln
    
  • Comprobar conectividad:

    ping <dominio_o_ip>
    

    Ejemplo: ping google.com.

  • Ver configuración de red:

    ip addr
    

Gestión de Usuarios

  • Crear un usuario:

    sudo adduser <nombre_usuario>
    
  • Cambiar contraseña:

    sudo passwd <nombre_usuario>
    
  • Agregar usuario a un grupo:

    sudo usermod -aG <grupo> <nombre_usuario>
    

    Ejemplo: sudo usermod -aG sudo <nombre_usuario>.

Otros Comandos Útiles

  • Ver uso de disco:

    df -h
    
  • Ver tamaño de directorios:

    du -sh <directorio>
    
  • Buscar archivos:

    find / -name "<nombre_archivo>"
    
  • Comprimir/descomprimir archivos:

    tar -cvf archivo.tar <directorio>
    tar -xvf archivo.tar
    

Sección 2: Paquetes Útiles para Ubuntu

A continuación, se listan paquetes recomendados para mejorar la funcionalidad de Ubuntu en WSL, junto con su propósito y comando de instalación.

Herramientas de Administración del Sistema

  • htop: Monitor de procesos interactivo.

    sudo apt install htop -y
    
  • tmux: Multiplexor de terminal para sesiones persistentes.

    sudo apt install tmux -y
    
  • curl: Herramienta para transferir datos desde/hacia servidores.

    sudo apt install curl -y
    
  • wget: Descarga archivos desde la web.

    sudo apt install wget -y
    

Herramientas de Desarrollo

  • git: Sistema de control de versiones.

    sudo apt install git -y
    

    Configura Git:

    git config --global user.name "Tu Nombre"
    git config --global user.email "tu.email@ejemplo.com"
    
  • build-essential: Paquete con herramientas de compilación (gcc, g++, make).

    sudo apt install build-essential -y
    
  • python3: Lenguaje de programación Python (versión 3).

    sudo apt install python3 python3-pip -y
    
  • nodejs y npm: Entorno para JavaScript y gestor de paquetes.

    sudo apt install nodejs npm -y
    

Herramientas de Red y Seguridad

  • nmap: Escáner de puertos y redes.

    sudo apt install nmap -y
    
  • ufw: Cortafuegos simple para gestionar reglas de red.

    sudo apt install ufw -y
    

    Habilita y configura:

    sudo ufw allow 80
    sudo ufw allow 443
    sudo ufw enable
    
  • fail2ban: Protección contra ataques de fuerza bruta.

    sudo apt install fail2ban -y
    

Herramientas de Productividad

  • vim o nano: Editores de texto en terminal.

    sudo apt install vim -y
    sudo apt install nano -y
    
  • jq: Procesador de JSON para scripts.

    sudo apt install jq -y
    
  • tree: Muestra la estructura de directorios en forma de árbol.

    sudo apt install tree -y
    

Herramientas para Nginx y Certbot

  • nginx: Servidor web ligero (ya incluido en la guía anterior).

    sudo apt install nginx -y
    
  • certbot: Herramienta para obtener certificados SSL (ya incluido en la guía anterior).

    sudo apt install certbot python3-certbot-nginx -y
    

Sección 3: Consejos para WSL

  • Acceder a archivos de WSL desde Windows:
    Usa \\wsl$\Ubuntu-22.04 en el Explorador de Archivos de Windows.

  • Acceder a archivos de Windows desde WSL:
    Los discos de Windows están montados en /mnt/c, /mnt/d, etc.

  • Respaldar la distribución:
    Exporta la distribución para respaldo:

    wsl --export Ubuntu-22.04 C:\WSL\Backups\Ubuntu-22.04-backup-$(date +%Y%m%d).tar
    
  • Clonar la distribución:
    Importa un respaldo como una nueva distribución:

    wsl --import Ubuntu-22.04-Clone C:\WSL\Ubuntu-22.04-Clone C:\WSL\Backups\Ubuntu-22.04-backup-<fecha>.tar
    
  • Actualizar WSL:
    En PowerShell:

    wsl --update
    

Sección 4: Ejemplo de Script Útil

Este script instala todos los paquetes recomendados de una vez:

#!/bin/bash
sudo apt update
sudo apt install -y htop tmux curl wget git build-essential python3 python3-pip nodejs npm nmap ufw fail2ban vim nano jq tree
echo "Paquetes instalados correctamente."

Guarda el script como install_tools.sh, hazlo ejecutable y ejecútalo:

chmod +x install_tools.sh
./install_tools.sh

Solución de Problemas

  • Comando no encontrado:
    Asegúrate de que el paquete esté instalado: sudo apt install <paquete>.
  • Permisos denegados:
    Usa sudo para comandos que requieren permisos de administrador.
  • Problemas de red en WSL:
    Reinicia WSL en PowerShell:
    wsl --shutdown
    
  • Paquetes no encontrados:
    Asegúrate de que los repositorios estén actualizados: sudo apt update.

Actualizado por Anibal Pendas Amador hace 4 días · 1 revisiones