Publi

Vicio con el teclado, comandos, manías y coletillas que nos salen sin pensar

photo-1445605081472-9788fb3bc02f

Como apasionado de la consola, soy una de esas personas que tarda menos en escribir un comando y pulsar enter que en cargar una interfaz gráfica, click, click, control, clic, arrastrar, soltar, click… y el tiempo es muy valioso.
Eso sí, cuando empiezas a pegarle al teclado y escribir comandos en la terminal, parece que todo va más lento, una simple coma, o un espacio es capaz de fastidiarlo todo, pero cuando llevas mucho tiempo, lo tienes todo tan automatizado que te sale el alma.

Anécdota (o batallita)

En la Universidad, tenía una asignatura de laboratorio, y tras cada sesión, teníamos que copiar una serie de archivos a una carpeta de red, por ese motivo, el profesor avisaba 5 minutos antes de terminar. El sistema era Microsoft Windows, y todo el mundo optaba por abrir las carpetas gráficamente y arrastrar; eran varias carpetas y no todos los archivos de todas las carpetas, por lo que muchos entraban, seleccionaban, copiaban, salían, entraban en otra carpeta…
Yo, ejecutaba varios comandos desde consola, que terminé metiendo en un script, y así me iba antes.

Dejando a un lado estas historias, cada usuario, va creando una base mental de comandos que, a menudo, van acompañados de argumentos. El objetivo es no pensar demasiado y dejar que tus dedos tecleen.

Por ello, no pretendo hacer un tutorial de uso de comandos (porque no cabría todo aquí), pero sí una visión personal de lo que más suelo teclear y cómo lo hago y, es curioso ver que los argumentos siempre van en el mismo orden. Del mismo modo, me gustaría que dejarais algún comentario con algún comando curioso que os salga del alma, o de otras alternativas que soléis utilizar.

¿Por qué no uso alias

Porque no estoy siempre en mi ordenador, a menudo suelo entrar en varios servidores, y no quiero acostumbrarme a utilizar los comandos con los alias de mi equipo, que soy muy despistado y me confundo cuando esté en otra máquina (me ha pasado). También porque hay muchas otras veces que no quiero o puedo utilizar estos argumentos, no son generales, sólo comunes y no quiero tener problemas cuando vaya a usarlos para otra cosa.

ls

Yo creo que ls, junto con cd es de lo más usado del mundo, ya que es una de las tareas más básicas. Pero casi siempre que lo ejecuto lo hago con:

ls -latr

Porque me gusta listar todos los archivos, ordenarlos por tiempo dejando en última posición al más nuevo.
También suelo hacer

$ ls -latrh

Cuando quiero que los tamaños de archivos estén en formato humano o,

$ ls -laSr

Cuando quiero ordenarlos por tamaño de archivo.

ps

En el último post ya hablé de ps, y casi siempre lo que suelo hacer es:

$ ps ax

Para que muestre todos los procesos, luego ya los filtraré con grep…

rsync

Otro viejo conocido, aunque casi casi siempre que lo uso, lo hago con los siguientes argumentos:

$ rsync -avhP [origen] [destino]

De esta forma copio archivos de forma recursiva, incluyo enlaces, mantengo permisos, marcas de tiempo y algunas cosas más, muestro lo que se está copiando, los tamaños son en formato humano.

rm

Esto es muy peligroso, y alguna vez, este vicio me ha jugado una mala pasada, y es que casi siempre que pongo este comando suelo poner:

$ rm -rf [archivos, directorios…]

Intenté acostumbrarme a poner una i en medio, algo así como:

$ rm -rif [archivos, directorios…]

al menos, por precaución, aunque me acabé hartando y no lo hice.

du

Esta herramienta nos muestra el uso en disco de una carpeta, por ejemplo. Casi siempre lo suelo utilizar para saber el tamaño de un directorio y de todo lo que hay dentro, es decir, sólo quiero un número y no quiero desgloses. Además, me gusta el tamaño en formato humano, que no estoy aquí para hacer cuentas…

$ du -sh [carpeta]

df

Del mismo modo que otros comandos, y sobre todo con éste, a nadie nos apetece hacer cuentas para ver los tamaños de un modo inteligible:

$ df -h

pwgen

Un simple programa para generar contraseñas, temporales o no, para muchos sistemas. Si lo ejecutas tal cual te da buenas contraseñas, pero suelo utilizarlo de la siguiente forma:

$ pwgen -sy 12

Así me genera una colección de contraseñas de 12 caracteres, difíciles de memorizar y además incluyendo símbolos. Perfecto para contraseñas de MySQL, OTP, y cosas así, aunque alguna que otra sí que tengo aprendida de memoria.

tar

Este comando depende, mis variables más comunes en este caso son: ¿comprimir? ¿descomprimir? ¿gz?¿bz2?

Por ello, para cada combinación tengo un comando (y todos muy parecidos):

Comprimir, bzip2

$ tar cvjf [archivo de destino] [directorios, archivos… a comprimir]

Descomprimir, bzip2

$ tar xvjf [archivo de destino] [directorios, archivos… a comprimir]

Comprimir, gzip

$ tar cvzf [archivo de destino] [directorios, archivos… a comprimir]

Descomprimir, gzip

$ tar xvzf [archivo de destino] [directorios, archivos… a comprimir]

Como veis, todo queda muy sistemático, la v y la f no se mueven, la primera letra puede ser c o x y la penúltima j o z.

Opcionalmente, suelo poner a veces una p delante de la f para conservar los permisos de los archivos, sólo a veces.

grep

Su uso es sencillo cuando queremos filtrar la salida de un comando anterior (por ejemplo lsof):

lsof | grep /dev/sdc2

Pero cuando queremos buscar un patrón dentro de un archivo también nos vale este comando, aunque muchas veces, aunque grep nos dice que ha encontrado el patrón, seguimos sin la más remota idea de dónde está, para ello suelo hacer:

$ grep -nC3 ‘patron’ [archivo]

De esta forma, grep me devolverá 3 filas anteriores, 3 filas posteriores y el número de línea. Opcionalmente, si quiero que grep no sea sensible a mayúsculas minúsculas, pongo una i detrás de la n… -niC:

$ grep -niC3 ‘patron’ [archivo]

egrep

Soy muy dado a perder las cosas y luego no saber dónde están, por eso, suelo usar este comando. Con él busco un contenido dentro de una serie de archivos y directorios, casi siempre suelo hacerlo así:

$ egrep -Rn ‘texto_que_busco’ *

Así, busco en todos los archivos y carpetas de forma recursiva partiendo del directorio actual, además, cuando lo encuentro, muestro también el número de línea donde se ha encontrado lo que busco.
¿Sólo busco archivos con una extensión determinada? (antes del include van dos signos -)

$ egrep -Rn ‘texto_que_busco’ –include=’*.cpp’ –include=’*.hpp’ *

También podemos poner una i delante de la n, y parece que dice Rin… con el mismo propósito de antes, no hacer la búsqueda sensible a mayúsculas y minúsculas.

netstat

Un programa que nos sirve para mostrar conexiones de red. Casi siempre, lo que quiero hacer es mostrar las conexiones TCP (t), mostrarlas todas, incluso las que están sólo escuchando (a), no resolver los hosts (n), con esto el comando se ejecuta mucho más rápido, dando sólo las direcciones IP, y mostrar los procesos que originan dicha conexión (p), para este último argumento, ejecutar el comando como root tiene más gracia.

$ netstat -tanp

arp

Como el anterior, si resolvemos los nombres de los hosts, tardaremos mucho, y muchas veces no los necesitamos, para ello:

$ arp -n

firefox

¡Hombre! Firefox también se ejecuta desde consola, si quieres, para ello suelo hacer:

$ firefox -ProfileManager –no-remote

Así puedo cargar varios perfiles diferentes de Firefox al mismo tiempo en el sistema.

Tu turno

¿Tienes algún comando curioso que casi siempre ejecutes con los mismos argumentos? ¿Alguna manía con la consola? ¿Reglas mnemotécnicas nemotécnica para acordarte de los parámetros de algún programa? ¡Deja tu comentario!

Foto principal: Web Donut

También podría interesarte....

There are 13 comments left Ir a comentario

  1. Pingback: Vicio con el teclado, comandos, manías y coletillas que nos salen sin pensar | PlanetaLibre /

  2. Julio /
    Usando Google Chrome Google Chrome 50.0.2661.89 en Android Android 6.0.1

    netstat -puta
    El otro día lo tuve que deletrear a otra persona (mi jefe) y lo tuve que deletrear pe u te a 🙂

    Saludos!

    1. Gaspar Fernández / Post Author
      Usando Mozilla Firefox Mozilla Firefox 46.0 en Ubuntu Linux Ubuntu Linux

      Bueno, si estamos en ese plan… netstat también acepta -putona (que es más grande)

      Además, tenemos
      $ ls -bitch
      $ ls -fuck
      (en realidad ls tiene tantas opciones que acepta de todo)
      $ rsync -pEne ‘ssh’ [origen] [destino]

      Bueno, bueno, que se me desmadra el post y google es capaz de penalizarme 🙂

  3. victorhck /
    Usando Google Chrome Google Chrome 43.2357.125 en Mac OS X Mac OS X 10.10.1

    que bueno!! 😉

  4. victorhck /
    Usando Mozilla Mozilla 11.0 en Windows Windows NT

    Por cierto información de sistema operativo y navegador «spoonfeados» :þ

    1. Gaspar Fernández / Post Author
      Usando Mozilla Firefox Mozilla Firefox 46.0 en Ubuntu Linux Ubuntu Linux

      Mientras no me pongas un user agent tipo «() { :; }; /bin/eject» me vale. Aunque molaría ver un UserAgent que tenga de SO: «ZX Spectrum» o alguno de esos… 😛

  5. Pingback: El 2016 para Poesía Binaria. Estadísticas, agradecimientos, redes y SQL. Y sólo es el principio – Poesía Binaria /

  6. Romu /
    Usando Mozilla Firefox Mozilla Firefox 51.0 en Ubuntu Linux Ubuntu Linux

    Para evitar disgustos con el comando rm, yo suelo poner este alias:
    alias rm=’rm -i’
    para que así, por lo menos, que pregunte antes de borrar nada.

    1. Gaspar Fernández / Post Author
      Usando Mozilla Firefox Mozilla Firefox 51.0 en Ubuntu Linux Ubuntu Linux

      Hola Romu !!

      Ese alias está muy bien. Es más, alguna distribución (al menos en el pasado) lo traía por defecto. ¡¡ Pero es un arma de doble filo !! (más psicológico que de otra cosa)

      Cuando estás en tu ordenador, tienes el alias y tienes red (si borras algo, te pregunta, y puedes cancelar el borrado). Aunque puede que si has borrado muchas veces te acostumbres a decirle que sí sin pensar (te lo digo porque me ha pasado).

      Y lo peor, cuando no estás en tu ordenador, seguramente no tengas ese alias, y puedes tener un disgusto 😛

Leave a Reply