Comandos SSH

Listado de comandos SSH básicos y útiles para interactuar con tu sistema Debian 12 de forma remota.

Comando wget de Linux: para descargar archivos de Internet

wget es una herramienta de línea de comandos importante de Linux que permite descargar archivos de Internet. El programa te permite descargar contenido directamente desde la terminal. El proyecto GNU se encarga de su publicación y mantenimiento desde 1996.

Si no tienes wget instalado en tu sistema operativo de Linux, puedes instalarlo con el siguiente comando:

$ sudo apt-get install wget

Ejemplos del comando wget

Así puedes descargar un archivo.

wget http://ejemplo.es/carpeta/archivo

Así puede reanudar una descarga que se haya interrumpido previamente.

$ wget -c http://ejemplo.es/carpeta/archivo

Navegación por el sistema de archivos:

cd directorio: Cambia el directorio de trabajo actual. Por ejemplo, cd /var/www te lleva al directorio web.

ls: Lista los archivos y directorios del directorio actual.

ls -la: Muestra una lista más detallada, incluyendo archivos ocultos y permisos.

pwd: Muestra la ruta completa del directorio de trabajo actual.

Creación y gestión de archivos y directorios:

rm -r directorio: Elimina un directorio y todo su contenido de forma recursiva. ¡Extremadamente peligroso!

mkdir directorio: Crea un nuevo directorio.

touch archivo: Crea un archivo vacío.

cp archivo1 archivo2: Copia un archivo.

mv archivo1 directorio: Mueve un archivo a un directorio.

rm archivo: Elimina un archivo. ¡Ten cuidado! Esta acción es irreversible.

Edición de archivos:

  • nano archivo: Un editor de texto simple y fácil de usar.
  • vim archivo: Un editor de texto muy potente pero con una curva de aprendizaje más pronunciada.

Instalación de paquetes:

  • apt update: Actualiza la lista de paquetes disponibles.
  • apt upgrade: Actualiza los paquetes instalados a sus versiones más recientes.
  • apt install nombre_del_paquete: Instala un paquete específico. Por ejemplo, apt install apache2 instala el servidor web Apache.

Permisos de archivos:

  • chmod u+x archivo: Añade permisos de ejecución para el usuario propietario del archivo.
  • chmod g+r directorio: Añade permisos de lectura para el grupo propietario del directorio.
  • chmod o+w archivo: Añade permisos de escritura para otros usuarios del archivo.

Otros comandos útiles:

  • sudo comando: Ejecuta un comando con privilegios de root (administrador).
  • man comando: Muestra la página de manual de un comando, proporcionando información detallada sobre su uso.
  • history: Muestra un historial de los comandos ejecutados.
  • exit: Cierra la sesión SSH.

Ejemplo de una secuencia de comandos:

Conectarse al servidor:

  • ssh usuario@direccion_ip
  • Crear un directorio:

    mkdir mis_proyectos
    

    Cambiar al directorio recién creado:

    cd mis_proyectos
    

    Descargar un archivo (suponiendo que tienes instalado wget):

    wget https://ejemplo.com/archivo.tar.gz
    

    Descomprimir el archivo (suponiendo que es un archivo tar.gz):

    tar -xzvf archivo.tar.gz

    Más Información: https://wiki.debian.org/es/SSH

    Código Bash

    Mostrar un mensaje de bienvenida:

    Bash

    #!/bin/bash
    echo "¡Hola! Bienvenido a tu primer script de Bash."
    

    2. Crear un directorio y un archivo dentro de él:

    Bash

    #!/bin/bash
    mkdir mi_nuevo_directorio
    cd mi_nuevo_directorio
    touch mi_nuevo_archivo.txt
    

    3. Realizar una copia de seguridad de un archivo:

    Bash

    #!/bin/bash
    cp archivo_original.txt archivo_original_copia.txt
    

    4. Verificar si un usuario existe:

    Bash

    #!/bin/bash
    if id usuario_a_buscar &> /dev/null; then
      echo "El usuario existe."
    else
      echo "El usuario no existe."
    fi
    

    5. Realizar un bucle para listar los archivos en un directorio:

    Bash

    #!/bin/bash
    for file in *; do
      echo $file
    done
    

    6. Crear un script que se ejecute cada día a las 3 de la mañana:

    Bash

    # En un archivo llamado "mi_script.sh"
    #!/bin/bash
    # ... Tu código aquí ...
    
    # Para ejecutarlo diariamente a las 3 AM:
    0 3 * * * /bin/bash /ruta/a/tu/script/mi_script.sh
    

    (Este último comando se agrega a la tabla de tareas cron para programar la ejecución)

    Explicación de los comandos:

    • #!/bin/bash: Indica que el script debe ser ejecutado por el intérprete de comandos Bash.
    • echo: Imprime texto en la terminal.
    • mkdir: Crea un nuevo directorio.
    • cd: Cambia el directorio de trabajo actual.
    • touch: Crea un nuevo archivo vacío.
    • cp: Copia un archivo.
    • id: Verifica la existencia de un usuario.
    • for: Crea un bucle para iterar sobre una lista de elementos.
    • if/else: Estructura condicional para tomar decisiones.

    Ejemplo de comentarios y variables

    #!/bin/bash
    
    # Definimos una variable para almacenar el nombre del directorio
    directorio_a_crear="mi_proyecto"
    
    # Creamos el directorio
    mkdir "$directorio_a_crear"
    
    # Cambiamos al directorio recién creado
    cd "$directorio_a_crear"
    
    # Creamos tres archivos
    touch archivo1.txt archivo2.txt archivo3.txt
    
    echo "Se ha creado el directorio $directorio_a_crear y los archivos correspondientes."

    Ver Espacio y Memoria en un VPS

    df -h

    Cómo Buscar un Archivo HTML Específico Usando Comandos SSH

    SSH (Secure Shell) es una herramienta esencial para interactuar con servidores remotos a través de la línea de comandos. Cuando necesitas encontrar un archivo HTML específico en un servidor, SSH te proporciona una serie de comandos para realizar esta tarea de manera eficiente.

    Comandos Clave para Buscar Archivos HTML

    1. find: Este comando es extremadamente poderoso y versátil para buscar archivos basados en diversos criterios.
      • Buscar por nombre:Bashfind /var/www/html -name "index.html" Este comando buscará el archivo «index.html» en el directorio «/var/www/html» y en todos sus subdirectorios.
      • Buscar por tipo de archivo:Bashfind /var/www/html -type f -name "*.html" Este comando buscará todos los archivos regulares (no directorios) con extensión «.html» en el directorio especificado.
      • Buscar por fecha de modificación:Bashfind /var/www/html -mtime -1 -name "*.html" Este comando buscará todos los archivos HTML modificados en el último día.
    2. grep: Este comando se utiliza para buscar patrones dentro de archivos. Aunque es más adecuado para buscar texto dentro de archivos, también puede usarse para localizar archivos basados en su contenido.Bashgrep -rl "mi_palabra_clave" /var/www/html Este comando buscará recursivamente la palabra clave «mi_palabra_clave» en todos los archivos HTML dentro del directorio «/var/www/html».
    3. locate: Este comando utiliza una base de datos preconstruida para buscar archivos rápidamente. Sin embargo, esta base de datos debe actualizarse periódicamente.Bashlocate index.html Este comando buscará el archivo «index.html» en toda la partición.

    Ejemplo Completo

    Supongamos que quieres encontrar todos los archivos HTML que contengan la palabra «producto» y que hayan sido modificados en los últimos 7 días dentro del directorio de tu sitio web. Podrías usar el siguiente comando:

    Bash

    find /var/www/html -mtime -7 -name "*.html" -exec grep -H "producto" {} \;
    

    Este comando hará lo siguiente:

    • Buscará en el directorio «/var/www/html».
    • Encontrará todos los archivos HTML modificados en los últimos 7 días.
    • Ejecutará el comando grep para buscar la palabra «producto» en cada uno de esos archivos.
    • Mostrará el nombre del archivo y la línea donde se encontró la coincidencia.

    Consideraciones Adicionales

    • Rendimiento: Para directorios muy grandes, el comando find puede tardar un tiempo en completar la búsqueda.
    • Expresiones regulares: Tanto find como grep admiten expresiones regulares para realizar búsquedas más sofisticadas.
    • Opciones adicionales: Cada comando tiene numerosas opciones que te permiten personalizar la búsqueda. Consulta la documentación de cada comando para obtener más información.