50 Raspberry Pi Linux Bash commands you’ll actually use

So, what is Bash?

The terminal (or ‘command-line’) on a computer allows a user a great deal of control over their system. All of these tools allow a user to directly manipulate their system through the use of commands. These commands can be chained together and/or combined together into complex scripts (see the linux usage page on scripting) that can potentially complete tasks more efficiently than much larger traditional software packages.

Bash is a Unix shell and command language written by Brian Fox for the GNU Project that powers the text interface of your Raspberry Pi. Every time you type a command into the terminal, you’re speaking Bash. First released in 1989, it has been distributed widely as the default login shell for Linux distributions and Apple Mac OSX. A version is also available for Windows 10. Before computers had graphical interfaces it was the only way you could interact with them. It’s necessarily very powerful and flexible. 

On the Raspberry Pi (running Raspbian), the default terminal application is LXTerminal.

A shell is a command processor which lets you manipulate your computer by typing in commands. Commands are typed after the “prompt” which is a brief snippet of text informing you who and where you are on the system:

Here is my list of useful Rasbian bash terminal commands:

General commands
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.
chmod +x filename
Change the rights to a file so that it can run as a program.
To run a program you must put a ‘./’ before the filename if you are in the same directory as the program file:
Otherwise just type the path to the file:
$ /home/pi/myProgram.bin
Clears previously run commands and text from the terminal screen.
find / -name example.txt
Searches the complete 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.
Shuts down the Raspberry immediately.
Opens the configuration settings menu.
Reboots the Raspberry Pi immediately.
shutdown -h now
To shut down immediately.
shutdown -h 14:30
To shut down at time 14:30
Opens the GUI (Graphical User Interface).
File and directory
cat example.txt
Displays the contents of the file “example.txt”.
cd /abc/xyz
Changes the current directory to the /abc/xyz 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.
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.
rm example.txt
Deletes the file example.txt.
Print Working Directory FULL path. It is used for :
=> Find the full path to the current directory.
=> Store the full path to the current directory in the shell variable.
=> Verify the absolute path.
=> Verify the physical path i.e exclude symbolic links.
rmdir example_directory
Deletes the directory example_directory (only if it is empty).
scp user@
Copies a file over SSH. Can be used to download a file from a PC to the Raspberry Pi. user@ 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.
Network and web commands
hostname -I
Shows the IP address of your Raspberry Pi.
To check the status of the wireless or wired connection you are using  (to see if wlan0 has acquired an IP address).
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).
Scans your network and lists connected devices, port number, protocol, state (open or closed) operating system, MAC addresses, and other information.
Tests connectivity between two devices connected on a network. For example, ping will send a packet to the device at IP and wait for a response. It also works with website addresses.
wget http://www.somewebsite.com/example.txt
Downloads the file example.txt from the web and saves it to the current directory.
System info
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.
cat /proc/cpuinfo shows your cpu version
Terminate current program
df -h
Shows information about the available disk space.
df /
Shows how much free disk space is available.
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. May produce a lot of output; Pipe it through “less” or “more”; Like this: dpkg --get-selection | less
Shows how much free memory is available.
To force quit (kill) an application type:
$ sudo killall applicationName.bin
Or with PID number:
$ sudo kill -9 XXXXX
XXXXX is the PID for the process you want to kill. Can be found using the ‘top’ command
Lists USB hardware connected to your Raspberry Pi.
top rovides an ongoing look at processor activity in real time. It displays a listing of the most CPU-intensive tasks on the system, and can provide an interactive interface for manipulating processes. It can sort the tasks by CPU usage, memory usage and runtime.
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.
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.





Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.