The ability to automate tasks with Bash scripts in Linux is one of the operating system’s most powerful components.
However, due to the sheer amount of scripting components, it can be intimidating for newcomers. Even longtime users may forget something every once in a while and that is why we have created this Bash scripting cheat sheet.
For times like these, it’s very handy to have a compiled list of Bash scripting components that have been sorted by category. That way, it only takes a few moments to reference the list whenever you forget the exact syntax of an operator or conditional statement, etc.
In this tutorial, we’ll present you with a curated list of the most handy things to know for Bash scripting. These are some of the most useful components, but they aren’t easy to remember for everyone. Next time your mind is blanking when writing a Bash script, take a look at the Bash scripting cheat sheet below for some quick help.
In this tutorial you will learn:
- Bash Scripting Cheat Sheet
|Category||Requirements, Conventions or Software Version Used|
|System||Any Linux distro|
|Software||Bash shell (installed by default)|
|Other||Privileged access to your Linux system as root or via the
# – requires given linux commands to be executed with root privileges either directly as a root user or by use of
$ – requires given linux commands to be executed as a regular non-privileged user
Bash Scripting Basics
Here are some of the most basic things to know about Bash scripting. If you are not sure where to start, this would be a good choice.
||Shebang that goes on the first line of every Bash script|
||Alternative (and better) shebang – using environment variable|
||Used to make comments, text that comes after it will not be executed|
||Give script executable permissions and execute it|
||Stores the number of arguments passed to the Bash script|
||Variables that store the values passed as arguments to the Bash script|
||Exit from the Bash script, optionally add an error code|
||Keyboard combination to stop Bash script in the middle of execution|
||Execute a command inside of a subshell|
||Pause for a specified number of seconds, minutes, hours, or days|
Conditional statements with
case allow for us to check if a certain condition is true or not. Depending on the answer, the script can proceed different ways.
||Test a condition and execute the
||Test multiple conditions and execute whichever clause is true|
case statements it is best to just see a basic example:
#!/bin/bash day=$(date +"%a") case $day in Mon | Tue | Wed | Thu | Fri) echo "today is a weekday" ;; Sat | Sun) echo "today is the weekend" ;; *) echo "date not recognized" ;; esac
if example script:
#!/bin/bash if [ $1 -eq $2 ]; then echo "they are equal" else echo "they are NOT equal" fi
Bash loops allow the script to continue executing a set of instructions as long as a condition continues to evaluate to true.
||Continue to loop for a predetermined number of lines, files, etc|
||Continue to loop until a certain condition is met|
||Continue to loop as long as a certain condition is true|
||Exit the loop and continue to the next part of the Bash script|
||Exit the current iteration of the loop but continue to run the loop|
Read User Input
Prompt the user for information to enter by using
#!/bin/bash read -p "What is your name? " name echo "Enjoy this tutorial, $name"
Parse input given as arguments to the Bash script:
#!/bin/bash if [ $# -ne 2 ]; then echo "wrong number of arguments entered. please enter two." exit 1 fi echo You have entered $1 and $2.
Arithmetic operators in Bash give us the ability to do things like addition, subtraction, multiplication, division, and other basic arithmetic inside of a Bash script.
||Raise to a power|
||Increment a variable|
||Decrement a variable|
Arithmetic Conditional Operators
Arithmetic conditional operators are usually used on two numbers to determine if a certain condition is true or false.
Note that the operators in the left column will work with single brackets
[ ] or double brackets
[[ ]], whereas the operators in the right column will work only with double brackets.
String Comparison Operators
We can use string comparison operators to determine if a string is empty or not, and to check if a string is equal, less, or greater in length to another string.
|-n s1||string s1 is not empty|
|-z s1||string s1 is empty|
Bash File Testing Operators
In Bash, we can test to see different characteristics about a file or directory.
|-b filename||Block special file|
|-c filename||Special character file|
|-d directoryname||Check for directory existence|
|-e filename||Check for file existence|
|-f filename||Check for regular file existence not a directory|
|-G filename||Check if file exists and is owned by effective group ID.|
|-g filename||true if file exists and is set-group-id.|
|-k filename||Sticky bit|
|-L filename||Symbolic link|
|-O filename||True if file exists and is owned by the effective user id.|
|-r filename||Check if file is a readable|
|-S filename||Check if file is socket|
|-s filename||Check if file is nonzero size|
|-u filename||Check if file set-ser-id bit is set|
|-w filename||Check if file is writable|
|-x filename||Check if file is executable|
Boolean operators include and
|| and not equal to
!. These operators allow us to test if two or more conditions are true or not.
||Logical AND operator|
||Logical OR operator|
||NOT equal to operator|
Feel free to reference this cheat sheet any time that you need a quick refresher. The goal here is to save you as much time as possible when trying to remember a certain Bash scripting component.