lunes, 26 de abril de 2021

scripts en Bash... para torpes (y X)

Ya acabo de una vez con este tema. Como dije, me apetecía terminar con una especie de recopilación de los scripts (o cosas similares) que he ido creando a lo largo del tiempo, para facilitarme la vida en mi Debian… o simplemente porque me apetecía hacerlos. Y el Blog es un ‘repositorio’ que siempre tengo a mano, cuando tenga que reinstalar, que será este mismo año, la versión final ('en limpio') del Debian 11 ‘Bullseyes’, que ya estoy probado (una versión de desarrollo, a nivel ‘alpha 3’) y va bastante bien.
Pero bueno, volvamos al tema. Aquí viene mi...
10- Postdata: mis scripts favoritos


Debo decir que yo uso mucho, en mi Debian en entorno gráfico Cinnamon (que me encanta, y no lo cambio por ninguno), tanto lanzadores (personalizados) en el Escritorio como, sobre todo, lanzadores (‘elementos’) que incorporo al Menu.

Ambas cosas son muy fáciles de hacer en el entorno gráfico Cinnamon, que es el que ‘domino’:
a) Los lanzadores en el Escritorio, con botón derecho ratón (en el Escritorio)… y poniéndoles un bonito icono, que, o los creo, o los saco de aquí.
b) Y los ‘nuevos elementos’ (lanzadores) en el Menu, con Menu… y aquí...Configurar-Menu-Abrir el editor de menús. Ahí, nuevo Elemento, relleno convenientemente los campos de ‘nombre’, ‘orden’ (command), si procede ‘comentarios’ e ‘iniciar desde un terminal’’ y luego les pongo, también, un icono que me guste.

Por supuesto, en el campo ‘orden’, no solo se pueden poner (como pasa en las ‘aplicaciones’) un comando que lo ejecute, sino que también pueden ponerse ‘pequeñas órdenes’, o la orden de ejecución (‘sh nombre_script’) de un script. Por cierto, en este caso, lo más sencillo es guardar el script en la ruta donde se abra, por defecto, la consola
Asi que voy a comentar las cosas que yo he ido poniéndome...

Algunas ‘pequeñas órdenes’ para lanzadores (que, normalmente, los tengo, más a mano, en el Escritorio)
para poner en suspensión el PC….
sudo pm-suspend (hay que tener instalado ‘pm-utils’)

para reconfigurar hddTemp (que a veces desaparece de mi monitor de temperaturas gkrellm)…
sudo dpkg-reconfigure hddtemp

para abrir la bandeja del CDRom…..
eject -T /dev/cdrom

y para cerrar esa bandeja del CDRom…
eject -t /dev/cdrom

para acceder directamente a una web
, o buscador, determinado basta poner la ruta de ejecución del navegador seguida de la dirección web deseada. En mi Firefox, y por ejemplo…
/home/doc/Firefox/firefox https://www.culturallanes.com/buscador-avanzado/

y para reiniciar las conexiones (el Network-Manager) sin necesidad de reiniciar el PC…
sudo systemctl restart NetworkManager.service


Y ahora, algunos ‘pequeños scripts’ para lanzadores:
Por ejemplo, en el Menu-Herramientas del sistema suelo crear algunos elementos, como este que me permite conocer la información sobre cualquier paquete (si está o no instalado, su versión…)
#!/bin/bash
read -p "escribe el nombre del paquete cuya información quieres obtener...: " COD
sudo aptitude show $COD
read -rsp $'Pulsa cualquier tecla para salir...\n' -n 1 key


O este otro, un script con el que limpio la caché y los archivos de dependencias no necesarias)
#!/bin/sh
sudo apt-get autoclean && sudo apt-get autoremove
read -rsp $'Press any key to continue...\n' -n 1 key
# echo $key


O este otro, para eliminar archivos huérfanos (hay que tener instalado ‘deborphan’)
sudo orphaner

Y este es (ya muy repetido) mi clásico script para actualizar (usando gedit como editor de texto)
#!/bin/bash
sudo aptitude update && sudo aptitude safe-upgrade
gedit /var/log/aptitude +8000:1


Otro que monté en su día fue este, para controlar la tinta de la impresora (necesita el paquete ‘ink’)
#!/bin/sh
ink -p usb >> controltinta.txt
date +%e-%B-%Y >> controltinta.txt
zenity --width=400 --height=200 --text-info --filename=controltinta.txt +1000:1


Y también puedo usar scripts para ‘crear acciones en Nemo’ como (aparte de los que me sirven para redimensionar las imágenes, que ya mencionaba aquí), éste me sirve para extraer páginas de un PDF (necesita el paquete pdftk)
#!/bin/bash
DESDE=$(zenity --entry --title="Pág. inicial" --text="Iniciar en página...")
HASTA=$(zenity --entry --title="Pág. final" --text="Terminar en página...")
pdftk A="$1" cat 'A'$DESDE-$HASTA output "/home/doc/Escritorio/EXTRAIDO.PDF"


Bueno, y seguro que, a lo largo de las entradas de este Blog aparecen más, y en particular hablando de 'cajas de diálogo', si se busca por Zenity, o por gxmessage, etc. o jugando a cosas divertidas, como el famoso ‘calendario perpetuo’ del que hablaba el otro día.
Hombre, mi último ‘fichaje’ es este script que recrea (a mi estilo, y en el ejemplo) los primeros 20 elementos de la famosa (y 'muy universal') serie de Fibonacci:
#!/bin/bash
contador=0
i=1
j=0
t=0
while [ $contador -le 20 ]; do
t=$(($i+$j))
i=$j
j=$t
echo $j
contador=$(($contador+1))
sleep 0.5
done

(que, por cierto, por acabar el apunte: si (abriendo una consola en la ruta donde guarde el script) hago un…
sh script_fibonacci > original.txt && fmt -w 100 -u original.txt > horizontal.txt
me queda un archivo de texto con esos 20 elementos... en una sola, y cómoda, línea horizontal)


Pero quiero acabar ya, que me estoy enrollando demasiado. Y hacerlo con una cuestión, para mi entrañable: He dicho más de una vez que el único foro que me queda, y al que tengo un enorme cariño, y visito todos los días, es el de Espacio Linux. Mirando ayer en él, por curiosidad (o sea, tontamente) mis propios datos de usuario, ví que ponía que el tema más activo (con 25 posts) era uno titulado ‘¿Optimizar la distro? (Debian)’… y desarrollado entre febrero y marzo del año 2012 (cuando yo empezaba a ser ‘debianita’).

Y ahí tuve un instructivo y largo diálogo, básicamente con dos buenísimos foreros, ‘niki45’ y ‘neurus’. Niki era una verdadera ‘chica terremoto’ divertidísima, y muy participativa, que es una pena que hace años dejase el foro (donde aún mantiene su primer puesto como forero (forera) con más posts), y neurus (Diego), un verdadero gurú que todavía sigue, y sigue ayudándome mucho.

El caso es que creo que aquel chorro de ideas (que despejó mis horizontes en Debian) fué el germen de este Blog mío (nacido como mes y medio más tarde, en abril del 2012). Y voy a rescatar un comentario de niki, en una de sus intervenciones finales en aquel post, que viene muy a cuento ahora. Donde, refiriéndose a mi ilusión por lo mucho que había aprendido en esos días, decía así…

[niki45] …por cierto, y completamente offtopic: no lo mires ahora (es adelantar bastante los acontecimientos), pero guarda este enlace donde sepas que lo vas a encontrar: algun dia me lo agradecerás. http://www.etxea.net/docu/taller_bash/bash.html

Y esto que me recomendaba no era otra cosa que unos apuntes-resumen sobre scripts en Bash, coincidentes (aunque algo más avanzados) con estos míos. Y, efectivamente, tras muchos años de pérdida de contacto con niki45 (abandonó, incluso, sus Blogs), claro que se lo tengo que agradecer, porque (verdaderamente) fue como mi ‘musa’ debianita... y esto de los scripts es un mundo muy complejo... pero también muy entretenido.


Ir al Sumario (del tema)

 

 

No hay comentarios:

Publicar un comentario