Creación de archivos de autocompletado en Bash

El autocompletado permite predecir lo que el usuario va a escribir. Muchos programas soportan el autocompletado. Por ejemplo, si escribimos ls -- y pulsamos Tabulador en una terminal con Bash u otra shell similar, nos aparecen todas las opciones disponibles que comienzan con --. Si escribimos ls --au y pulsamos Tabulador, se autocompleta el parámetro --author porque es el único que comienza por --au. En el siguiente vídeo se puede ver en acción esta funcionalidad. Continúa leyendo Creación de archivos de autocompletado en Bash

Resumen de atajos de teclado para la Terminal (Bash)

Este resumen lo he elaborado a partir del manual de referencia de Bash.

C-b
Se mueve atrás un carácter.
C-f
Se mueve adelante un carácter.
SUPR o Retroceso
Borra el carácter a la izquierda del cursor.
C-d
Borra el carácter debajo del cursor.
Caracteres imprimibles
Inserta un carácter en la posición del cursor.
C-_ o C-u
Deshace la última instrucción de edición. Puedes desahacer hasta dejar la línea vacía.
C-a
Se mueve al principio de la línea.
C-e
Se mueve al final de la línea.
M-f
Se mueve una palabra adelante, donde la palabra está compuesta de letras y números.
M-b
Se mueve atrás una palabra
C-l
Limpia la pantalla, volviendo a imprimir la línea actual arriba.
C-k
Mata (matar texto significa borrar texto de la línea, pero guardándolo para su uso posterior) el texto desde la posición actual del cursor hasta el final de la línea.
M-d
Mata desde la posición actual del cursor hasta el final de la línea
M-d
Mata hasta el final de una palabra.
M-SUPR
Mata desde el cursor hasta el final de la palabra actual, o, si entre palabras, hasta el principio de la palabra anterior. Los límites de las palabras son los mismos que usa M-f
M-DEL
Mata desde la posición del cursor hasta el inicio de la palabra actual, o, si entre palabras, hasta el principio de la palabra anterior. Los límites de las palabras son los mismos que los usados por M-b
C-w
Mata desde el cursor hasta el espacio en blanco anterior. Esto es diferente que M-SUPR porque los límites de las palabras difieren.
C-y
Pega el texto recientemente matado de nuevo al buffer del donde se encuentra el cursor.
M-y
Rota el kill-ring, y pega lo que está al tope. Solo puedes hacer esto si la instrucción anterior es C-y o M-y

Esteganografía sencilla

¿Alguna vez has querido ocultar un mensaje o un archivo en una imagen? Se puede hacer muy fácilmente en menos de treinta segundos.

Instrucciones para ocultar texto en una imagen (demostración práctica)
Ocultando texto en una imagen

En la imagen de arriba lo veis. Realmente, solo hace falta usar la instrucción echo 'Tu mensaje' >> tu_imagen, lo demás es solo para demostraros que funciona y para enseñaros a después el mensaje. La imagen se puede abrir posteriormente sin problema; tiene la misma apariencia. La única diferencia es que ocupa más espacio. En el ejemplo que os he mostrado, la imagen ocupa 15 bytes más que antes, después de haber escrito el mensaje.

¿No entendéis todo el código que he escrito? Tranquilos, ahora lo explico. file favicon.png, me dice el tipo del archivo. ls -l muestra información detallada de todos los archivos del directorio en el que me encuentro. Como solo hay uno, solo aparece la imagen. El número 2588 que aparece tras ejecutarlo es tamaño en bytes de la imagen. Con ls -lh puedo ver el tamaño en un formato más legible, en kilobytes en vez de en bytes. Como solo me interesa el tamaño, paso ls -lh a cut -d" " -f5 por una tubería para que solo me aparezca la columna 5, cada columna está separada por un espacio (" "). Por último, leo el mensaje oculto con strings, que extrae todos los caracteres alfanuméricos encontrados en la imagen.

Si vuelvo a ejecutar la instrucción file favicon.png, encontraré el mismo formato que antes: PNG.

Podemos aplicar este método no solo a texto, sino también a archivos de distinto tipo.

Screenshot from 2016-07-26 23-49-26

¿Cómo montar un dispositivo USB desde la Terminal?

Como todo en GNU/Linux es un fichero, necesitamos una ubicación en el sistema de ficheros para nuestro dispositivo USB. Normalmente se suelen crear en /media, /mnt o en un directorio similiar diseñado para tal propósito. En el sistema operativo que yo utilizo (Trisquel), se utiliza la carpeta /media. La ubicación para mi USB la creo con esta instrucción: sudo mkdir /media/usb.

Una vez creado el punto de montaje, necesitamos decirle al sistema operativo el dispositivo que queremos montar. Con la instrucción lsblk podemos listar los dispositivos disponibles. Ahora solo nos queda montar con la instrucción mount el que queramos en el directorio que hemos creado: sudo mount /dev/sdc1 /media/usb (en mi caso). Cuando esté desmontado el dispositivo USB, el directorio donde lo hemos montado quedará vacío. Puedes borrar el directorio creado con la instrucción sudo rmdir /media/usb.

Recargar la configuración de Bash (.bashrc)

Cuando modificas el archivo de configuración de Bash (~/.bashrc), debes cerrar e iniciar una nueva sesión para que se hagan efectivos los cambios. También puedes utilizar la instrucción source ~/.bashrc o . ~/.bashrc (son equivalentes).