LinuxParty

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

En muchas tareas de administración de sistemas necesitamos detener la ejecución de un script y esperar la intervención del usuario. Ya sea para confirmar una acción crítica o simplemente para dar tiempo antes de continuar, disponer de una pausa controlada es fundamental.

En este artículo te mostramos un script en Bash sencillo pero muy útil que permite:

  • Esperar indefinidamente hasta que el usuario pulse una tecla
  • Esperar un tiempo determinado (5, 10, 15 o 30 segundos)
  • Permitir interrumpir la espera pulsando una tecla
  • Devolver un código de salida compatible con estructuras if

⚙️ Script: espera.sh

#!/bin/bash
#
# Uso:
# if /root/bin/espera.sh ; then
#   echo "SI"
# else
#   echo "NO"
# fi

# Función de lectura
leer_tecla() {
    local timeout=$1

    if [ -z "$timeout" ]; then
        echo -n "Pulse una tecla para continuar... (o 's' o 'n' para confirmar): "
        read -n 1 key
    else
        echo -n "Pulse una tecla ($timeout s)... (o 's' o 'n' para confirmar): "
        read -t "$timeout" -n 1 key
    fi

    # Si hay timeout, la variable puede quedar vacía
    # (Esta parte es opcional, yo se la tengo desactivado, así comentado.
    # if [ -z "$key" ]; then
    #     echo -e "\nTiempo agotado."
    #     return 1
    # fi
    # echo ""

    if [ "$key" == 's' ] || [ "$key" == 'S' ]; then
        return 0
    else
        return 1
    fi
}

# Control de parámetros
case "$1" in
    -5)
        leer_tecla 5
        ;;
    -10)
        leer_tecla 10
        ;;
    -15)
        leer_tecla 15
        ;;
    -30)
        leer_tecla 30
        ;;
    "")
        leer_tecla
        ;;
    *)
        echo "Uso: $0 [-5 | -10 | -15 | -30]"
        exit 1
        ;;
esac

exit $?

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Yo tengo dos ordenadores trabajando conmigo, uno de ellos, me sirve de multimedia, por ejemplo me descargo un Webinar, que en su tiempo no me dio tiempo a ver y en ese momento lo veo, y entre las cosas que hace es poner "ruido de fondo" cuando estoy trabajando.

Ya sabes cuando eres freelance/autónomo, ese "silencio" cuando trabajas a veces es odioso... Lo mejor, y lo que más me gusta es escuchar la radio -porque no necesitas prestarle atención-, y ¿cuándo lo hace?, cuando "detecta" que no hay nada funcionando, entonces... va... y pone la radio.

 

Necesitas tener instalado.

falkon (como navegador ligero usado solo para la radio)

kdialog (para crear diálogos desde Linux)

El script funciona de dos formas, si lo usas en crontab, debes poner "radio.sh -s", por ejemplo esta entrada en crond, permite la ejecución de 9 am hasta las 20 h, cada 30 minutos.

*/30 9-20 * * * /home/javier/bin/radio.sh -s

Y si lo quieres es escuchar la radio y ya está, simplemente usa "radio.sh"

El script es este...

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado

¿Eres de los que abres “un momentito” Warzone2100 o Brutal Chess y cuando te das cuenta han pasado dos horas? 😅
No estás solo. Las distracciones digitales son una epidemia moderna, y aunque existen aplicaciones que prometen ayudarte, los que usamos Linux sabemos que la mejor herramienta siempre es la que controlas tú mismo.

Hoy te muestro cómo crear tu propio sistema anti-distracciones en Linux: un script que detecta y mata automáticamente ciertos programas durante tu horario laboral, con un aviso en pantalla.
Así evitarás tentaciones… incluso cuando el demonio del ocio intente invocar Steam.

Mira también, nuestra versión para Windows de éste script.


🚫 La idea

El concepto es simple:

  • Definimos una lista de programas “prohibidos” (por ejemplo juegos o redes sociales).
  • Establecemos una franja horaria y días en los que no queremos que se ejecuten.
  • Si alguno se abre, el sistema lo detecta y lo cierra inmediatamente, mostrando un aviso con kdialog.

Esto se hace con un pequeño script en Bash llamado KillGuard.


⚙️ El script: killguard.sh

Guarda este código en /usr/local/bin/killguard.sh y dale permisos ejecutables:

sudo nano /usr/local/bin/killguard.sh
sudo chmod +x /usr/local/bin/killguard.sh

Y pega dentro lo siguiente:

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Aunque tenemos multitud de scripts ya creados con este propósito en nuestra sección de Scriptings, y otros más en la sección de Seguridad, que deberían estar más allí (en Scripting) que en ningún otro lado, voy a compartir con vosotros el script de copias de seguridad que yo utilizo para guardar casi todo lo importante.

Tengo que decir, que como es un script, es bastante configurable, editando el código, claro. El cual he tratado de que sea bastante legilble a mi humilde entender.

El funciomiento es muy simple:

  1. Copias el código en un "/bin" que crees en tu $HOME, o lo copias en /usr/local/bin
  2. montas un pendrive, creas una carpeta y desde allí, desde la shell
  3. Llamas al script "copiacompleta2" y sigues las instrucciones y ya está.

Con eso, tendrás en tu pendrive en una carpeta una copia comprimida en tar gzip el contenido más relevante de tu sistema.

Yo utilizo KDE, por lo que si usas otro entorno menos común, tendrás que adaptarlo a él.

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

En entornos Linux, es común utilizar herramientas de automatización como `cron` para realizar tareas programadas. Sin embargo, cuando se trata de ejecutar aplicaciones gráficas, como el cliente de eDonkey/aMule, puede surgir un desafío adicional: asegurarse de que la aplicación se ejecute en el entorno gráfico del usuario correcto, especialmente cuando se utiliza `cron` para programar la tarea.

En este artículo, exploraremos cómo configurar una solución para este problema utilizando `sudo`, `cron` y un script de shell en Linux. Utilizaremos el cliente de eDonkey/aMule como ejemplo de aplicación gráfica.

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

En Shell Script, las operaciones matemáticas se realizan utilizando el intérprete de comandos expr. Con expr, puedes realizar operaciones aritméticas simples como sumas, restas, multiplicaciones y divisiones.

Aquí hay algunos ejemplos de cómo realizar operaciones matemáticas en Shell Script:

# Suma
result=$(expr 2 + 2)
echo "2 + 2 = $result"
# Resta
result=$(expr 5 - 3)
echo "5 - 3 = $result"
# Multiplicación
result=$(expr 4 \* 5)
echo "4 * 5 = $result"
# División
result=$(expr 10 / 2)
echo "10 / 2 = $result"

Es importante notar que en Shell Script es necesario escapar los operadores * y / para que sean tratados como operadores matemáticos en lugar de comandos.

Además de las operaciones básicas, expr también permite realizar operaciones más complejas como cálculos de modulos y comparaciones lógicas. También es posible realizar operaciones matemáticas utilizando otras herramientas como bc o incluso utilizando directamente el intérprete de comandos con sintaxis específica para este propósito, como por ejemplo:

 

result=$((2 + 2)) echo "2 + 2 = $result"

 

Aritméticas

En un Bash podemos realiza directamente sumas, restas, divisiones, multiplicaciones y resto de números enteros.

Para ello tendemos que poner la operación dentro de $(( )).

Operadores: +, -, /, *, % (% es el resto que resulta al realizar la división entre dos números)

  • "+": Para sumar valores.
  • "-": Para restar valores.
  • "*": Para multiplicar valores.
  • "/": Para dividir valores.
  • "%": Para calcular el resto de una división.

Por ejemplo:

  • echo $((25+6))

echo $((24%5)) daría como resultado 4

Para operaciones con decimales tendríamos que ayudarnos de comandos externos como bc.

Ejemplo:

  • echo 6.5*4.99 | bc
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

La verificación y/o prueba de la sintaxis de configuración es un paso clave que se debe realizar después de realizar cambios en el archivo de configuración de una aplicación o servicio o incluso después de ejecutar actualizaciones. Esto ayuda a reducir las posibilidades de que el servicio no se reinicie debido a errores de configuración.

Varias aplicaciones/programas o demonios de servicio se envían con comandos para comprobar la corrección de la sintaxis de los archivos de configuración. Hemos reunido una lista de aplicaciones y servicios comunes en sistemas Linux y cómo probar o validar sus archivos de configuración.

Nota : utilice si no ha iniciado sesión en un servidor como usuario root, recuerde usar el comando sudo cuando sea necesario al invocar un comando porque algunos servicios se ejecutan con privilegios de root y verificar sus archivos de configuración requiere permisos de usuario root.

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Estas son algunas de las operaciones aritméticas simples que podemos hacer el Shell Script

Aritméticas

En un Bash podemos realiza directamente sumas, restas, divisiones, multiplicaciones y resto de números enteros.

Para ello tendemos que poner la operación dentro de $(( )).

Operadores: +, -, /, *, % (% es el resto que resulta al realizar la división entre dos números)

  • "+": Para sumar valores.
  • "-": Para restar valores.
  • "*": Para multiplicar valores.
  • "/": Para dividir valores.
  • "%": Para calcular el resto de una división.

Por ejemplo:

  • echo $((25+6))

echo $((24%5)) daría como resultado 4

Para operaciones con decimales tendríamos que ayudarnos de comandos externos como bc.

Ejemplo:

  • echo 6.5*4.99 | bc
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Las útiles herramientas y comandos proporcionados por el sistema operativo Linux hacen posible alcanzar/cumplir numerosos objetivos de manipulación de archivos.

Bajo la administración de archivos de Linux, es posible que deba intercambiar dos archivos por un motivo u otro.

Cuando hablamos de intercambiar dos archivos en un entorno de sistema operativo Linux, no se traduce exactamente en intercambiar/intercambiar la ubicación de estos dos archivos, sino su contenido real.

Para comprender mejor el objetivo de este tutorial, considere la existencia de los siguientes archivos en un entorno de sistema operativo Linux.

file_one.txt en /home/javier/linuxparty/dir1/file_one.txt
file_two.txt en /home/javier/linuxparty/dir2/file_two.txt

Supongamos que file_one.txt tiene el siguiente contenido:

Soy el primer archivo.

y file_two.txt tiene el siguiente contenido:

Soy el segundo archivo.

Si vamos a intercambiar con éxito estos dos archivos,

file_one.txt leerá - Soy el segundo archivo.
file_two.txt leerá - Soy el primer archivo.

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado

Actualización de errores 2022-08-03 - 08:12.  Buscar directorios vacíos con el fin de borrarlos, es una de las cosas que tenemos que hacer los administradores, para evitar buscar en directorios que algunas veces no contienen ya ningún valor.

A veces, lo primero que hicimos fue buscar ficheros antiguos, y tras borrarlos, lo mejor es borrar ahora esos directorios antiguos, que en muchas ocasiones estárán ya vacíos.

Con la siguiente línea de comandos, lograremos eliminar todos los directorios que estén vacíos a partir de el directorio en el que nos encontremos (.):

find . -type d -empty -print0 | xargs -0 rmdir  # OPCION NO MUY RECOMENDADA

Particularmente a mi me gusta tener el control de lo que se va a eliminar, por lo que usaré la siguiente expresión regular:

find . -type d -empty -print | awk '{print $0}'


Redes:



   

 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

 

Tutorial de Linux

Top 15 artículos por Fecha

Viendo artículos de: Febrero de 2026

Filtro por Categorías