Linux: Learn Basic Bash Scripting

Linux logo

Learn the Basics of Bash Scripting

What is Bash Scripting?

Bash scripting refers to the process of writing and running scripts using the Bash (Bourne-Again Shell) shell, which is a popular Unix/Linux shell and command language. Bash is the default shell for many Unix-based operating systems, including Linux and macOS. Bash scripts are a series of commands and instructions written in the Bash language, which are executed sequentially when the script is run.

Bash scripting is commonly used for various purposes, including:

  • Automation: You can use Bash scripts to automate repetitive tasks, such as system maintenance, file operations, backups, and more.

  • System Administration: Bash scripts are widely used for system administration tasks, like user management, software installation, and monitoring.

  • Customization: You can create custom scripts to configure your system, set environment variables, and customize your command-line environment.

  • Data Processing: Bash scripts are useful for processing and manipulating data, such as log files, text files, and CSV files.

  • Interactive Command-Line Tools: Bash scripts can be used to create interactive command-line tools, providing user-friendly interfaces for various tasks.

Bash scripts are written in a simple and readable syntax, making them accessible to both beginners and experienced programmers. They can include control structures (such as loops and conditionals), variables, functions, and command substitution. Bash also supports input/output redirection, piping, and regular expressions, which further enhance the scripting capabilities.

Bash Scripting Cheet Sheet

Shebang:
#!/bin/bash

This line at the beginning of your script specifies the interpreter to use (in this case, /bin/bash).

Comments:
# This is a comment
Printing:
echo "This is a message"
Variables:
variable_name="Hello, World"
Conditionals:
if [ condition ]; then
    # Code to execute if the condition is true
fi

if [ condition ]; then
    # Code to execute if the condition is true
else
    # Code to execute if the condition is false
fi
Loops:
# For loop
for item in item1 item2 item3; do
    # Code to execute for each item
done

# While loop
while [ condition ]; do
    # Code to execute while the condition is true
done
Functions:
function my_function() {
    # Function code
}
my_function  # Call the function
Input:
read user_input
Command Line Arguments:
$0  # Script name
$1  # First argument
$2  # Second argument
$#  # Number of arguments
$@  # All arguments as an array
File Operations:
# Check if a file exists
if [ -e "file.txt" ]; then

# Check if a file is a directory
if [ -d "directory" ]; then

# Check if a file is readable, writable, or executable
if [ -r "file.txt" ]; then
if [ -w "file.txt" ]; then
if [ -x "file.sh" ]; then

# Copy, move, and remove files
cp source_file destination
mv source_file destination
rm file_to_remove
Pipes and Redirection:
# Pipe output of one command to another
command1 | command2

# Redirect standard output to a file
command > output.txt

# Redirect standard error to a file
command 2> error.txt

# Append output to a file
command >> output.txt

# Combine standard output and error
command > log.txt 2>&1
Exit Status:
command
if [ $? -eq 0 ]; then
    # Command was successful
else
    # Command failed
fi
Environment Variables:
$HOME    # User's home directory
$USER    # Current user's username
$PATH    # List of directories to search for executable files

This cheat sheet covers the basics of Bash scripting. Bash offers many more features and commands, but these are a good starting point for writing simple scripts.

Here’s a simple example of a Bash script that greets the user:

#!/bin/bash

echo "Hello, what is your name?"
read name
echo "Nice to meet you, $name!"

To execute a Bash script, you typically make it executable using the chmod +x command to make it executable and then you can run the script by typing its name:

chmod +x script.sh
./script.sh

Conclusion

Bash scripting is highly versatile, allowing you to automate repetitive tasks, customize your environment, and create powerful system administration tools. It is widely used in various domains, including software development, system administration, and data processing.

That’s All Folks!

You can find all of our Linux guides here: Linux Guides

Luke Barber

Hey there! I’m Luke, a tech enthusiast simplifying Arduino, Python, Linux, and Ethical Hacking for beginners. With creds like CompTIA A+, Sec+, and CEH, I’m here to share my coding and tinkering adventures. Join me on Meganano for easy guides and a fun dive into tech, no genius required!