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

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).

La carpeta oculta .Trash en dispositivos USB

Si trabajas con un dispositivo USB y usas GNU/Linux, quizás te hayas topado alguna vez con una carpeta oculta llamada .Trash-1000, .Trash-1001 o con algún nombre similar. Dentro de este directorio encontrarás un subdirectorio llamado files y otro llamado info. En la siguiente imagen puedes ver el contenido de la carpeta .Trash-1002 en mi dispositivo USB.

carpeta .Trash USB
carpeta .Trash USB

¿Qué es lo que contienen esas carpetas y por qué existen? Cuando borras algo de tu dispositivo USB usando el ratón o pulsando la tecla Suprimir, no lo estás borrando definitivamente: simplemente se guarda en la carpeta que te he mostrado anteriormente. De esta forma, puedes estar tranquilo de que, aunque borres algo importante, podrás recuperarlo si te arrepientes de tu decisión. La carpeta files contiene los archivos, y la carpeta info, la ruta que tenían los archivos en el USB antes de ser «borrados» y su fecha de eliminación.

Para eliminar definitivamente archivos dentro de la carpeta .Trash-????, debes eliminar el archivo que está dentro de la carpeta files y el de la carpeta info. Dentro de la carpeta files, el nombre del archivo es el mismo que cuando se eliminó y dentro de la carpeta info, se le ha añadido la extensión .trashinfo.

Puedes usar la instrucción rm para borrar los archivos de forma definitiva. Recomiendo usar rm -i archivos, si vas a borrar muchos archivos y quieres asegurarte de que no borras alguno que no deberías. También puedes borrar la carpeta .Trash-1002 (o como se llame en tu caso) con todo su contenido ejecutando la instrucción rm -r .Trash-1002 (cambia el nombre de la carpeta si es distinto al tuyo) sobre la raíz del dispositivo USB. También puedes pulsar Shift y Suprimir al mismo tiempo seleccionado el archivo que deseas eliminar (no sé si esto funcionará en cualquier distribución). Tranquilo, la carpeta se volverá a crear cuando borres cualquier otra cosa. Si quieres borrar solo un archivo, este script te servirá para eliminar los archivos de los subdirectorios de la carpeta .Trash-????, debes ejecutarlo ubicado en la raíz del dispositivo USB:

#!/bin/bash

echo "A continuación se muestra una lista con los archivos de la papelera del USB."
ls .Trash-1002/files
echo -en "Introduce el nombre del archivo que quieres borrar.\n>>> "
read file
#Si es un directorio, también borra todo su contenido.
rm -r ".Trash-1002/files/$file" ".Trash-1002/info/$file.trashinfo" && echo "Eliminación realizada con éxito."

Si tu carpeta .Trash-???? no tiene el mismo nombre que la mía debes cambiarlo en todo el script. A continuación, muestro una imagen con un ejemplo práctico:

Ejecución del script que borra el contenido de la papelera de un dispositivo USB.
Ejecución del script que borra el contenido de la papelera de un dispositivo USB.

Busca ayuda para Bash con la instrucción help

La instrucción help sirve para encontrar ayuda sobre las órdenes del shell definidas internamente. Si ejecutamos la instrucción help, podremos ver un resumen breve de las órdenes internas. A la instrucción help también podemos pasarle parámetros. Con help help podemos ver su uso.