Variables de entorno - Linux

En esta entrada veremos qué son las variables de entorno y cómo podemos modificarlas.



Lo primero de todo: ¿Qué son las variables de entorno?

Variable de entorno: es un identificador asociado a un espacio de memoria que contiene información dinámica (variable) y cuyos valores afectan a los procesos que se ejecutan en un ordenador.

Vale, y ahora, ¿cómo sé qué variables de entorno hay en mi sistema?

Abrimos un terminal y ejecutamos el comando printenv. Este comando nos muestra todas las variables de entorno en nuestro sistema, así como su valor.

Algunos ejemplos:
  • PWD: Print Working Directory. Contiene cuál es el directorio actual (comando pwd).
  • HOME: Contiene la ruta a nuestro directorio home.
  • USERNAME: Contiene cuál es nuestro nombre de usuario.
  • PATH: Contiene diferentes rutas que los programas utilizan para buscar archivos. Lo veremos en otra entrada ;)
Para mostrar el contenido de una variable podemos utilizar el comando visto anteriormente:

printenv nombre_variable

En bash, podemos acceder al contenido de las variables con $NOMBRE_VARIABLE. Por tanto podemos mostrar el contenido con el comando echo:

echo $NOMBRE_VAR

Si queremos añadir o modificar el contenido de una variable, utilizamos el comando export:

export NOMBRE_VAR=VALOR

También podemos utilizar el contenido de otras variables, por ejemplo:

export NOMBRE_VAR=$OTRA_VAR

Un ejemplo en mi terminal:



Si cerráis el terminal y lo volvéis a abrir, dichas variables no aparecen. Para que se mantengan hay que añadirlas al archivo .bashrc o .bash_profile (o aquel que tengáis configurado).

Estos se encuentran en vuestra carpeta personal /home/usuario pero están ocultos (empiezan por '.').

Para mostrarlos simplemente tenemos que decirle a Nautilus que muestre los archivos ocultos (CTRL+H), aunque también podemos hacerlo desde el terminal:

Mostramos los archivos de la carpeta con ls (con la opción -a indicamos que muestre los ocultos).

ls -a

Y ahora le decimos a nuestro editor favorito que lo abra (gedit, vi, vim, nano...):

gedit nombre_archivo

Y simplemente añadimos una línea con el comando que queramos que se ejecute:

export NOMBRE_VAR=VALOR_DESEADO

La entrada ha quedado bastante larga, así que en otra veremos los diferentes usos que pueden tener.  Además también son utilizadas en Windows. Si queréis en otra entrada puedo explicarlo.

¡Saludos!

Nautilus: abrir terminal en el directorio actual

Si necesitas abrir una terminal en un directorio, es muy cómodo hacerlo desde Nautilus con "click derecho → abrir terminal aquí". Sobre todo a cuanta más profundidad esté el directorio.



El problema es que si reinstalas el sistema operativo, a veces no aparece. Pero no te preocupes, la solución es bien fácil. Abrimos un terminal e instalamos el paquete nautilus-open-terminal.

La instalación variará según nuestro gestor de paquetes:
  • Ubuntu: $ sudo apt-get install nautilus-open-terminal
  • Fedora: $ sudo dnf install nautilus-open-terminal
En principio debe de funcionar al abrir una instancia nueva de Nautilus. Si no os aparece simplemente lo cerramos desde la terminal con:

$ nautilus -q

Y ya debe de aparecernos dicha opción.

¡Feliz año!

Nomacs: editor sencillo de fotos en Linux

Linux trae por defecto un visor de imágenes, que no está mal para ver las fotos de la galería, pero nada más.

Buscando un poco he encontrado a Nomacs que, además de ser un visor de imágenes, nos permite editar las fotos de forma básica: recortar, girar, invertir, cambiar el tamaño o guardar con menor calidad (muy útil si quieres subir fotos, por ejemplo, a un blog ☺ )...  entre otras.

Llevaba un tiempo buscando una aplicación sencilla, ya que al final es mucho más cómodo que utilizar la terminal para un par de imágenes o tener que utilizar Gimp o Photoshop que son mucho más complejas.



Además si nos dirigimos a:

Configuración → Detalles →Aplicaciones por defecto

Podremos cambiar el visor de imágenes por defecto. En mi caso lo dejo como está.

Instalación

En Fedora es muy sencillo:
  • Abrimos la tienda de aplicaciones, buscamos nomacs y lo instalamos.
  • Abrimos un terminal y ejecutamos:
sudo dnf install nomacs

Introducimos nuestra contraseña, confirmamos y ¡listo!

En Ubuntu abrimos un terminal y ejecutamos lo siguiente:
sudo add-apt-repository ppa:nomacs/stable
sudo apt-get update
sudo apt-get install nomacs

También lo puedes descargar para Windows u otro sistema operativo que esté disponible.

Otras plataformas (click).

¡Saludos!

Hello blog!

Hola querido lector,

es cierto, hace mucho poco que no escribo en el blog.

Una vez puesto todo en orden, me apetece hacer lo que realmente me gusta.

Así que, ¿por qué no seguir?

Poco a poco iré moderando/respondiendo a todos los comentarios que hay en las diferentes entradas.

Nos vemos pronto :)

C++: Medición de tiempo con 'chrono'

¿Necesitas medir tiempos de ejecución y no sabes cómo? 
Has dado con el blog adecuado ;)

Si no tienes mucho tiempo puedes copiar directamente el código que está al final para salir del paso pero, eh, no te acostumbres a copiar y pegar. Es bueno ver qué y cómo programan los demás pero tienes que intentar entenderlo.

En primer lugar aclarar que utilizo la biblioteca chrono incluida en el estándar C++11. Para poder usarla tienes que hacer dos cosas:
  1. Añadir ' #import <chrono> ' al inicio de tu código.
  2. Añadir el flag ' -std=c++0x ' a la hora de compilar.
Ya sabes cómo añadirla, así que vamos al lío.

Tienes toda la documentación aquí (enlace) por si quieres consultar otras funciones. Yo me voy a centrar en 'high_definition_clock'.

En primer lugar tienes que añadir estas dos líneas de código que te permitirán ahorrarte escribir 'std::chrono::' antes de llamar a métodos u objetos dentro del ámbito de la biblioteca chrono.
using namespace std;
using namespace std::chrono;
A continuación crea dos variables que contendrán el tiempo antes y después de la ejecución:
double time;
duration<double> interval;
high_resolution_clock::time_point start, end;

start = high_resolution_clock::now();
// Función que quieras medir.
end = high_resolution_clock::now();
Posteriormente se calcula el intervalo de tiempo y se almacena en una variable de tipo double:
interval = duration_cast>(end - start);
  
time = interval.count();
Para ahorrarte tiempo puedes usar el objeto Clock que he implementado y que es de código libre (está en GitHub y lo muestro a continuación). Para usarlo tienes, de nuevo qué pesado, dos opciones:

  1. Copias el código dentro de tu programa. (Que no se te olvide incluir la bilbioteca chrono)
  2. Descargarte el archivo e incluirlo con '#include "clock.hpp"'. 

 En ambos casos tendrás que añadir el flag que mencioné al principio cuando compiles, '-std=c++0x'. Un simple ejemplo de uso:
Clock my_clock;
double time;

my_clock.start();
// Lo que quieras medir.
time = my_clock.now();
Fácil, ¿Verdad?

Aquí puedes ver/descargar el código al completo: ¡Saludos!

Nautilus: añadir "Nuevo documento vacío" al menú

Estos días usando Fedora me he dado cuenta que al hacer click derecho sobre algún directorio en Nautilus, el gestor de archivos ), no me dejaba crear un documento en blanco. Directamente no aparecía la opción.

La solución es bien sencilla como siempre : tenemos que crear un documento dentro de la carpeta "Plantillas". Para ello abrimos un terminal ( CTRL+T ) y ejecutamos:

cd Plantillas/
touch 'Nuevo documento.txt'


Inmediatamente después nos aparecerá la opción al hacer click derecho. Lo único que no me gusta de esta solución es que crea el archivo directamente y no te da la opción de renombrarlo sin hacer click en él. Pero bueno, mientras que encuentre alguna otra solución hace el apaño.

¡ Saludos !

Cambiar los iconos en Linux

En esta ocasión vamos a ver cómo podemos personalizar la apariencia de nuestro sistema operativo instalando un pack de iconos que nos guste, ya que a veces el que viene por defecto puede ser un poco cutre.

Configuración

El primer paso será instalar una herramienta que nos permitirá editar fácilmente la configuración de nuestro entorno de escritorio. La aplicación recibe el nombre dependiendo de dicho entorno:
  • Para Unity ( Ubuntu ): unity-tweak-tool
  • Para Gnome: gnome-tweak-tool
Si tenéis otro entorno de escritorio buscad la específica para el vuestro.

Para instalarla abrimos un terminal ( Ctrl + T ) y ejecutamos una de las siguientes instrucciones que dependerá del gestor de paquetes que utilice vuestro sistema.
La orden la ejecutamos con sudo que nos provee de permisos de administrador para poder instalarla, por lo que os pedirá que introduzcáis vuestra contraseña.

Ubuntu
sudo apt-get install unity-tweak-tool

Fedora
sudo dnf install gnome-tweak-tool

En mi caso el paquete ya estaba instalado:

Pack de iconos

Antes de continuar tenemos que encontrar algún pack de iconos. Para ello tenemos múltiples opciones:
Una vez hayamos encontrado algún pack de iconos nos lo descargamos y lo descomprimimos.

Nos dirigimos a nuestra carpeta personal y habilitamos que se muestren los archivos ocultos con Ctrl + H o desde el menú. Los archivos ocultos en linux son aquellos que empiezan por un punto "." y en la mayoría de ocasiones son carpetas o archivos que tienen datos para las aplicaciones que tenemos instaladas.


Buscamos la carpeta llamada .icons y si no existe la creamos. Como veis en la foto anterior ya está creada.
Esta carpeta contendrá todos los packs de iconos que queramos, y la herramienta que hemos instalado nos permitirá seleccionar uno de ellos.

Copiamos el contenido del archivo comprimido del tema ( una carpeta ) que nos hemos descargado.



Ahora en la misma terminal de antes o en una nueva ejecutamos la aplicación que hemos instalado, en mi caso:
gnome-tweak-tool



Y en la parte de Apariencia -> Iconos seleccionamos el nombre de nuestro nuevo pack. Cerramos la aplicación y ya tenemos nuestro equipo con un look más bonito.

Como ves esta aplicación nos permite configurar los temas así como muchas otras opciones no sólo relacionadas con la apariencia. Si quieres que escriba más entradas sobre personalización y/o configuración deja un comentario o simplemente puedes dar tu opinión. ¡ Gracias !

¡ Saludos !