1. Introduction

Have you ever wondered how long a command takes to run on your system? We can find out by using the time command. However, what if we have multiple commands to run? Running each command individually with the time command can be time-consuming and tedious.

In this tutorial, we’ll cover how to use a single line of code to run the time command on multiple commands. This technique can help us measure the execution time of each command and improve our understanding of how our system works.

2. Using the time Command

The time command is a utility that is used to determine the amount of time taken to execute a command. The output of the time command includes the elapsed real time, user CPU time, and system CPU time. The elapsed real time is the actual time taken to execute the command, while the user CPU time is the time spent by the processor executing the command in user mode. The system CPU time is the time spent by the processor executing the command in kernel mode.

To use the time command, we simply prefix the command we want to run with the time command. For example, let’s determine how long it takes to execute the ls command:

$ time ls
real    0m0.003s
user    0m0.001s
sys     0m0.002s

This output tells us that the ls command took 0.003 seconds to execute, with 0.001 seconds spent in user mode and 0.002 seconds spent in kernel mode.

3. Running the time Command on Multiple Commands

We’ve learned how to use the time command on a single command. Now, let’s explore how to use it on multiple commands. There’s an easy way to accomplish this. We can use a semicolon (;) to separate each command. Then, we can add the time command as a prefix to the entire command. For example, to determine how long it takes to execute both the ls and pwd commands, let’s run:

$ time ls; time pwd
real    0m0.003s
user    0m0.001s
sys     0m0.002s
/home/user
real    0m0.001s
user    0m0.000s
sys     0m0.001s

This output tells us that the ls command took 0.003 seconds to execute, with 0.001 seconds spent in user mode and 0.002 seconds spent in kernel mode. The pwd command took 0.001 seconds to execute, with 0 seconds spent in user mode and 0.001 seconds spent in kernel mode.

4. Using Braces

Another way to run the time command on multiple commands is to use braces ({}) to group the commands together. This can be useful if we have a long list of commands that we want to run. To use braces, simply enclose the commands in curly braces and separate them with semicolons (;). For example, to determine how long it takes to execute the ls, pwd, and whoami commands, we would run:

$ time { ls; pwd; whoami; }
real    0m0.003s
user    0m0.001s
sys     0m0.002s
/home/user
user

This output tells us that the ls, pwd, and whoami commands took a total of 0.003 seconds to execute, with 0.001 seconds spent in user mode and 0.002 seconds spent in kernel mode.

5. Using a Subshell

A third way to run the time command on multiple commands is to use a subshell. A subshell is a shell that is started from within another shell. To use a subshell, simply enclose the commands in parentheses and prefix the entire command with the time command. For example, let’s find out how long it takes to execute the ls and pwd commands:

$ time (ls; pwd) real    0m0.003s
user    0m0.001s
sys     0m0.002s
/home/user

This output tells us that the ls and pwd commands took a total of 0.003 seconds to execute, with 0.001 seconds spent in user mode and 0.002 seconds spent in kernel mode.

6. Conclusion

In this article, we have covered three ways to run the time command on multiple commands. We can separate the commands with semicolons (;), use braces ({}) to group the commands together, or use a subshell. Each of these methods can be useful in different situations and can help us determine the execution time for a list of commands. With this information in hand, we can better optimize our workflow, thus improving our productivity.