Run Multiple Linux Commands in One Go

There are times when you want to execute multiple commands but don't want to wait for one to end so that you can run the next.

Luckily, Linux gives you multiple ways to run multiple commands and in this tutorial, I will show you three ways to do so:

  • Using the semicolon (;) operator
  • Using the AND (&&) operator
  • Using the OR (||) operator

1. Run multiple commands using a semicolon

💡
This method is useful when you want to execute chained command irrespective of whether the previous command was successfully executed or not.

Chaining multiple commands using a semicolon is the most famous method of running multiple commands and there's a reason why.

You can add any command in the chain of commands as every command will be executed individually and does not depend on the status of the previous command execution.

Command_A ; Command_B ; Command_C

As you can see, all I did is separate two commands with space and one semicolon.

Pretty easy. Right? Now, let's have a look at an example:

cr ; pwd ; hostname

Here, I've used one faulty command cr which sure gave me an error but the other two commands executed independently.

2. Run multiple commands using AND (&&) operator

💡
When you chain multiple commands with &&, the second command will only be executed if the first runs with no errors.

If you want to run multiple commands in such a way that if one of the commands returns an error, the later part of the chain won't be executed, you can use the AND operator.

To use execute multiple commands with the AND operator, you'd have to follow the following syntax:

Command_A && Command_B && Command_C

For example, here, I tried 3 commands and the middle one is faulty:

pwd && cr && hostname

As you can see, it gave me an error for the second command, and the third command was not executed.

3. Run multiple commands using OR (||) operator

💡
The OR operator will only execute the second command if the first one fails.

The whole idea of the OR operator lies in its name.

It will execute only one of the two commands that are chained together.

But how it will decide which one to execute and which to not? Simple.

If the first command gives an error then it will execute the 2nd command.

Think of it as an if-else statement.

To use the OR operator to run multiple commands, it needs to be executed in the following manner:

Command_A || Command_B

For example, here, I used the cat command to print the contents of the New.txt file and if there is no such file, the second command, touch will be used to create one:

cat New.txt || touch New.txt

As you can see, first, it gave me an error, and later on, it executed the touch command to create a new file.

Run commands in the background and foreground

If taking care of command execution is the main priority, running them in the background or foreground can do miracles for you.

Sounds interesting? Here's how you do it:

How to Run Linux Commands in Background & Bring Them Back
Learn how to run commands in background in Linux. You’ll also learn how to bring the background jobs back to foreground.

I hope you will find this guide helpful.