viernes, 13 de enero de 2017

Convertir un archivo epub a mobi (Kindle) desde Linux

kindle
Para poder leer un archivo epub en un Kindle, hay que convertir a formato mobi. Vamos a ver cómo hacerlo en Linux desde la línea de comandos:

Instalar Calibre (si estamos en Archlinux o derivadas):

yaour -S calibre

Convertir el archivo epub en mobi:
ebook-convert archivo.epub .mobi

Con esto obtendríamos el archivo .mobi que podemos pasar a nuestro Kindle y disfrutar de una buena lectura.




jueves, 12 de enero de 2017

Uso básico de Git y Github

git
Git es un gran sistema de control de versiones creado por Linus Torvalds y uno de los más utilizados en la actualidad. Pasemos a ver cómo utilizar sus funciones más básicas:

Instalar Git (en distribuciones Arch Linux y derivadas):

sudo pacman -S git

Configurar el nombre de usuario e email:
git config --global user.name "(usuario)"
git config --global user.email "(email)"

Movernos al directorio del proyecto que queremos gestionar mediante Git, por ejemplo:
cd ~/miproyecto

Inicializar el proyecto:
git init miproyecto

Añadir todos los archivos del directorio a Git:
git add .

Hacer un commit (la opción -m nos permite una pequeña descripción del commit):
git commit -m "mensaje"

Comprobar los cambios hechos desde el último commit:
git status

Comparar los cambios preparados con el último commit:
git diff

Ver los cambios que hay entre los distintos commits:
git whatchange

Los siguientes comandos son para el uso de Github, que es el repositorio de Git en la “nube”, donde poder subir y alojar nuestros proyectos que tenemos en local.

Conectar con el repositorio remoto en Github (tendremos que registrarnos previamente en github.com):
git remote add origin https://github.com/xxx/xxx.git

Empujar el contenido del repositorio local hacia el repositorio remoto (nota: “origin” es la rama local y “master” es la rama remota, la que tenemos en Github):
git push origin master

Se nos pedirá introducir las credenciales de inicio de sesión (nombre de usuario y contraseña).

Git permite otras muchas cosas como la creación de ramas, forks, etc, … pero eso daría para otro post. Espero que este post sirva como introducción a esta fantástica herramienta.




miércoles, 11 de enero de 2017

Uso de archivos temporales en Linux

terminal
Una herramienta muy interesante a la hora de hacer nuestros scripts son los archivos temporales. Aunque podamos crearlos nosotros de forma “manual”, en este post veremos cómo hacerlo de forma más segura, utilizando la función mktemp. Creo que la forma más fácil de verlo es con un ejemplo:

#!/bin/bash
tmpfile1=$(mktemp /tmp/pruebaTemporal.XXXXXX)   # Crear el archivo temporal
sed -i 's/Pepe/Jose/g' $1 > "$tmpfile1" # Ejecutar la orden y guardar en archivo temporal
cat $tmpfile1 > $1  # Guardar el archivo temporal en el archivo de entrada
rm $tmpfile1 # Eliminar el archivo temporal

Siguiendo los comentarios del script podéis entender lo que se hace en cada línea. Con archivo de entrada me refiero al archivo que pasamos como parámetro de entrada del script. En la primera línea utilizamos el comando mktemp, que nos permite crear un archivo temporal cuyo nombre será único y cumplirá con la plantilla dada, pruebaTemporal.XXXXXX . Es decir, se sustituirán las ‘X’ por números y letras. Además, el archivo tendrá permisos de lectura y escritura asignados únicamente a su propietario (a no ser que usemos el flag -u). Este mecanismo permite el uso de archivos temporales en scripts de forma segura y evita posibles ataques, por ejemplo de denegación de servicio, ya que el nombre del archivo no será tan previsible para los posibles atacantes. Si queréis tener más información sobre ésto, recomiendo la lectura del enlace indicado en “Fuentes”.

Fuentes:

https://www.mktemp.org/manual.html




martes, 10 de enero de 2017

Sustituir los espacios en blanco en el nombre de un archivo (Linux)

terminal
Los espacios en blanco en el nombre de un archivo son un fastidio, sobretodo si estamos utilizando utilizando un script u orden Linux que tengan que trabajar con dichos archivos. Por ello, no es recomendable que el nombre del archivo contenga dichos espacios. Hoy veremos una orden sencilla para quitar (en este caso sustituir por el caracter _) esos espacios de todos los archivos del directorio actual. Veamos el comando que utilizaremos para ello:

for f in *\ *; do mv "$f" "${f// /_}"; done

Utilizamos un for para recorrer todos los archivos del directorio actual que renombraremos con mv. En ${f// /_} determinamos el patrón de sustitución, en este caso sustituimos el espacio en blanco por _ . Por suspuesto, podemos cambiar este patrón según nuestras necesidades.

Espero que sea de utilidad y para cualquier duda podéis utilizar los comentarios.


Fuentes:

http://stackoverflow.com/questions/2709458/bash-script-to-replace-spaces-in-file-names




Felinfo: Java, Linux, Virtualización. Open Source.  ©Template Blogger Green by Dicas Blogger .

TOPO