Trucos. Brujerías en la Línea de Comandos
TRUCOS
Trucos. Brujerías en la Línea de Comandos
2019-02-24
Por
Tamariz el de la Perdiz

Una vez más aquí os traemos la sección con los mejores trucos para vuestros sistemas GNU/Linux. Los secretos de los hackers al alcance de todos!

Activar NAT

Este comando nos permite utilizar nuestra máquina para permitir el acceso a otra red (típicamente Internet) desde otras máquinas que tienen conexión a la nuestra pero no más allá. Un caso típico es permitir el acceso a internet de una tarjeta de desarrollo conectada a través de USB a nuestro ordenador.

$ sudo iptables -A POSTROUTING -t nat -j MASQUERADE
$ sudo echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward > /dev/null

Ya hablaremos largo y tendido sobre iptables.

Redirección en Bash

Esto seguro que todos lo sabéis, pero a mi se me olvida continuamente, así que aquí os dejo las redirecciones típicas para que las tengáis todas juntas en vuestro cuaderno de trucos OR.

comando 2>   fichero  (stderr de comando a fichero)
comando 1>&2 fichero  (stdout al mismo lugar que stderr... fichero)
comando 2>&1          (stderr al mismo lugar que stdout... consola)
comando &>   fichero  (toda la salida de comando a fichero)

comando1 |  comando2  (stdout de comando1 a stdin de comando2)
comando1 |& comando2  (stderr de comando1 a stdin de comando2)

Algunos flags de tar

La utilidad tar es super potente y tiene, literalmente, cientos de flags. Aquí os dejo algunos que uso a menudo.

Excluir ficheros del sistema de control de versions (git, svn,..)

tar czvzf file.tgz ./my_project --exclude-vcs

Excluir un directorios

tar czvf file.tgz ./my_project --exclude-tag-all=PARA_IGNORAR

Ahora tendremos que crear un fichero llamado PARA_IGNORAR en los directorios que queramos excluir de nuestro tar. Para crear el fichero podéis usar touch (touch directorio_a_ignorar/PARA_IGNORAR)

No solo de gzip vive el hombre

tar xJvf file.tar.xz    # Descomprime fichero .xz
tar xjvf file.tar.bzip2 # Descomprime fichero .bzip2
tar xv --lzma f file.tar.lzma # Descomprime fichero .lzma
tar xv --lzop f file.tar.lzma # Descomprime fichero .lzop
funzip file.tar.zip | tar xv

Usa grep para resaltar lo que te interesa

Muchas veces, sobre todo mientras depuro programas, tengo que observar el log de la aplicación, pero solo estoy interesado en ciertas líneas, las que tienen que ver con la parte que estoy depurando. El siguiente truco nos permite resaltar las líneas que nos interesan de un log en tiempo real.

tail -f file.log | egrep --color 'key1\:|key2\:|$'

El comando anterior, mostrará todo el contenido del fichero como haría el comando tail, pero coloreará las líneas que contengan key1 o key2. Si, podéis añadir tantas palabras clave como queráis.

Convertir fecha UNIX

Muchos logs, almacenan el sello temporal de cada línea utilizando la fecha UNIX. Esa que es un número muy largo. De hecho es el número de segundos transcurridos desde el epoch: El Jueves 1 de Enero de 1972 a media noche.

Podemos convertir esos número en fechas normales de la siguiente forma:

date -d @1550918397
echo 1550918397 | gawk '{print strftime("%c", $0)}'

Para obtener el tiempo epoch podéis usar:

date '+%s'  # Fecha y hora actual 
date '+%s' -d "23/02/2019 11:41"

Dependiendo de como tengáis configurado vuestros LOCALES, quizás tengáis que cambiar día y mes en la expresión anterior.

Header Image Credits: Paige Cody

No seáis tímidos

Mandadnos vuestros trucos para incluirlos en esta sección. No olvidéis incluir vuestra información de contacto (redes sociales, blogs, etc...)


SOBRE Tamariz el de la Perdiz
Tamaríz es un mago de la línea de comandos, un ilusionista de las pipes, un nigromante guardián de las ancestrales herramientas olvidadas por los mortales. Vamos, el tío de la sección de trucos.