Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

El comando tail de #GNU

Veamos las funciones y opciones del comando tail, una de las herramientas del sistema GNU

El comando tail es otra de las herramientas coreutils del sistema GNU. Las herramientas básicas para la gestión de archivos, manejo del sistema y utilidades de manipulación de texto, disponibles en sistemas GNU/Linux.

El comando tail es un comando “complementario” y muy similar al comando head (que ya vimos en un artículo anterior) y que nos mostrará el contenido de la última parte de un archivo.

El comando tail muestra de manera predeterminada las 10 últimas líneas (aunque esto se puede modificar) de un archivo de texto o de varios. Útil para consultar (por ejemplo) un archivo de registros del sistema al que se van añadiendo nuevas entradas modificando el archivo.

tail archivo.txt

El comando anterior mostrará las 10 últimas líneas del archivo sin necesidad de abrir un editor para consultarlo. También podremos pasar esa salida a otro comando para gestionarla con un script, etc…

Si queremos modificar que muestre más o menos de las 10 últimas líneas de un archivo que hace de manera predeterminada, podremos especificar el número de líneas que queremos que muestre con la opción -n <num>. Esto mostrará las 15 últimas líneas del archivo especificado.

tail -n 15 archivo.txt

Si anteponemos un símbolo + antes del número cambia totalmente su comportamiento. Al hacer eso el comando tail mostrará todo el archivo menos las líneas especificadas en el comando. Este ejemplo mostrará todo el archivo, menos las primeras 20 líneas del archivo especificado.

tail -n +20 archivo.txt

Al igual que con head, podremos especificar el contenido a mostrar, no por líneas, si no por caracteres con la opción -c. Esto mostrará los últimos 10 caracteres del archivo.

tail -c 10 archivo.txt

También podremos mostrar todo el archivo, menos los primero 10 caracteres del archivo, anteponiendo un + antes del número:

tail -c +10 archivo.txt

También podemos especificar un tamaño de información (bytes, kilos, megas, etc) si lo especificamos añadiendo al número un sufijo (b, K, M, etc)

Un comportamiento interesante del comando tail que head no tiene, es que tail puede mostrar un archivo “en directo” es decir, puede mostrar el archivo y el nuevo contenido si este archivo ha sido modificado, con la opción -f

tail -f archivo.txt

Con esto, el comando no se cierra al mostrar el archivo, si no que si el archivo es modificado, esas modificaciones se verán reflejadas en el comando.

De manera predeterminada, el comando tail seguirá y mostrará el contenido del archivo especificado, pero ¿qué pasa si el archivo es renombrado? que el seguimiento de ese archivo se perderá.

Para eso el comando tail tiene la opción de seguir, no el nombre, si no el descriptor (un número único para cada archivo abierto en el sistema), así si el archivo es renombrado, tail seguirá mostrando el contenido del archivo especificado si este sigue siendo modificado.

tail --follow=descriptor archivo.txt

También podemos especificar junto con la opción -f al comando tail que termine cuando el identificador de un proceso de nuestro sistema (PID) termine. Útil para seguir las modificaciones que realice cierta tarea del sistema y que se cierre.

tail --pid=9390 -f archivo.txt

En el caso anterior el PID 9390 corresponde a un editor de texto que tiene abierto ese archivo. Al guardar las modificaciones del archivo estas se reflejarán en la salida del comando tail. Y al cerrar el editor, terminará el comando tail de mostrar el contenido del archivo.

También podemos hacer que tail no muestre inmediatamente los resultados si lo hemos ejecutado con la opción -f si no que espere un número de segundos, antes de mostrar los nuevos cambios.

Esa opción se realiza con la opción -s (sleep) pero no me parecía funcionar, debido a que con inotify se hace un seguimiento de los archivos por parte del sistema.

Si queremos que funcione, deberíamos especificar una opción no documentada en la ayuda que es —disable-inotify (sí tiene tres — al comienzo del comando). Es este ejemplo mostrará los cambios del archivo cada 10 segundos:

tail -f -s 10 ---disable-inotify archivo.txt

tail también puede mostrar el contenido de no solo un archivo, si no de varios y antes de cada archivo añadirá una cabecera con el nombre del archivo, para poder diferenciarlos.

tail archivo1.txt archivo2.txt

Podemos hacer que tail no muestre el nombre de cada archivo añadiendo la opción -q (quiet). O forzar a tail a que lo muestre incluso con un archivo con la opción -v (verbose).


Y esto es básicamente lo más importante de este comando, simple, pero que quizás nos puede resultar muy útil a la hora de gestionar nuestros sistemas GNU/Linux u otros derivados de Unix.

¿Te ha resultado interesante? ¿Ya lo conocías y lo usabas? ¿Has descubierto algo nuevo con este comando? Utiliza los comentarios del blog para compartir tu opinión y así saber si te resultan interesantes estos artículos.

a silhouette of a person's head and shoulders, used as a default avatar

Presenta tu charla a Akademy-es 2021

Este año, como el anterior, Akademy-es 2021 se celebrará en línea del 19 al 21 de Noviembre. Realmente falta poco tiempo, así que en el mismo anuncio se ha abierto el Call for Papers, es decir, el momento de participar activamente en el evento. Así que ya sabes: presenta tu charla a Akademy-es 2021 y muestra al mundo tu proyecto.

Presenta tu charla a Akademy-es 2021

A pesar de todas las restricciones para vernos que tenemos debido a la pandemia, los eventos comunitarios parece que no se detienen.

Hace unos días compartí con con vosotros que este año Akademy-es 2021 se vuelve a realizar en línea del 19 al 21 de noviembre, en una edición muy especial utilizando tecnologías de telecomunicación libres.

Siguiendo el esquema habitual, las charlas se realizarán en línea el viernes 19 por la tarde, sábado 20 durante todo el día y la mañana del domingo 21, con lo que tendremos un buen maratón de novedades de la Comunidad KDE.

Como se ha comentado en anteriores ocasiones, uno de los objetivos de Akademy es aprender y enseñar nuevos conocimientos y compartir entre nosotros la pasión de lo que se hace en KDE.

Si crees que tienes algo importante que presentar, por favor házselo saber a la organización. Y si crees que alguien debería presentar su ponencia, no dejes de animarlo para que lo haga. Todas las contribuciones son útiles.

Presenta tu charla a Akademy-es 2021
Adrián Chaves y Albert Astals en la Akademy-es 2018 de València

Para más detalles, mira las líneas generales del Call for Papers. Tienes de plazo para enviar tu propuesta hasta el domingo 24 de Octubre 23:59:59 CEST al correo akademy-es-org@kde-espana.org.

Es importante tener en cuenta las siguientes consideraciones:

  • Se puede elegir entre dos formatos de charlas:
    • Charlas de 45 minutos.
    • Charlas relámpago (Lightning talk) de 10 minutos.
  • Si la duración de las charlas propuestas no se ajusta a ninguno de estos dos esquemas (por ejemplo, si se necesita más tiempo), esto debe indicarse claramente en la comunicación.
  • Se permitirá a KDE España la distribución bajo una licencia libre de todo el material utilizado para la realización de la actividad, así como de la grabación de la misma.
  • La charla puede ser tanto a nivel de usuario como de nivel técnico.
a silhouette of a person's head and shoulders, used as a default avatar

El comando head de #GNU

Echemos un vistazo al uso del comando head, una de las herramientas del sistema GNU

Las herramientas coreutils del sistema GNU, son las herramientas básicas de nuestro sistema GNU con kernel Linux a la hora de gestionarlo desde la línea de comandos.

En esta ocasión echaremos un vistazo al comando head, un comando sencillo y que nos puede ser muy útil cuando estamos trabajando en la terminal o para usarlo en algún script.

El comando head es un comando sencillo de utilizar y con pocas opciones que podremos aprender sin mucha dificultad. Básicamente lo que hace es mostrar las primeras 10 líneas (de manera predeterminada) de un archivo o de varios.

head archivo.txt

De esta manera, podremos ver una parte del archivo sin necesidad de abrirlo en un editor, si sólo queremos ver el contenido y no modificarlo.

De manera predeterminada muestra las primeras 10 líneas del archivo, pero podemos modificarlo para mostrar más líneas o menos. Podemos especificar los números de línea con la opción -n <num>

head -n 15 archivo.log

Esto hará que se muestren 15 líneas del archivo especificado. Podemos poner el número que queramos. Si especificamos el número precedido de un guion esto hará algo totalmente distinto. -n -<num>

head -n -15 artículo.md

Esto mostrará todo el contenido del archivo menos las 15 últimas líneas (las especificadas en el comando en este ejemplo) del archivo. Como veis es una diferencia de funcionamiento sustancial.

También podemos especificar no las líneas que queremos que muestre, si no los caracteres a mostrar (o bytes) con la opción -c (sí, los espacios en blanco y los saltos de línea también son caracteres)

head -c 20 artículo.md

Igual que en el caso anterior, si anteponemos un – antes del número, imprimirá todo el archivo menos los últimos caracteres especificados.

También podemos especificar un tamaño de información (bytes, kilos, megas, etc) si lo especificamos añadiendo al número un sufijo (b, K, M, etc)

Como he dicho al comienzo pueden pasarse al comando varios archivos y de todos mostrará la parte indicada. Cuando se especifican varios archivos, el comando muestra una cabecera con el nombre del archivo antes de cada texto del archivo correspondiente.

$ head -n 2 artículo.md Unamuno.md
==> archivo.md <==
lorem ipsum
dolor sit amet

==> Unamuno.md <==
Vencer no es convencer
ni conquistar es convertir

Pero si no queremos que se muestre esa línea que muestra el nombre del archivo, ya que tenemos un script en el que no necesitamos esa funcionalidad, podemos omitirla con la opción -q (quiet)

head -q archivo1.txt archivo2.txt archivo3.txt 

Lo que mostrará sin solución de continuidad los contenidos de los archivos especificados.

De igual manera, si al especificar solo un archivo, queremos forzar que el comando muestre el nombre del archivo antes del texto podemos hacerlo con la opción -v (verbose)

head -v archivo1.txt

Para concluir, si ejecutamos el comando sin especificar ningún archivo, mostrará el contenido de aquello que vayamos escribiendo en nuestra terminal. No sé qué sentido puede tener esto, pero oye, ahí está…

Quizás a la hora de tomar la entrada de head desde otro comando pueda ser útil.


Y eso sería básicamente todo lo relacionado con el comando head. Como siempre, puedes completar esta información con la ayuda del comando en tu terminal mediante cualquiera de estas opciones:

  • man head
  • info head
  • head –help

¿Te gustan esta serie de entradas sobre comandos GNU? ¿Ya conocías esta herramienta? ¿La usas en tu día a día o tus scripts? Comparte tu modo de uso en los comentarios.

a silhouette of a person's head and shoulders, used as a default avatar

Vocabulario en GCompris – A fondo @g_compris (14)

Sigo aprovechándome de una publicación de Valencia Tech en la que se realizaba un listado completo de juegos que ofrece GCompris he empezado una serie donde se describen con más detalles las actividades. Seguimos la serie con la subsección de «Vocabulario» en GCompris, la cual es la última de la sección de Lenguaje.

Vocabulario en GCompris – A fondo @g_compris (14)

Para poder tener claro lo que hacen las aplicaciones de GCompris he pensado hacer una revisión a su enorme colección de juegos y actividades, realizando una simple captura de pantalla y una breve descripción.

Ya hemos descrito la secciones de:

Y ya es hora de hablar de la actividades de la sección «Palabras» de GCompris donde nos encontramos con 5 miniaplicaciones pensadas para enriquecer el dominio del lenguaje.

Asociación de elementos: en la parte izquierda de la pantalla tenemos unas imágenes, en el centro de la pantalla unos elementos y, evidentemente, lo que debemos hacer es asociarlas aunque no sean exactas.

Vocabulario en GCompris – A fondo @g_compris (14)

Colores: aprende los colores básicos.

La imagen tiene un atributo ALT vacío; su nombre de archivo es Vocabulario-en-GCompris-–-A-fondo-@g_compris-14_03.jpg

Categorización: selecciona una categoría y clasifica las palabras según su naturaleza.

La imagen tiene un atributo ALT vacío; su nombre de archivo es Vocabulario-en-GCompris-–-A-fondo-@g_compris-14_04.jpg

Enriquece tu vocabulario: selecciona una categoría y aprende nuevas palabras.

Vocabulario en GCompris – A fondo @g_compris (14)
La imagen tiene un atributo ALT vacío; su nombre de archivo es Vocabulario-en-GCompris-–-A-fondo-@g_compris-14_05.jpg

Colores avanzados: aprende los colores más complejos, pon a prueba tu agudeza distinguiendo matices.

Para poder tener claro lo que hacen las aplicaciones de GCompris he pensado hacer una revisión a su enorme colección de juegos y actividades, realizando una simple captura de pantalla y una breve descripción.

Ya hemos descrito la secciones de:

Y ya es hora de hablar de la actividades de la sección «Palabras» de GCompris donde nos encontramos con 5 miniaplicaciones pensadas para enriquecer el dominio del lenguaje.

Asociación de elementos: en la parte izquierda de la pantalla tenemos unas imágenes, en el centro de la pantalla unos elementos y, evidentemente, lo que debemos hacer es asociarlas aunque no sean exactas.

Vocabulario en GCompris – A fondo @g_compris (14)

Colores: aprende los colores básicos.

La imagen tiene un atributo ALT vacío; su nombre de archivo es Vocabulario-en-GCompris-–-A-fondo-@g_compris-14_03.jpg

Categorización: selecciona una categoría y clasifica las palabras según su naturaleza.

La imagen tiene un atributo ALT vacío; su nombre de archivo es Vocabulario-en-GCompris-–-A-fondo-@g_compris-14_04.jpg

Enriquece tu vocabulario: selecciona una categoría y aprende nuevas palabras.

Vocabulario en GCompris – A fondo @g_compris (14)
La imagen tiene un atributo ALT vacío; su nombre de archivo es Vocabulario-en-GCompris-–-A-fondo-@g_compris-14_05.jpg

Colores avanzados: aprende los colores más complejos, pon a prueba tu agudeza distinguiendo matices.

Vocabulario en GCompris – A fondo @g_compris (14)
a silhouette of a person's head and shoulders, used as a default avatar

GSoC report: syslog-ng MacOS support

For the past couple of months, Yash Mathne has been working on testing syslog-ng on MacOS as a GSoC (Google Summer of Code) student. He worked both on x86 and on the freshly released ARM hardware. And we have some good news here to share: while there is still room for improvement, most of syslog-ng works perfectly well on MacOS.

Read my blog for some historical background and the GSoC report: https://www.syslog-ng.com/community/b/blog/posts/gsoc-report-syslog-ng-macos-support

a silhouette of a person's head and shoulders, used as a default avatar

What is coming in sudo 1.9.8?

Sudo development is at version 1.9.8 beta 3. There are two major new features: sudo can intercept sub-commands and log sub-commands. In this quick teaser I introduce you to log_subcmds. I hope it is interesting enough for you to test it out and provide feedback.

So, what is log_subcmds good for? There are many UNIX tools that can spawn external applications. You only see vi in the logs, but can you be sure without session recording that your admin only edits what he is supposed to? With log_subcmds you can see all the commands started from an application run through sudo. Or you can see all the commands started from a shell, even without session recording.

You can read the rest of my blog at https://blog.sudo.ws/posts/2021/08/what-is-coming-in-sudo-1.9.8/

the avatar of Efstathios Iosifidis

Απενεργοποίηση ήχου κάμερας κατά την λήψη screenshot

Camera

ΠΡΟΒΛΗΜΑ

Σε συνέχεια του άρθρου Ένωση πολλών εικόνων σε ένα .pdf, θα δουμε πως μπορούμε να απενεργοποιήσουμε τον ήχο κάμερας που κάνει ο υπολογιστής με το πάτημα του πλήκτρου PrtScr. Αν δεν βγάζετε πολλά στιγμιότυπα οθόνης, δεν θα σας πειράζει, αλλά αν τυχόν βγάζετε συχνά, θα δείτε ότι είναι ενοχλητικό.

ΛΥΣΗ

Όσο και να έψαξα κάποια ρύθμιση, δεν βρήκα κάτι. Η λύση δόθηκε με την «διαγραφή» του ήχου και αντικατάστασή του με ένα κενό ήχο. Πως γίνεται αυτό;

Για αρχή μετονομάστε τον ήχο για να το έχετε σε περίπτωση που θέλετε να τον επαναφέρετε. Αυτό γίνεται με την εντολή (μία γραμμή):
sudo mv /usr/share/sounds/freedesktop/stereo/camera-shutter.oga /usr/share/sounds/freedesktop/stereo/camera-shutter-backup.oga

Αντικαταστήστε το με ένα κενό ήχο (μία γραμμή).
sudo ffmpeg -f lavfi -i anullsrc -t 0.5 -c:a libvorbis /usr/share/sounds/freedesktop/stereo/camera-shutter.oga

Σε περίπτωση που θέλετε να επαναφέρετε τον ήχο της κάμερας, απλά δώστε την εντολή (μία γραμμή):
sudo mv /usr/share/sounds/freedesktop/stereo/camera-shutter-backup.oga /usr/share/sounds/freedesktop/stereo/camera-shutter.oga

Αν έχετε βρει κάποιον άλλο τρόπο, αφήστε τον στα σχόλια.
a silhouette of a person's head and shoulders, used as a default avatar

El comando yes de #GNU

Veamos qué puede hacer y cómo podemos utilizar el comando yes de las herramientas coreutils del sistema GNU

Las herramientas coreutils del sistema GNU, son las herramientas básicas de nuestro sistema a la hora de gestionarlo desde la línea de comandos.

En esta ocasión echaremos al comando yes, que puede parecer “una frikada” un poco inútil, pero ¿podremos utilizarlo para algo útil? Seguro que sí…

Este artículo es una adaptación de este artículo en inglés escrito por Anoop.

El comando yes por sí solo, al ejecutarlo sin más en una consola, imprime una serie interminable de letras y. Y eso es todo lo que hace… Ejecuta en tu terminal:

yes

Para detener esa imparable secuencia de “y” utiliza la combinación de teclas Ctrl+c ¿Y eso qué sentido tiene?

Esta herramienta fue diseñada en principio para responder afirmativamente (“y” o “yes”) de manera automática a scripts o programas interactivos que pidieran una respuesta del usuario para confirmar una acción.

Pero desde hace tiempo esa funcionalidad quedó anticuada, ya que se han incorporado opciones que fuerzan (-f o –force) que se haga una acción sin necesidad de pedir una confirmación por parte del usuario.

Podemos hacer que el comando rm pregunte una confirmación antes de borrar unos archivos con la opción -i:

rm -i *.txt

Pero también podemos hacer que el comando yes conteste a todo que sí por nosotros:

yes | rm -i *.txt

Vale, este es un caso tonto sin mucho sentido, pero ¿ves cómo lo podríamos utilizar en otros casos?

Pero el comando yes hace algo más. Puede imprimir en la pantalla una secuencia interminable de la frase que le pases como comando. Ejecuta ahora:

yes hola mundo!!!

El comando imprime sin fin la cadena pasada y un salto de línea. De nuevo para detener esa secuencia interminable deberemos hacerlo con Ctrl+c

Casos de uso del comando yes

¿Y para qué podemos utilizar este comando? En principio no parece que tenga mucha utilidad, pero puede servirnos como herramienta en algunos casos.

Podemos generar archivos de texto grandes para utilizarlos en otras tareas. Por ejemplo:

yes 1234 qwer asdf zxcv > archivo.txt

Puede crearnos en pocos segundos un archivo llamado archivo.txt de varios Megas o Gigas, hasta que pulsemos Ctrl-c para detener el proceso.

Pero quizás queremos generar un archivo de un número determinado de líneas, por ejemplo 1000:

yes 1234 qwert asdf zxcv | head -1000 > archivo.txt

También podemos utilizar el comando yes para poner a prueba la CPU de nuestro equipo creando una tarea que haga que el sistema “se estrese” para comprobar que los ventiladores funcionan y todo el sistema responde a esta carga de trabajo.

Abre tu monitor del sistema (htop por ejemplo) y ejecuta:

yes > /dev/null

Verás que la carga de las CPU’s de tu equipo se ponen a trabajar al 100%.

También podemos utilizar el comando yes para comprobar si ciertos comando funcionan correctamente con una entrada tan extensa de comandos.


Como ves el comando es muy sencillo y seguro que respondió a una necesidad de los desarrolladores en aquellos primeros días de la creación del sistema GNU o Unix…

¿Utilizas en alguna ocasión el comando yes? ¿Lo utilizas de una forma distinta a las presentadas aquí? Comparte tus experiencias en los comentarios.

the avatar of Kubic Project

Kubic with Kubernetes 1.22.1 released

Announcement

The Kubic Project is proud to announce that snapshot 20210901 has been released containing Kubernetes 1.22.1.

Release Notes are avaialble HERE.

Upgrade Steps

All newly deployed Kubic clusters will automatically be Kubernetes 1.22.1 from this point.

For existing clusters, please follow our new documentation our wiki HERE

Thanks and have a lot of fun!

The Kubic Team

a silhouette of a person's head and shoulders, used as a default avatar

Akademy 2022 busca sede ¡anímate y presenta una candidatura!

Ha aparecido la noticia del dot (blog de anuncios de KDE) y es que la reunión internacional de desarrolladores y simpatizantes de KDE, Akademy 2022 busca sede y creo que si tienes un buen equipo de trabajo y ganas de reunir a lo mejor de la Comunidad KDE y del Software Libre en general esta es tu oportunidad.

Akademy 2020 busca sede ¡anímate y presenta una candidatura!

El pasado miércoles 1 de septiembre fue anunciado que Akademy 2022 busca sede europea para celebrar su evento anual, pensando que para el año que viene ya no tengamos restricciones pandémicas (o al menos que sean compatibles con un evento presencial).

Akademy 2022 busca sede ¡anímate y presenta una candidatura!

Los requisitos se pueden encontrar en el siguiente dossier.

A modo de resumen:

  • El evento se celebrará en verano del hemisferio norte
  • Se necesita un recinto para unas 300 personas con salas auxiliares para las conferencias en paralelo (para unas 150 personas)
  • Las salas deben estar dotadas con proyectores, micrófonos, multitud de tomas de corriente y wifi o conexión de red (esto es deseable aunque no imprescindible).
  • La sede debe contar buena comunicación con un aeropuerto, con un buen servicio de transporte público, alojamiento económico (tipo albergues o hostels) y comida también económica (aunque no necesariamente rápida).
  • Además, para las sesiones de hacking se necesitan varias salas (de 6 a 10)para pequeños grupos de trabajo y una mayor para reuniones (para unas 300 personas)

Parece mucho, pero en realidad cualquier universidad que se precie debería poder ofrecer todas estas condiciones.

¿Qué es Akademy?

Para los que no lo sepan, Akademy es el evento de la Comunidad KDE que aúna en una gran conferencia todo tipo de simpatizantes de KDE como desarrolladores, diseñadores, usuarios, traductores, promotores. Allí se reunirán a lo largo de una semana para compartir charlas, cenas, ponencias, talleres y, en definitiva, para trabajar juntos.
Es una gran semana que sirve para unir más fuerte los lazos que unen nuestra Comunidad, así como para crear nuevos