Para saber más
Para encontrar archivos en lugar de comandos consulte el
Capítulo 3.25
.
3.27 Supervisar la actividad del procesador
Problema
Raspberry Pi a veces puede funcionar un poco lento, por lo que desea ver qué está acaparando el procesador.
Solución
Utilice el Administrador de tareas, lo encontrará dentro del menú de inicio en el grupo de programas Herramientas del sistema (
Figura 3.8
).
Figura 3.8.
Administrador de tareas.
El Administrador de tareas le permite ver cuánta CPU y memoria se está utilizando. También puede hacer clic con el botón derecho del ratón en un proceso y seleccionar la opción para eliminarlo en el menú emergente.
Los gráficos de la parte superior de la ventana muestran el uso total de la CPU y la memoria. Los procesos se enumeran debajo, y puede ver la CPU que cada uno está utilizando.
Observaciones
Si prefiere hacer este tipo de cosas desde la línea de comandos, utilice el comando top de Linux para mostrar datos similares sobre el procesador y la memoria y los procesos que utilizan más recursos (
Figura 3.9
). Puede utilizar el comando kill para detener un proceso. Tendrá que hacerlo como superusuario.
En este caso, puede ver que es un programa de Python que utiliza el 97 % de la CPU. La primera columna muestra el ID del proceso (2447). Para detener este proceso, introduzca el comando:
$ kill 2447
Es posible eliminar procesos vitales del sistema operativo de esta manera. Si lo hace, apagar y volver a encender su Pi restablecerá las cosas a la normalidad.
Figura 3.9.
Utilizar el comando top para ver el uso de los recursos.
A veces, es posible que tenga un proceso en ejecución que no sea visible inmediatamente cuando utilice top. Si este es el caso, puede buscar todos los procesos que se ejecutan usando el comando ps y canalizando (
Capítulo 3.32
) los resultados con el comando grep, que buscará los resultados y resaltará los elementos de interés.
Por ejemplo, para encontrar el ID del proceso de Python que acapara la CPU, ejecutaríamos el siguiente comando:
$ ps -ef | grep "python"
pi 2447 2397 99 07:01 pts/0 00:00:02 python speed.py
pi 2456 2397 0 07:01 pts/0 00:00:00 grep --color=auto python
En este caso, el ID del proceso del programa speed.py de Python es 2447. La segunda entrada en la lista es el propio proceso del ps.
Una variación en el comando kill es el comando killall. Utilícelo con precaución, ya que elimina todos los procesos que coinciden con su argumento. Así, por ejemplo, el siguiente comando eliminará todos los programas de Python que se estén ejecutando en Raspberry Pi:
$ sudo killall python
Para saber más
Puede consultar las páginas de la documentación para top, ps, grep, kill y killall. Puede verlas escribiendo man seguido del nombre del comando, como se muestra aquí:
$ man top
3.28 Trabajar con archivos comprimidos
Problema
Ha descargado un archivo comprimido y desea descomprimirlo.
Solución
Dependiendo del tipo de archivo, necesitará utilizar los comandos tar o gunzip.
Observaciones
Si el archivo que desea descomprimir solo tiene la extensión
.gz
, puede descomprimirlo usando el comando:
$ gunzip myfile.gz
También puede encontrar archivos (llamados
tarballs
) que contienen un directorio que ha sido archivado con la utilidad de Linux tar y luego son comprimidos con gzip en un archivo con un nombre como
myfile.tar.gz
.
Puede extraer los archivos y las carpetas originales de un tarball utilizando el comando tar:
$ tar -xzf myfile.tar.gz
Para saber más
Puede obtener más información sobre tar desde las páginas de la documentación, a las que puede acceder mediante el comando man tar.
3.29 Mostrar los dispositivos USB conectados
Problema
Ha conectado un dispositivo USB y quiere asegurarse de que Linux lo reconoce.
Solución
Utilice el comando lsusb. Esto mostrará todos los dispositivos conectados a los puertos USB de su Raspberry Pi:
$ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 15d9:0a41 Trust International B.V. MI-2540D
Observaciones
Este comando le indicará si un dispositivo está conectado o no, pero no garantiza que esté funcionando correctamente. Puede haber
drivers
para instalar y cambios de configuración para hacer en el
hardware
.
Para saber más
Para obtener un ejemplo de uso de lsusb al conectar una webcam externa consulte el
Capítulo 4.6
.
3.30 Redirigir la salida desde la línea de comandos a un archivo
Problema
Desea crear rápidamente un archivo con algo de texto o grabar una lista de directorios en un archivo.
Solución
Utilice el comando > para redirigir la salida que aparecería en la línea de comandos.
Por ejemplo, para copiar una lista de directorios en un archivo llamado
myfiles.txt
, haga lo siguiente:
$ ls > myfiles.txt
$ more myfiles.txt
Desktop
indiecity
master.zip
mcpi
Observaciones
Puede usar el comando > en cualquier comando de Linux que produzca una salida, incluso si está ejecutando, por ejemplo, un programa de Python.
También puede usar el comando opuesto (<) para redirigir la entrada del usuario, aunque esto no es tan útil como >.
Para saber más
Para utilizar cat para unir varios archivos consulte el
Capítulo 3.31
.
3.31 Concatenar archivos
Problema
Usted tiene un número de archivos de texto y desea unirlos en un archivo grande.
Solución
Utilice el comando cat para
concatenar
un numero de archivos en un archivo de salida (
output
). Por ejemplo:
$ cat file1.txt file2.txt file3.txt > full_file.txt
Observaciones
Unir archivos es el verdadero propósito del comando cat. Puede proporcionar tantos nombres de archivos como desee, y todos se escribirán en el archivo al que los dirija. Si no redirecciona la salida, aparecerá en la ventana del terminal. Si son archivos grandes, puede tardar.
Para saber más
Consulte también el
Capítulo 3.8
, donde se utiliza cat para mostrar el contenido de un archivo.
3.32 Usar
pipes
(tuberías)
Problema
Desea utilizar la salida de un comando de Linux como entrada de otro comando.
Solución
Utilizar el comando pipe, que es el símbolo de
barra
(|) en el teclado, para canalizar la salida de un comando a otro. Por ejemplo:
$ ls -l *.py | grep Jun
-rw-r--r-- 1 pi 226 Jun 7 06:49 speed.py
Aquí encontrará todos los archivos con la extensión
py
que también tengan
Jun
en su lista de directorios, indicando que fueron modificados por última vez en junio.
Observaciones
A primera vista, esto se parece bastante a la redirección de salida usando > (
Capítulo 3.30
). La diferencia es que > no funcionará si el objetivo es otro programa. Solo funcionará para redirigir a un archivo.
Puede encadenar tantos programas como quiera, como se muestra aquí, aunque no es algo que hará a menudo.
$ command1 | command2 | command3
Para saber más
Puede consultar el
Capítulo 3.27
para un ejemplo de uso de grep para encontrar un proceso.
Véase el
Capítulo 3.26
para buscar en su historial de comandos, usando un pipe y grep.
3.33 Ocultar la salida al terminal
Problema
Desea ejecutar un comando, pero no quiere que la salida aparezca en pantalla.
Solución
Redireccione la salida a
/dev/null
utilizando
>
. Por ejemplo:
$ ls > /dev/null
Observaciones
Este ejemplo ilustra la sintaxis, pero es bastante inútil. Un uso más común se da cuando está ejecutando un programa y el desarrollador deja muchos mensajes de rastreo en su código que realmente no quiere ver. El siguiente ejemplo oculta la salida innecesaria del comando find (véase el
Capítulo 3.35
).
$ find / -name gemgem.py 2>/dev/null
/home/pi/python_games/gemgem.py
Para saber más
Para más información acerca de cómo redirigir la salida estándar, consulte el
Capítulo 3.30
.
3.34 Ejecutar programas en segundo plano
Problema
Desea ejecutar un programa, pero también trabaja en otras tareas.
Solución
Ejecute el programa o el comando en segundo plano utilizando el comando &.
Por ejemplo:
$ python speed.py &
2528
$ ls
En lugar de esperar hasta que el programa haya terminado de ejecutarse, la línea de comandos muestra el ID del proceso (el segundo número) e inmediatamente le permite continuar con cualquier otro comando que quiera ejecutar. Puede utilizar el ID del proceso para eliminar procesos en segundo plano (
Capítulo 3.27
).
Para llevar un proceso del segundo plano al primer plano utilice el comando fg:
$ fg
python speed.py
Esto informa del comando o programa que se está ejecutando y luego espera a que finalice.
Observaciones
La salida del proceso en segundo plano seguirá apareciendo en el terminal.
Una alternativa para poner procesos en segundo plano es simplemente abrir más de una ventana de terminal.
Para saber más
Para obtener información sobre cómo administrar procesos consulte el
Capítulo 3.27
.
3.35 Crear alias de comandos
Problema
Desea crear alias para los comandos que utiliza con frecuencia.
Solución
Edite el archivo
~/.bashrc
utilizando nano (
Capítulo 3.7
) y luego muévase al final del archivo y añada tantas líneas como desee como estas:
alias l='ls -a'
Esto crea un alias llamado
l
que, cuando lo introduzca, será interpretado como el comando ls -a.
Guarde y salga del archivo usando Ctrl-X y Ctrl-Y, y luego, para actualizar el terminal con el nuevo alias, escriba el siguiente comando:
$ source .bashrc
Observaciones
Muchos usuarios de Linux configuran un alias para rm como el siguiente para que confirme las eliminaciones.
$ alias rm='rm -i'
No es una mala idea, siempre y cuando no se olvide cuando utilice el sistema de otra persona que no tenga este alias configurado.
Para saber más
Para más información sobre rm, consulte el
Capítulo 3.11
.
3.36 Ajustar la fecha y la hora
Problema
Desea configurar manualmente la fecha y la hora de su Raspberry Pi, porque no tiene conexión a Internet.
Solución
Utilice el comando de Linux date.
El formato de fecha y hora es MMDDHHMMYYYY, donde MM es el número del mes, DD es el día del mes, HH y MM son las horas y los minutos, respectivamente, y YYYY es el año.
Por ejemplo:
$ sudo date 010203042013
Wed Jan 2 03:04:00 UTC 2013
Observaciones
Si Raspberry Pi está conectada a Internet, a medida que arranque, automáticamente establecerá la hora utilizando un servidor de tiempo de Internet.
También puede utilizar date para mostrar la hora UTC simplemente introduciendo date (fecha):
$ date
Wed Jan 2 03:08:14 UTC 2013
Para saber más
Si desea que su Raspberry Pi mantenga la hora correcta incluso cuando no hay red, puede utilizar un módulo de reloj a tiempo real (RTC) (
Capítulo 12.14
).
3.37 Saber cuánto espacio tiene en la tarjeta SD
Problema
Desea saber cuánto espacio hay libre en la tarjeta SD.
Solución
Utilice el comando de Linux df:
$ df -h
Filesystem
Size
Used
Avail
Use% Mounted on
rootfs
3.6G
1.7G
1.9G
48% /
/dev/root
3.6G
1.7G
1.9G
48% /
devtmpfs
180M
0
180M
0% /dev
tmpfs
38M
236K
38M
1% /run
tmpfs
5.0M
0
5.0M
0% /run/lock
tmpfs
75M
0
75M
0% /run/shm
/dev/mmcblk0p1
56M
19M
38M
34% /boot
Observaciones
En cuanto a la primera línea de los resultados, puede ver que hay 3,6 GB de almacenamiento en la tarjeta SD, de los cuales se utilizan 1,7 GB.
Cuando se quede sin espacio en el disco es probable que obtenga un comportamiento inesperado, como mensajes de error que indiquen que no se pudo escribir un archivo.
Para saber más
Puede encontrar la página de la documentación para df utilizando man df.
CAPÍTULO 4
Software
4.1 Introducción
Este capítulo contiene una serie de fórmulas para utilizar
softwares
preconfigurados en Raspberry Pi.
Algunas fórmulas de este capítulo están relacionadas con la conversión de Raspberry Pi a un solo uso, mientras que otras utilizan piezas específicas de
softwares
en Raspberry Pi.
4.2 Crear un centro multimedia
Problema
Desea convertir su Raspberry Pi en un centro multimedia.
Solución
Para utilizar su Raspberry Pi como centro multimedia debe tener una Raspberry Pi 3 o el modelo B de la Raspberry Pi 2, ya que la reproducción de vídeo es muy intensa en los procesadores.
Puede configurar su Raspberry Pi como centro multimedia durante el proceso de instalación de NOOBS (
Capítulo 1.6
). En lugar de seleccionar Raspbian como la distribución a instalar, seleccione OpenELEC_Pi1 si tiene la Raspberry Pi 1 o OpenELEC_Pi2 si tiene la Raspberry Pi 2.
OpenELEC es una distribución que optimiza su Raspberry Pi como centro multimedia. Incluye el
software
del centro multimedia Kodi, basado en el proyecto de código abierto XBMC que fue desarrollado originalmente para convertir las consolas Xbox en centros multimedia. Desde entonces, el código ha sido llevado a muchas plataformas, incluyendo Raspberry Pi (Figura 4.1).
Figura 4.1.
Raspberry Pi como centro multimedia.
Raspberry Pi es perfectamente capaz de reproducir vídeos en
full
HD, así como música en
streaming
, archivos MP3 y radio por Internet.
Observaciones
Kodi es una potente pieza de
software
con muchas características. Quizás la manera más simple de comprobar que está funcionando es poner algunos archivos de música y/o vídeo en una unidad flash USB o en un disco duro externo y conectarlo a Raspberry Pi. Debería poder reproducirlos desde Kodi.
Puesto que Raspberry Pi es probable que esté cerca de su TV, puede ver si su TV tiene un puerto USB que pueda proporcionar corriente suficiente para ejecutar Raspberry Pi. Si este es el caso, no necesitará una fuente de alimentación aparte.
Es una buena idea tener un teclado y un ratón inalámbricos, si los compra como un conjunto usarán un solo puerto USB para el dongle, ya que evitará tener los cables por todas partes. También puede comprar miniteclados con
trackpads
incorporados que son útiles en esta situación.
Una conexión de red por cable ofrece generalmente un rendimiento superior y mejor que una conexión WiFi, pero no siempre es posible tener Pi cerca de una toma Ethernet. Si este es el caso, puede configurar XBMC para utilizar un dongle WiFi para una conexión de red.
La configuración de Kodi es muy intuitiva. Puede encontrar las instrucciones completas sobre el uso del
software
en
http://kodi.wiki/
.
Para saber más
Puede agregar un control remoto IR a Raspberry Pi para controlar XBMC.
4.3 Instalar programas de ofimática