Categories :

Raspberry pi – Useful commands

Last Updated on 28/10/2023 by Kevin Agar

Some general commands and some specific to MaxAir

A lot of commands require root access. Either log in with root

#su root


This requires root password and changes user to root. It doesn’t change the working directory but stays in the original home directory. So if logged in as pi, you stay in /home/pi

pi@MaxAir:~ $ su root
root@MaxAir:/home/pi# pwd

Alternatively, you can start all commands with sudo. This gives root permissions and stays in the original home directory. So if logged in as pi, you stay in /home/pi

Rather than type sudo before every command, you can use the command sudo -i This will give root access without the need for a password, but will also change the working directory to /root

pi@MaxAir:~ $ sudo -i
root@MaxAir:~# pwd

sudo pkill -f #kill the gateway process
sudo ps -aux | grep | grep -v grep #Check gateway is running
sudo python3 /var/www/cron/ #Start the gateway in the console window and see the messages_out and messages_in
green = outgoing, yellow = incoming

sudo ps -aux | grep | grep -v grep #Check that it’s sending data to Home Assistant

systemctl status HA_integration #Check the status of the HA_integration service

pwd #print working directory – displays the current directory you’re in

ls #list a directories content
ls -l #list a directory’s content with details
cd #change directory
cd ~ #users home directory. eg /home/pi/

htop #an interactive process viewer.
sudo python3 #run the python program gateway
sudo shutdown -r now #reboot the system
sudo shutdown -h now #halt the system
sudo nano /etc/ps rc.local #edit the file rc.local
sudo cp #make a file copy
sudo chown www-data:www-data /var/www/cron/ #change owner – change file user:group

sudo chown -R www-data:www-data /var/www #change ownership of all in /var/www recursively

sudo python3 – -version #to find what version of python is being used – – is a double dash no space

or sudo python3 -V
sudo ps -ef #list all running processes
sudo ps -ef | grep #show the PID nnn of the running process eg.
sudo kill nnn #kill the PID number nnn to stop the program
sudo raspi-config #Raspberry pi configuration tool
sudo wpa_cli list_networks #to see which network is connected
sudo wpa_cli select_network 0 or 1 (from previous command) #To change which network is connected
sudo ifconfig #show mac address and IP address
sudo df -h #Show disk space
sudo find / -name file.txt

Breaking this down.

  • sudo – superuser permissions
  • find – command
  • / – directory to run the search (this is the root directory)
  • -name – searching for a file name
  • file.txt – the file we are searching for

Increase the swapfile size
sudo nano /etc/dphys-swapfile #edit the swapfile
CONF_SWAPSIZE=1024 #change swapsize from 100 to 1024
sudo /etc/init.d/dphys-swapfile stop #stop the swapfile process
sudo /etc/init.d/dphys-swapfile start #start the swapfile process
free -m #check the amount of memory and free memory

sudo vcgencmd get_throttled # check if the cpu clock is being throttled due to heat. Should return 0

Generate a backup of MaxAir db

run System Configuration Menu>Backup which will generate a file in /var/www eg

Install the MaxAir backup db into clean installation
  1. copy the zip file to your pc and unzip, it should create a *.sql file
  2. install new image
  3. install updates
  4. copy the sql file back to the pi to say /home/pi
  5. on the pi run
  6. sudo mysql -u root -ppassw0rd maxair < ‘the name of the sql file you copied’
  7. eg sudo mysql -u root -ppassw0rd maxair < /home/pi/maxair_mysql_2021_09-22_11-07-52.sql

Raspberry pi – how to measure CPU and GPU Temperature
  • $ cd /var/www
  • $ sudo nano
  • Enter into the file
# Script:
# Purpose: Display the ARM CPU and GPU  temperature of Raspberry Pi 
# Under GPL v2.x+
# -------------------------------------------------------
echo "$(date) @ $(hostname)"
echo "-------------------------------------------"
echo "GPU => $(/opt/vc/bin/vcgencmd measure_temp | cut -d = -f2)"
echo "CPU => $((cpu/1000))'C"
  • Save the file and change permissions
  • $ sudo chmod +x
  • To run the file
  • $ sudo ./
  • Sample output
Fri 24 Sep 21:58:07 BST 2021 @ maxair
GPU => temp=51.5'C
CPU => 51'C
To map a directory to a NAS directory

Create a directory/folder on the pi that you want to map to a directory/folder on the NAS

sudo mkdir /mnt/pibackups

#You need to add the folder to the mnt or media folder as these aren’t included in the backup

Create a directory/folder on the NAS that you want mapped to a directory/folder on the pi

In my case it’s //

Add line to /etc/fstab and save

$ sudo nano /etc/fstab

Enter into the file and save.

// /mnt/pibackups cifs nofail,noatime,vers=1.0,username=****,password=****,uid=www-data,gid=www-data 0 0

// – NAS address and directory to map to

/mnt/pibackups – MaxAir folder to map from

nofail – System will still boot up even if connecting to the NAS fails

Noatime – Stop changing the file read time. (Improves performance)

vers=1.0 – Used to specify which version of SAMBA is used

username=****,password=**** – The credentials for logging into the NAS

0 0

uid=www-data,gid=www-data – set permissions for user www-data

Manually Update MaxAir

To manually get the database updates run:

sudo php /var/www/apply_database_update.php

To manually get the code updates run:

sudo python3 /var/www/cron/

Then move them to the correct locations using:

sudo python3 /var/www/cron/

To check GPIO relays

sudo python3 /var/www/cron/ 13 1

This will turn the relay connected to GPIO pin 13 on

sudo python3 /var/www/cron/ 13 0

This will turn the relay connected to GPIO pin 13 off

To Add MQTT_dependencies

run from /var/www/add_on/MQTT_dependencies

cd /var/www/add_on/MQTT_dependencies

run sudo bash ./

To find, remove or install an earlier paho version

sudo python3 -m pip show paho-mqtt #to find the version

pip3 unistall paho-mqtt #to remove paho

pip3 install paho-mqtt 1.5.0 #to install an earlier version

Leave a Reply

Your email address will not be published. Required fields are marked *