Instalar Latex en Ubuntu

Para instalar LaTeX en tu Ubuntu, debes de instalar los siguientes paquetes:

sudo apt-get install texlive-latex-base

si necesitáis más paquetes para LaTeX como ifpdf, podéis instalarlo así:

sudo apt-get install texlive-latex-recommended

Para instalar la fuente marvosym tienes que instalar lo siguiente:

sudo apt-get install ttf-marvosym

Para instalar el paquete ldesc2e.sty, primero nos debemos descargar el fichero, y luego guardarlo en el siguiente directorio:

/usr/share/texmf-texlive/tex/latex/ldesc2e

/usr/share/texlive/texmf/tex/latex/ldesc2e

para que se guarden los cambios, ejecutaremos

sudo texhash

Manual para instalación

Y para posteriormente crear ficheros en PDF, te puede ayudar este documento.

Comprimir Ficheros en Linux

Hay varias formas de comprimir ficheros en Linux.

La que yo uso normalmente es la siguiente, ya que sirve tanto para comprimir ficheros, como directorios:

Ficheros .tar.gz

  • Comprimir: # tar -czf archivo.tar.gz ficheros
  • Descomprimir: # tar -xvzf archivo.tar.gz
  • Ver contenido: # tar -tzf archivo.tar.gz

Instalar PHP PEAR en Linux

PHP Pear, es un framework, que contiene un montón de librerías con código en PHP, y que puede ser muy útil para ciertas necesidades de funciones en PHP.

En este caso, voy a explicar cómo instalarlo desde la línea de comandos.

Primero descargamos el paquete PEAR.

El paquete se descarga así:

wget http://pear.php.net/get/PEAR-1.4.3.tar

Una vez descargado, procedemos a descomprimirlo:

tar xvf PEAR-1.4.3.tar

Ya está instalado. Ahora debemos de incluir las siguientes líneas que indican la ruta donde se ha instalado PEAR, en los ficheros que usen las librerías de PEAR.

$RUTA = "/home/pepito/pear";
ini_set("include_path",ini_get("include_path").":".$RUTA);

¡Y ya está!

Ahora si quisieramos usar un generador de hojas excel, existe un pequeño tutorial en español.

Enviar ficheros comprimidos con netcat

Enviar un fichero entre dos máquinas:

$ netcat -l -p 5555 > salida.txt
$ netcat remote.host 5555 -q 0 < entrada.txt

Enviar un fichero comprimido entre dos máquinas:

$ nc -l -p 5555 | gunzip > salida.txt
$ cat entrada.txt | gzip | nc remote.host 5555 -q 0

Enviar un directorio comprimido entre dos máquinas:

$ netcat -l -p 3333 -v > backup.tgz
$ tar -czvpf - /path/to/files | netcat -q 0 remote.host 3333

Más info.

Calcular tiempo de ejecución de un comando en Bash Shell

El otro día estaba interesado en calcular el tiempo que tardaba en ejecutarse un comando, y esta es la forma que encontré de hacerlo:

#!/bin/bash
inicio_ns=`date +%s%N`
inicio=`date +%s`
sleep 5 # el comando
fin_ns=`date +%s%N`
fin=`date +%s`
let total_ns=$fin_ns-$inicio_ns
let total=$fin-$inicio
echo "ha tardado: -$total_ns- nanosegudos, -$total- segundos"

Como se puede comprobar, incluso se llega a tener una precisión de nanosegundos.

Fuente

Ejecución de aplicaciones remotas a través de SSH

Puede interesarnos ejecutar aplicaciones remotas en otras máquinas a través de SSH, y si ya lo planteamos como una tarea automática, más.

Aquí dejo un ejemplo de cómo se podría hace con SSH.

$ ssh -i /home/kardinal/.ssh/id_rsa_mon -l kardinal plan01.wnet "/aplicaciones/launcher/script.sh"

donde…

/home/kardinal/.ssh/id_rsa_mon es un fichero que contiene la clave pública del usuario.
kardinal es el usuario.
plan01.wnet es el host.
/aplicaciones/launcher/script.sh es la ruta de la aplicación en el host remoto.

Listar SÓLO directorios en Bash

Hoy haciendo un Shell Script me ha surgido la necesidad de hacer un listado de los directorios (y no ficheros) que hay en una determinada ruta.

Al parecer el comando ls no dispone de esta utilidad… cosa que me parece un poco extraña, pero he encontrado un modo de hacerlo con find.

$ find . -maxdepth 1 -type d

Incluso, para más comodidad te puedes hacer un alias:

$ alias lsdirs='find . -maxdepth 1 -type d'