Está en la página 1de 12

57 Comandos De Raspberry Pi

(Que Todo El Mundo Debería Conocer)


Empezar en una Raspberry Pi no siempre es fácil porque no necesariamente se tiene el
hábito de usar la línea de comando.
Sin embargo, son esenciales y a menudo son más rápidos o más eficientes que pasar por
la GUI.

Pues bien, hay bastantes, y aquí veremos los 57 más utilizados, ordenados por
categoría:

 Gestión de archivos
 Comandos de red
 Actualizaciones del sistema
 Paquetes de gestión
 Gestión del sistema
 Comandos de Raspberry Pi OS
 Comandos variados

 Comandos para los guerreros 🙂

Esta lista se basa en mi experiencia general en Raspberry y Linux.


Cada persona utiliza su sistema de manera diferente y puede utilizar comandos que no
están en la lista.
El objetivo de este artículo es presentaros los comandos esenciales para empezar, pero
sin hacer una lista demasiado exhaustiva.

Gestión de archivos
Estos son los comandos básicos que todo principiante de Linux debería aprender.
Puede que ya conozcas estos comandos, así que esto puede ser más bien un
recordatorio.

La jerarquía de Linux es un árbol, empezando por la raíz: /

Cada subcarpeta creada abajo es accesible con /.

Por ejemplo: /home/pi => pi es una subcarpeta de /home, home es una subcarpeta en /.

No olvides usar sudo si no tienes permiso para acceder al archivo o directorio (sudo te
da privilegios de administrador para el comando que sigue).

 cd <path>: Cambia de directorio, ve a la carpeta especificada en el árbol de


archivos. cd /home/pi
 ls: Enumera los archivos y el directorio de la carpeta actual o de la especificada.
ls /home/pi
ls -latr /home/pi

 mkdir <folder>: Crea una nueva subcarpeta en la carpeta actual o en la


especificada.
mkdir myfolder
mkdir /home/pi/myfolder
 cp <file> <destination>: Copia un archivo o un directorio a otra ubicación (para
copiar un directorio completo es necesario añadir el parámetro -r para
«recursive»).
cp test.txt /home/pi/Documents/
cp /home/pi/test.txt /home/pi/Documents/
cp -r /home/pi/test/ /home/pi/Documents/
 mv <source> <destination>: Mueve un archivo o un directorio a otra
ubicación.
mv /home/pi/test.txt /home/Documents/
mv /home/pi/test/ /home/Documents/
 cat <file>: Muestra todo el contenido del archivo especificado. cat
/home/pi/README.txt
 more <file>: Muestra el contenido del archivo especificado, página por página
(enter o espacio para continuar, q para salir). more /var/log/sysloga
 tail <file>: Tail permite mostrar el final de un archivo, es útil para comprobar
las nuevas entradas en un archivo de registro.
tail /var/log/syslog
Puedes especificar el número de líneas a mostrar con -n.
tail -n20 /var/log/syslog
Y por último, mi favorita es la opción -f para mostrar nuevas líneas en tiempo
real.
tail -f /var/log/syslog
 head <file>: Es lo mismo que tail pero para mostrar el principio de un archivo.
head /home/pi/file.txt
head -n20 /home/pi/file.txt
 grep <string>: Grep es una poderosa herramienta para buscar cadenas en un
texto. Puedes utilizarla para buscar algo en un archivo o para filtrar la salida de
otro comando o script.
Uso básico:
grep dhcp /var/log/syslog
Como digo, puedes usarlo en un archivo o en la salida de un script:
cat /var/log/syslog | grep dhcp
/home/pi/myscript.sh | grep error
ls -latr | grep php

Y, por último, hay muchas opciones que se pueden utilizar con grep, como
expresiones regulares u opciones para mostrar líneas e.g: antes (-B), después (-
A) o alrededor (-C) de la cadena de búsqueda.
También puedes usar -v para mostrar todo menos la cadena introducida.
grep 'dhcp|dns' /var/log/syslog
grep -A2 -B4 'Fatal error' /var/log/apache/error.log
grep -v 'Notice' /var/log/apache/error.log
Si te gusta esta herramienta, te recomiendo que leas la página principal para
saber exactamente qué puedes hacer con ella.
man grep
 nano <file>: Nano es un editor de texto. Necesitaría un artículo entero para
entrar en detalle (Lo he hecho desde entonces, haga clic aquí para leer más al
respecto, en inglés ^^).
Permite editar un archivo y guardar los cambios con (CTRL + O, Enter, CTRL +
X).

nano /home/pi/myscript.sh
Encontrarás todas las acciones disponibles en la parte inferior de la pantalla.
 rm <file>: Elimina un archivo. Para una carpeta, añada la opción -rf (recursivo y
forzado)
rm monscript.sh
rm -rf /home/pi/scripts/
Ten mucho cuidado si utilizas sudo con este comando. Utilizarlo en las carpetas
del sistema borrará todo sin ningún mensaje de advertencia, y puede romper el
sistema en pocos segundos.
 tar -c: Se puede utilizar tar para almacenar ficheros en un archivo. A menudo se
utiliza con gzip para comprimir archivos.

tar -cvfz archive.tar.gz /home/pi/Documents/mydirectory


-c: crear un archivo
-v: verbose
-f: El nombre del archivo
-z: comprime archivos con gzip
 tar -x: Es el mismo comando pero para extraer archivos.

tar -xvfz archive.tar.gz


-x: extraer un archivo
 find: Como el nombre sugiere, find es útil para localizar archivos en su
Raspberry Pi.

find /home/pi -iname *.tar.gz


Hay muchas opciones para ayudarte a encontrar el archivo bueno (tamaño, fecha
de última modificación, …). Y si quieres aprender opciones para encontrar
rápidamente un archivo en Raspberry Pi, también puedes leer este otro artículo
sobre el tema (en inglés).
 pwd: Pwd te permite ver en qué directorio se encuentra. pwd
 tree: Otra gran herramienta para analizar tu ubicación actual en el árbol de
archivos. Te mostrará todo el árbol inferior (ver el ejemplo de abajo).
tree

pi@raspberrypi:/var/log $ tree
.
|-- alternatives.log
|-- alternatives.log.1
|-- alternatives.log.2.gz
|-- apt
| |-- eipp.log.xz
| |-- history.log
| |-- history.log.1.gz
| |-- history.log.2.gz
| |-- term.log
| |-- term.log.1.gz
| `-- term.log.2.gz

Comandos de red
Poco después de su primera instalación de Raspberry Pi OS, necesitarás alguno de
estos comandos para ayudarte con la configuración de la red (especialmente si estás
en una versión lite o con SSH).

Configuración

Por defecto, la Raspberry Pi 3B+ viene con 2 interfaces (Ethernet y Wi-Fi). La Ethernet
se llama eth0 y la Wi-Fi es wlan0. Puedes que utilizar estos nombres con algunos
comandos a continuación.

 ifconfig: Muestra su configuración de red actual, principalmente su dirección IP,


si está conectado.

ifconfig

Es la forma más fácil de encontrar la dirección de la Raspberry Pi, pero hay otras
soluciones cuando no tienes acceso a ella (como explico en este artículo).
Para información, en algunos sistemas, ifconfig ya no está disponible, en su
lugar se puede utilizar:
ip a
para encontrar la dirección IP. Ifconfig todavía funciona en Raspberry Pi OS en
el momento que estoy escribiendo esto, pero por si acaso.
 ping <ip>: Envía un paquete ping a otra IP de la red para comprobar si el host
está vivo.
ping 192.168.1.1
 ifup <interface>: Activa la interfaz especificada.

sudo ifup eth0


 ifdown <interface>: Desactiva la interfaz especificada. Puede ser útil para
desactivar el Wi-Fi si ya está conectado por cable, por ejemplo.

sudo ifdown wlan0


Por cierto, es una gran idea desactivar la interfaz Wi-Fi si no la utilizas. Puedes
encontrar soluciones más permanentes en este artículo, pero usar «ifdown» es
una forma rápida de hacerlo.
Transferencia de archivos y conexión remota

 wget <url>: Este comando permite descargar un archivo de Internet.

wget https://wordpress.org/latest.zip
 ssh <user>@<ip>: SSH es un protocolo de red que le proporciona una forma de
conectarse de forma segura a un ordenador remoto.

ssh root@192.168.1.201
 scp <file> <user>@<ip>:<path>: scp puede transferir un archivo a un
ordenador remoto a través de SSH.

scp test.txt root@192.168.1.201:/root/


 rsync <file> <user>@<ip>:<path>: rsync hace casi lo mismo pero con un
algoritmo de comparación delta y algunas optimizaciones para transferir
archivos más rápidamente.
rsync test.txt root@192.168.1.201:/root/
rsync -auzr /home/pi/Documents/*
/home/pi/backups/Documents/Como puedes ver, también puedes usar rsync
para sincronizar archivos locales.

Generalmente empleo este comando para hacer una copia de seguridad de mi


Raspberry Pi (como se explica aquí). Envío todos estos archivos de mi
Raspberry Pi a mi NAS local (estoy usando este dispositivo). Se tarda unos
segundos y sé que estoy a salvo después de eso.

Actualizaciones del sistema


Justo después de la configuración de la red, tendrás que actualizar tu sistema para tener
instalada la última versión de cada paquete por defecto.

En Raspberry Pi OS, y generalmente en todas las distribuciones de Linux, tendrás un


paquete para cada aplicación o comando que instales. Una lista de todos los paquetes
disponibles se llama repositorio. Una vez instalado, necesitas actualizar este repositorio
y todos tus paquetes regularmente para mantener tu sistema seguro. Estos comandos
explican cómo hacerlo. Necesitaremos sudo para todos estos comandos.

 apt update: Descarga la última versión del repositorio para cada uno de los que
tiene en su configuración (/etc/apt/sources.list).

sudo apt update


 apt upgrade: Actualiza todos los paquetes instalados si es necesario.
 rpi-update: Sólo utilízalo si sabes lo que hace.
Este comando actualizará todo en su Raspberry Pi (firmware, paquetes, …) y
puede potencialmente romper algo.

rpi-update
Gestión de paquetes
Después de eso, es posible que quieras instalar nuevos paquetes en tu Raspberry Pi.
Estos son los comandos que tienes que conocer para hacerlo:

 apt install <package>: Instala los paquetes especificados.


sudo apt install phpmyadmin
sudo apt install vim htop
 apt remove <package>: Elimina un paquete previamente seleccionado.
sudo apt remove vim
 apt search <search>: Busca un nombre de paquete en la lista de paquetes
(repositorio).
sudo apt search myadmin
sudo apt search php

 dpkg -l: Enumera todos los paquetes instalados en tu sistema. Puedes utilizar
grep para encontrar un paquete específico.
dpkg -l
dpkg -l | grep myadmin

Gestión del sistema


Estos son los comandos que utilizarás a menudo para gestionar tu sistema
Raspberry Pi:

 reboot: Como su nombre indica, este comando reiniciará la Raspberry Pi


inmediatamente.

sudo reboot
 shutdown -h now: Esto es para apagar la Raspberry Pi inmediatamente.

sudo shutdown -h now


Puedes sustituir «now» por una hora concreta (shutdown -h 12:05). No utilices
el interruptor de encendido para apagar tu Raspberry, debes hacerlo
correctamente utilizando este comando o uno de los otros métodos explicados
aquí (en inglés).
 service <servicename> <action>: Este comando permite iniciar o detener
servicios.
service apache2 start
service apache2 stop
A veces hay otras opciones, dependiendo del servicio, por ejemplo:
service apache2 reload
service apache2 restart
No escribas ninguna acción todavía, así ves todas las disponibles:
service apache2
Para información, también puedes usar systemctl para hacer lo mismo, en
Raspberry Pi OS tienes la opción, pero en algunos sistemas es solo systemctl.
 update-rc.d <service> <action>: En Debian, este comando le permite gestionar
el inicio o la detención del servicio en el arranque del sistema.
Para iniciar un servicio en el arranque:
sudo update-rc.d ssh enable
Para desactivar el inicio del servicio:
sudo update-rc.d -f ssh remove
La opción -f sirve para forzar el borrado del enlace simbólico. Este comando es
sólo para el servicio. Para iniciar otros scripts o comandos en el arranque, tiene
que editar el archivo /etc/rc.local.
sudo nano /etc/rc.local
 ps: Este comando muestra todos los procesos en ejecución en su Raspberry Pi.
El comando básico es este para mostrar todos los procesos:
ps aux
También puede mostrar los procesos iniciados por un usuario específico:
ps -u pi
Esto le dará una lista como esta:

El ID del proceso (PID) puede ser útil para otros comandos, para detenerlo por
ejemplo (siguiente comando)
 kill <pid>: El comando kill te permite terminar un proceso. Necesitarás el ID
del proceso para hacerlo (ver el comando anterior).

kill 12345
A veces es necesario utilizar la opción -9 para forzar la detención de todos los
comandos relacionados.
Por ejemplo, si ejecutas 20 comandos en un script y lo matas, continuarás con la
siguiente línea, no saldrás del programa, excepto si utilizas la opción -9.

kill -9 12345
También puedes utilizar killall para detener todas las apariciones de un
programa.

killall php
Este comando detendrá todos los scripts de PHP.

Tenga en cuenta que este comando detendrá inmediatamente el proceso


preguntado, sin importar lo que estaba sucediendo. No es una parada limpia.

En ese momento no sabes lo que el script está haciendo, por lo que puedes dañar
los datos o corromper los archivos.
Esto debe utilizarse como último paso, y si es posible en un momento no crítico.
 htop: Esta herramienta es una alternativa a top. Es más fácil de usar que top, con
colores y barras de carga dinámicas.

htop
 df: Muestra la lista de particiones, con el espacio de disco utilizado y disponible
para cada una.
df
df -h-La opción -h es para el formato legible por humanos.
 vcgencmd measure_temp: Puede que no lo recuerdes, pero este comando
muestra la temperatura actual de la CPU.

vcgencmd measure_temp

Comandos del Raspberry Pi OS


La mayoría de los comandos de este post son básicamente comandos de Linux.
Pero Raspberry Pi OS tiene algunos exclusivos que voy a presentar.

No todos son esenciales, pero es posible que no los conozcas aunque seas bueno con
Linux:

 raspi-config: Esta herramienta permite gestionar toda la configuración desde un


terminal o una conexión SSH.

sudo raspi-config

 raspistill: Si tiene una cámara conectada al módulo (módulo de cámara), este


comando toma una foto y la guarda como un archivo de imagen.

raspistill -o image.jpg
 raspivid: Lo mismo que con la cámara pero captura video

raspivid -o video.h264 -t 10000


El parámetro -t es el tiempo de la captura en milisegundos.

 raspi-gpio: Este comando permite gestionar los pines GPIO de la Raspberry Pi.
Puede establecer u obtener un valor.
raspi-gpio get
raspi-gpio get 20
raspi-gpio set 20 a5
raspi-gpio set 20 op pn dh
 raspividyuv or raspiyuv: Este comando es similar al raspivid pero para un
flujo de vídeo YUV sin procesar.

raspividyuv -o video.yuv
 rpi-update: Utilice esto sólo si sabes lo que estás haciendo. Esto actualizará
todo en la Raspberry Pi (firmware, paquetes, …) y puede potencialmente romper
algo.

sudo rpi-update

Misc
Aquí hay otros comandos útiles que no he podido colocar en las otras categorías :):

 history: Linux almacena cualquier comando que escriba en un archivo. History


es el comando a utilizar para mostrar esta lista.
history

También puedes borrar todo el historial.


history -c
O borrar una entrada específica.
history -d 12
 crontab: Cron es una herramienta para programar tareas en Linux. Crontab es el
archivo donde se introducen las líneas para cada tarea a ejecutar.

crontab -l crontab -e
La opción -l para mostrar las líneas.
La opción -e para editar las líneas.
Puedes usar sudo antes para programar tareas que se ejecuten con privilegios de
root.
Tengo un tutorial completo sobre este tema si necesitas más información.
 screen: Esta herramienta te permite dejar que algo se ejecute en segundo plano
aunque cierres la sesión.

screen -s <name> screen -r <name>


-s para iniciar una nueva pantalla con el siguiente nombre.
La opción -r permite reanudar una pantalla en funcionamiento con este nombre.
Puedes olvidar el nombre si quieres, se generará un ID, utiliza screen -r para
encontrarlo y screen -r para reanudarlo.
Con una sola pantalla en funcionamiento, screen -r la reanudará directamente.

Comandos para los guerreros


En esta última parte, presentaré algunos poderosos comandos para dominar tu
Raspberry Pi
Si empiezas en Linux, puede que no necesites conocer este, pero si quieres ahorrar
tiempo o ir más allá en Raspberry Pi, deberías conocer estos comandos

awk: awk es casi un lenguaje de programación, permite buscar cadenas y transformarlas


para mostrarlas de forma diferente.
Así que será difícil resumir todas las posibilidades en unas pocas líneas, pero intentaré
poner algunos ejemplos para entenderlo.
La sintaxis básica de awk es ésta:

He aquí un ejemplo básico:

awk -F":" '{print $1}' /etc/passwd

/etc/passwd es el archivo a analizar. El separador de campos es «:» por lo que lo


utilizamos en la opción -F.
Luego, en la cadena del programa, pedimos que se muestre sólo la primera columna.
Por lo tanto, este comando sólo mostrará una lista de nombres de usuario.
Esta es la forma sencilla de usarlo si quieres saber más, te recomiendo leer un tutorial
dedicado como este.

sed: sed le permite hacer cosas similares a awk. Este comando transformará el texto en
lo que tu quieras.
En cuanto a awk, es un comando complejo de dominar, y solamente lo presentaré aquí.
La sintaxis básica es la siguiente:

sed <option> <script> <file>

Así que está muy cerca de awk en complejidad.


Veamos un ejemplo:

sed '/^#/d' /etc/apache2/apache2.conf

En cada archivo de configuración, encontrarás un montón de comentarios que explican


qué es cada línea.
Este comando transformará el archivo de configuración de apache a uno sin
comentarios.
Utilizaremos una expresión regular para eliminar las líneas que empiezan por #.
Tienes que redirigir la salida a otro archivo para guardarla.

sed '/^#/d' /etc/apache2/apache2.conf > /etc/apache2/apache2-


nocomment.conf

Al igual que en el caso de awk, esto es sólo una muestra de lo que sed puede hacer.
Si quieres saber más, también hay un buen tutorial de sed en el mismo sitio web.

cut: cut es la última forma de transformar texto que presentaré. Es menos potente pero
es más simple de usar, así que si cut puede hacerlo, probablemente preferirás usarlo en
lugar de awk o sed.
Como su nombre indica, cut permite extraer parte de un texto o archivo.
La sintaxis básica es:
cut <options> <file>
echo <string> | cut <options>

El primero es para el archivo, y el segundo para cortar la cadena directamente.


Un ejemplo básico ahora:

echo "abcdefghi" | cut -c 2-4

Esto mostrará sólo «bcd».


La opción -c es para el carácter, así que básicamente, extraerá los caracteres 2 a 4.

Aquí hay otras opciones con un archivo:

cut -d : -f 1 /etc/passwd

Esto hará lo mismo que el primer ejemplo del comando awk.


/etc/password es un archivo con el uso de «:» como delimitador.
-d es dar el carácter delimitador («:»).
La opción -f es para indicar la columna a extraer (f significa el fields).
Así, esto mostrará sólo la primera columna y obtendrá una lista de nombres de usuario.

wc: wc significa Word Count, permite contar todo lo que hay en un archivo o flujo.
Hay tres opciones principales: -l para líneas, -w para palabras y -m para caracteres.
También existe la opción -c para obtener el tamaño del archivo.
wc sin opción te dará todo esto.

wc .bash_history
668 1977 17979 .bash_history

La primera columna es el recuento de líneas, la segunda es el recuento de palabras y la


última es el tamaño del archivo en bytes.
He aquí algunos ejemplos de opciones:

wc -l .bash_history
ls -latr | wc -l
wc -w myfile.txt

lsof: lsof significa «List open files». Este comando muestra todos los archivos abiertos
en su Raspberry Pi.
Esto puede ser útil para saber por qué no se puede editar un archivo, o qué archivo
bloquea el proceso de desmontaje.

lsof

watch: Si estás esperando algo, en un archivo o directorio, el comando watch puede


ayudarte a monitorear lo que sucede. Esto ejecutará el mismo comando cada dos
segundos.

watch date
watch ls -latr
watch cat output.txt
También puedes cambiar la frecuencia de ejecución del comando con la opción -n.

watch -n10 date

Esto mostrará la fecha actual cada diez segundos.

netstat: Netstat es una poderosa herramienta para monitorear lo que la Raspberry Pi


está haciendo con la red. Por ejemplo, puedes ver cada puerto abierto y el flujo de
tráfico de cada uno.
Netstat es una herramienta compleja que no se puede explicar en detalle en unas pocas
líneas.
Únicamente presentaré algunos usos básicos para mostrar las funcionalidades que
puedes utilizar:

netstat -l

La opción -p añadirá el ID del proceso (PID).

netstat -lp

La opción -c permite refrescar los datos continuamente.

netstat -lpc

Puedes encontrar todas las opciones en la página página man de netstat.

dmesg: Este comando es útil para entender los problemas de arranque de una
Raspberry Pi.
Te mostrará cada evento que haya ocurrido en la secuencia de inicio.
Aquí podrás ver los errores de los controladores o servicios y entender por qué algo no
funciona como quieres.

dmesg

Obtendrás una columna con el tiempo transcurrido desde el inicio del arranque y un
texto explicando lo sucedido.
También hay mensajes normales cuando todo está bien.

También podría gustarte