Sugerencias en bash pulsando tab una sola vez

(11 comentarios)

Supongamos que estamos en la consola y queremos dirigirnos a un directorio misArchivos. En lugar de escribir

cd misArchivos

podríamos escribir sólo cd m y pulsar la tecla Tab, con lo que bash comprobaría los nombres de los directorios y si sólo hubiera uno que comenzara con m, completaría automáticamente el nombre.

Si hubiera varios directorios que comenzaran por m, tendríamos que escribir otra letra y volver a pulsar Tab, y así sucesivamente. O bien podríamos pulsar dos veces la tecla Tab para que nos mostrara una lista de todos los directorios que comenzaran por lo que hemos escrito.

Si añadimos la línea

set show-all-if-ambiguous on

al .bashrc

gedit ~/.bashrc

bastaría con que pulsáramos una vez Tab para que mostrara la lista de posibilidades si hubiera más de una posibilidad, lo que es más cómodo.

Cómo hacer que la consola nos muestre una cita cada vez que la abrimos

(9 comentarios)

fortune es un programa muy famoso y antiguo en Linux y otros sistemas operativos relacionados con Unix y que no hace más que mostrar un mensaje aleatorio de su base de datos.

Hacer que se muestre una cita cada vez que abrimos una consola es tan sencillo como ejecutar fortune al iniciar nuestra shell, o lo que es lo mismo, agregar el comando al .bashrc si usamos bash.

Editamos el .bashrc

gedit ~/.bashrc

[Pulsa para continuar]

Los 10 comandos linux que más utilizas

(92 comentarios)

Si introducís esta orden en la línea de comandos os mostrará una lista ordenada de los comandos que más utilizáis, con el número de veces que se utilizó cada uno (visto en la bitácora de un desarrollador de Debian ligeramente paranoico).

history|awk ‘{print $2}’|awk ‘BEGIN {FS=”|”} {print $1}’|sort|uniq -c|sort -rn|head -10

history muestra una lista de todos los comandos que hemos ejecutado recientemente (utilizado por bash y otras shells para mostrar el comando anterior y posterior al pulsar las teclas de flecha arriba y flecha abajo, al usar !! para ejecutar el comando anterior, etc) siendo los que tienen los números más pequeños los más antiguos. Se utiliza awk para quedarnos con el comando en sí, sin argumentos ni flags. Utiliza sort para ordenar la lista de comandos alfabéticamente. Después uniq, que dada una lista en la que tenemos n líneas idénticas sucesivas deja sólo una de las líneas, añadiendo el número de líneas iguales que había antes (flag -c) al comienzo de la línea. Se vuelve a ordenar la lista de forma que la ordenación sea por el número de veces que se ejecutó el comando, que ahora es la primera cadena de la línea (-n para que sea ordenación numérica), y de mayor a menor (-r, reversed). Por último, se utiliza head para mostrar las 10 (-10) primeras líneas.

Este es mi resultado:

224  sudo
184  ls
108  cd
58   aptitude
49   gedit
37   rm
36   man
27   exit
19   javac
16   python

A vosotros seguramente os salgan números más pequeños porque por defecto bash sólo guarda los últimos 500. Para que guardara 1000 modificaríamos el .bashrc poniendo la variable HISTSIZE a 1000:

echo “export HISTSIZE=1000” >> ~/.bashrc

Y esto es todo. Si queréis convertir esto en un meme que me reporte un gritón de enlaces, me parece bien.

Atajos de teclado en bash

(13 comentarios)

Control + L: Borra la pantalla
Control + D: Cierra el terminal / logout en modo texto
Control + U: Borra el texto que esté a la izquierda del cursor
Control + K: Borra el texto que esté a la derecha del cursor
Control + Z: Para (se puede volver a iniciar) el programa en ejecución. Con el comando fg y el número que aparece al parar el proceso se vuelve a iniciar el proceso; con el comando bg se vuelve a iniciar pero en background.
Control + C: Aborta el programa en ejecución

Izquierda: Mueve el cursor un carácter a la izquierda
Control + Izquierda: Mueve el cursor una palabra a la izquierda
Derecha: Mueve el cursor un carácter a la derecha
Control + Derecha: Mueve el cursor una palabra a la derecha
Control + A: Sitúa el cursor al inicio de la línea
Control + E: Sitúa el cursor al final de la línea

Arriba: Muestra el último comando ejecutado
Abajo: Muestra el siguiente comando ejecutado