Raspberry Pi® a fondo para desarrolladores. Derek MolloyЧитать онлайн книгу.
variables de entorno (environment variables) son valores con nombre que describen la configuración de nuestro entorno Linux, por ejemplo la ubicación de archivos ejecutables o el editor de texto predeterminado. Para hacernos una idea de las variables de entorno configuradas en el RPi, ejecute el comando env y verá una lista de dichas variables en nuestra cuenta de usuario. En este caso, env se invoca en la imagen Raspbian:
pi@erpi ~ $ env
TERM=xterm
SHELL=/bin/bash
SSH_CLIENT=fe80::50b4:eb95:2d00:ac3f%eth0 2599 22
USER=pi
MAIL=/var/mail/pi
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:...
PWD=/home/pi
HOME=/home/pi ...
Puede ver y modificar las variables de entorno de acuerdo con el ejemplo siguiente, que añade el directorio /home/pi a la variable de entorno PATH:
pi@erpi ~ $ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
pi@erpi ~ $ export PATH=$PATH:/home/pi
pi@erpi ~ $ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/pi
Este cambio se perderá después de reiniciar. Establecer las variables de entorno de manera definitiva requiere modificaciones en el archivo .profile, con los shells sh, ksh o bash, y en el archivo .login cuando usemos csh o tcsh. Para ello, necesitamos saber cómo realizar una edición básica de archivos en una ventana de terminal en Linux.
Edición básica de archivos
Contamos con una variedad de editores de texto, pero uno de los más fáciles de usar es también el más potente: el editor GNU nano editor. Iniciamos el editor escribiendo nano seguido del nombre de un archivo existente, o bien de uno nuevo; por ejemplo, nano hello.txt muestra la vista capturada en la figura 2-6 (una vez se ha introducido el texto). Escribir nano -c hello.txt muestra el número de línea actual, lo que puede resultar muy útil durante la corrección de errores (debug). Podemos movernos libremente por el archivo mediante las teclas de cursor y modificar o escribir nuevo texto a partir de la ubicación del cursor. Puede observar algunos de los atajos de teclado en la barra que ocupa la parte inferior de la ventana del editor, pero existen muchos más, algunos de los cuales mostramos en la tabla 2-6.
Figura 2-6: El GNU nano editor en acción durante la edición de un archivo de ejemplo,
dentro de una ventana de terminal PuTTY en Linux.
Tabla 2-6: Atajos de teclado para Nano. Referencia rápida.
Teclas | Comando | Teclas | Comando |
Ctrl+G | Ayuda | Ctrl+Y | Página anterior |
Ctrl+C | Encuentra el número de línea actual | Ctrl+_ o Ctrl+/ | Va a un número de línea |
Ctrl+X | Salir (¿guardar archivo?) | Alt+/ | Va al final de una línea |
Ctrl+L | Facilita el ajuste de líneas largas | Ctrl+6 | Comienza a marcar texto (usamos las teclas de cursor para el marcado) |
Ctrl+O | Guardar | Ctrl+K o Alt+6 | Corta el texto marcado |
Teclas de cursor | Mueven el cursor | Ctrl+U | Pega texto |
Ctrl+A | Va al inicio de una línea | Ctrl+R | Introduce el contenido de otro archivo (pide la ubicación de dicho archivo) |
Ctrl+E | Va al final de una línea | Ctrl+W | Busca una cadena de texto |
Ctrl+Barra espaciadora | Palabra siguiente | Alt+W | Encuentra el siguiente |
Alt+Barra espaciadora | Palabra anterior | Ctrl+D | Borra el carácter del cursor |
Ctrl+V | Página siguiente | Ctrl+K | Borra una línea entera |
NOTA Ctrl+K parece eliminar toda una línea, pero en realidad la envia a un buffer desde el que podemos pegarla con el atajo Ctrl+U. Es una forma ágil de repetir múltiples Asimismo, los usuarios de Mac podrían tener que establecer una metatecla en Terminal para obtener la funcionalidad de la tecla Alt, que no tienen los Mac. Seleccione Terminal ➪ Preferencias ➪ Ajustes ➪ Teclado; luego, seleccione "Usar tecla Opción como metatecla".
¿Qué hora es?
Una pregunta tan sencilla como "¿qué hora es?" causa más problemas de los que uno puede imaginar. Por ejemplo, escribir date después del símbolo del sistema puede mostrar lo siguiente:
pi@erpi ~ $ date
Thu 17 Dec 16:26:59 UTC 2015
Que resulta ser correcto esta vez porque la placa está conectada a una red. Si fuera erróneo, podríamos preguntarnos por qué los fabricantes no han puesto en hora el reloj de la placa. La respuesta es que no pueden. A diferencia de un ordenador personal, el RPi carece de batería que asegure que los ajustes de la BIOS se conservan; de hecho, ni tiene BIOS. Este tema se examina con detalle en el capítulo siguiente, mas por el momento usaremos el protocolo NTP (Network Time Protocol, protocolo de hora de red) para establecer la hora. NTP es un protocolo de red que permite sincronizar relojes entre ordenadores. Si nuestro RPi da fecha y hora correctamente, es porque las obtiene desde la red utilizando un servicio NTP que se ejecuta en la placa:
pi@erpi ~ $ systemctl status ntp
• ntp.service - LSB: Start NTP daemon
Loaded: loaded (/etc/init.d/ntp)
Active: active (running) since Sat 2015-12-19 07:18:04 GMT; 22h ago
Process: 499 ExecStart=/etc/init.d/ntp start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/ntp.service
└─544 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 107:112
El servicio NTP está configurado mediante el archivo /etc/ntp.conf, y las líneas que empiezan con la palabra server identifican los servidores con los que se está comunicando nuestro RPi para obtener la fecha y la hora actuales (de ahí el carácter ^ en la llamada a grep):
pi@erpi ~ $ more /etc/ntp.conf | grep ^server
server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
server 3.debian.pool.ntp.org iburst
Para ser un buen ciudadano NTP, hay que ajustar estas entradas para que hagan referencia al grupo de servidores NTP más próximo. Para ello, diríjase a la web www.pool.ntp.org (el servidor más próximo al autor es ie.pool.ntp.org, para Irlanda) y actualice las entradas según corresponda. Si desea comprobar primero los ajustes, puede instalar y ejecutar el comando ntpdate:
pi@erpi ~ $ sudo apt install ntpdate
pi@erpi ~ $ sudo ntpdate -b -s -u ie.pool.ntp.org
pi@erpi ~ $ date
Sun 20 Dec 16:02:39 GMT 2015
Después de ajustar fecha y hora, podemos establecer nuestra zona horaria. Utilice el comando siguiente, que proporciona una interfaz de usuario de texto para seleccionar nuestra ubicación. El RPi, en este caso, está configurado para Irlanda con el IST (Irish Standard Time, hora estándar de Irlanda):
pi@erpi ~ $ sudo dpkg-reconfigure tzdata
Current default time zone: 'Europe/Dublin'
Local time is now: Sun Dec 20 16:37:48 GMT 2015.
Universal Time is now: Sun Dec 20 16:37:48 UTC 2015.
NOTA Si su RPi no está conectado a Internet, puede configurar fecha y hora manualmente con la herramienta timedatectl:
pi@erpi ~ $ sudo timedatectl set-time '2017-1-2 12:13:14'
pi@erpi