Sometimes it’s hard to keep track of all the Raspberry Pi commands you use, so I created a list of some of the most useful and important ones that will make using Linux on the Raspberry Pi (and any Debian Linux machine as well) a lot easier. But first a quick note about user privileges – here are two user “modes” you can work with in Linux. One is a user mode with basic access privileges, and the other is a mode with administrator access privileges (AKA super user, or root). Some tasks can’t be performed with basic privileges, so you’ll need to enter them with super user privileges to perform them. You’ll frequently see the prefix sudo before commands, which means you’re telling the computer to run the command with super user privileges.
An alternative to entering sudo before each command is to access the root command prompt, which runs every command with super user privileges. You can access root mode by entering sudo su at the command prompt. After entering sudo su, you’ll see the root@raspberrypi:/home/pi# command prompt, and all subsequent commands will have super user privileges.
Most of the commands below have a lot of other useful options that I don’t mention. To see a list of all the other available options for a command, enter the command, followed by – –help.
apt-get update: Synchronizes the list of packages on your system to the list in the repositories. Use it before installing new packages to make sure you are installing the latest version.
apt-get upgrade: Upgrades all of the software packages you have installed.
reboot: To reboot immediately.
shutdown -h now: To shutdown immediately.
shutdown -h 01:22: To shutdown at 1:22 AM.
clear: Clears previously run commands and text from the terminal screen.
date: Prints the current date.
find / -name example.txt: Searches the whole system for the file example.txt and outputs a list of all directories that contain the file.
nano example.txt: Opens the file example.txt in the Linux text editor Nano.
poweroff: To shutdown immediately.
raspi-config: Opens the configuration settings menu.
startx: Opens the GUI (Graphical User Interface).
FILE AND DIRECTORY COMMANDS
cat example.txt: Displays the contents of the file example.txt.
cd /abc/xyz: Changes the current directory to the /abc/xyz directory.
mv XXX: Moves the file or directory named XXX to a specified location. For example, mv examplefile.txt /home/pi/office/ moves examplefile.txt in the current directory to the /home/pi/office directory. If the file is not in the current directory, add the path of the file’s location (i.e. cp /home/pi/documents/examplefile.txt /home/pi/office/ moves the file from the documents directory to the office directory). This command can also be used to rename files (but only within the same directory). For example, mv examplefile.txt newfile.txt renames examplefile.txt to newfile.txt, and keeps it in the same directory.
cp XXX: Copies the file or directory XXX and pastes it to a specified location; i.e. cp examplefile.txt /home/pi/office/ copies examplefile.txt in the current directory and pastes it into the /home/pi/ directory. If the file is not in the current directory, add the path of the file’s location (i.e. cp /home/pi/documents/examplefile.txt /home/pi/office/ copies the file from the documents directory to the office directory).
ls -l: Lists files in the current directory, along with file size, date modified, and permissions.
mkdir example_directory: Creates a new directory named example_directory inside the current directory.
rm example.txt: Deletes the file example.txt.
rmdir example_directory: Deletes the directory example_directory (only if it is empty).
scp firstname.lastname@example.org:/some/path/file.txt: Copies a file over SSH. Can be used to download a file from a PC to the Raspberry Pi. email@example.com is the username and local IP address of the PC, and /some/path/file.txt is the path and file name of the file on the PC.
touch example.txt: Creates a new, empty file named example.txt in the current directory.
Networking and Internet Commands
ping: Tests connectivity between two devices connected on a network. For example, ping 10.0.0.32 will send a packet to the device at IP 10.0.0.32 and wait for a response. It also works with website addresses.
ifconfig: To check the status of the wireless connection you are using (to see if wlan0 has acquired an IP address).
iwconfig: To check which network the wireless adapter is using.
iwlist wlan0 scan: Prints a list of the currently available wireless networks.
iwlist wlan0 scan | grep ESSID: Use grep along with the name of a field to list only the fields you need (for example to just list the ESSIDs).
nmap: Scans your network and lists connected devices, port number, protocol, state (open or closed) operating system, MAC addresses, and other information.
wget http://www.website.com/example.txt: Downloads the file example.txt from the web and saves it to the current directory.
System Information Commands
hostname -I: Shows the IP address of your Raspberry Pi.
service –status-all: You can determine which services are currently running.
df -h: Shows information about the available disk space.
df /: Shows how much free disk space is available.
cat /proc/meminfo: Shows details about your memory.
cat /proc/partitions: Shows the size and number of partitions on your SD card or hard drive.
cat /proc/version: Shows you which version of the Raspberry Pi you are using.
dpkg – –get–selections | grep XXX: Shows all of the installed packages that are related to XXX.
dpkg – –get–selections: Shows all of your installed packages.
free: Shows how much free memory is available.
lsusb: Lists USB hardware connected to your Raspberry Pi.
vcgencmd measure_temp: Shows the temperature of the CPU.
vcgencmd get_mem arm && vcgencmd get_mem gpu: Shows the memory split between the CPU and GPU.
UP key: Pressing the UP key will print the last command entered into the command prompt. This is a quick way to repeat previous commands or make corrections to commands.
I hope this list of commands will make navigating Linux on your Raspberry Pi more efficient and enjoyable. If you have any other commands that you use a lot, leave a comment to let me know (I will add them to this list).