Encuentra el comando que estás buscando

(2 comentarios)

Entrada para novatos.

Imaginemos que no supiéramos cómo renombrar un archivo o directorio en la consola; podríamos buscar el comando que necesitamos en Google, pero hay una forma mucho mejor, y que no requiere de tener conexión a Internet: el comando apropos.

apropos busca el texto que le indiques en las descripciones de las páginas man de los comandos instalados. En este ejemplo en concreto podríamos escribir apropos rename (rename=renombrar) con lo que obtendríamos:

zootropo@Genua:~$ apropos rename
btrename (1) – change the suggested filename inside a bittorrent file
btrename.bittorrent (1) – change the suggested filename inside a bittorrent file
dpkg-name (1) – rename Debian packages to full package names
mv (1) – move (rename) files
prename (1) – renames multiple files
rename (1) – renames multiple files
XStoreName (3) – set or read a window’s WM_NAME property
XStoreNamedColor (3) – set colors

Como veis el comando que buscábamos es mv.

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