Documentos de Académico
Documentos de Profesional
Documentos de Cultura
04 - Comandos CLI Raspberry
04 - Comandos CLI Raspberry
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
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.
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).
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.
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
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.
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.
apt update: Descarga la última versión del repositorio para cada uno de los que
tiene en su configuración (/etc/apt/sources.list).
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:
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
sudo reboot
shutdown -h now: Esto es para apagar la Raspberry Pi inmediatamente.
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.
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
No todos son esenciales, pero es posible que no los conozcas aunque seas bueno con
Linux:
sudo raspi-config
raspistill -o image.jpg
raspivid: Lo mismo que con la cámara pero captura video
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 :):
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.
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:
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>
cut -d : -f 1 /etc/passwd
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
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 date
watch ls -latr
watch cat output.txt
También puedes cambiar la frecuencia de ejecución del comando con la opción -n.
netstat -l
netstat -lp
netstat -lpc
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.