time command in Linux with examples

The time command in Linux is like a stop watch built directly into your command line terminal. The time command is able to track how much time any command takes to finish executing. All you need to do is preface some command with the time command. Your command will execute as normal, but it will also show the duration of the command.

If you have ever needed to measure the duration of a command, this is the perfect tool to do so. This is a basic command with very few options and a simple purpose. So, it doesn’t take long to learn. In this tutorial, you’ll learn how to use it in Linux through examples. Follow along with our examples below to see how it works.

In this tutorial you will learn:

  • How to use the time command on Linux

"<yoastmark

Software Requirements and Linux Command Line Conventions
Category Requirements, Conventions or Software Version Used
System Any Linux distro
Software time
Other Privileged access to your Linux system as root or via the sudo command.
Conventions # – requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command
$ – requires given linux commands to be executed as a regular non-privileged user

Frequently Used Options

The time command has a simple syntax and a very simple purpose, so it doesn’t take long to learn. The following examples will teach you everything you need to know about the time command, and the advanced section will show you some lesser used options that may come in handy every once in a while.

Note that in this guide we are mainly working with the Bash time command. GNU and other system shells like zsh have their own versions of the time command, which work slightly differently. Mainly, their output looks a little different.

time command in Linux Basic Examples

  1. As mentioned earlier, simply preface any command with the time command to measure how long the command takes to execute. A perfect example would be with the wget command, which is used to download a file from the Internet. With the time command, we can effectively measure how long a file takes to download to our computer.
    $ time wget http://example.com/linux.iso
    

    "Using

    The part we want to pay attention to is the last three lines, which were output by time.

    real	4m12.067s
    user	0m0.086s
    sys	0m1.030s
    

    Here’s what this information means:

    real – the actual amount of time it took to run the command
    user – the amount of time the CPU spent in user mode
    sys – the amount of time the CPU spent in kernel mode

  2. And now let’s try the same download, while measuring with GNU time. We can tell our system to use this specific implementation of the time command by supplying the full path to the command – /usr/bin/time.
    $ /usr/bin/time wget http://example.com/linux.iso
    
    Running the same download but measuring with GNU time
    Running the same download but measuring with GNU time

    We’ll only concern ourselves with the last two lines – the ones from GNU time.

    0.05user 0.95system 0:08.64elapsed 11%CPU (0avgtext+0avgdata 7220maxresident)k
    0inputs+30488outputs (0major+428minor)pagefaults 0swaps
    

    This outputs the same information as time, along with some more detailed statistics, and a very human-readable measurement of the CPU usage.

NOTE
You can always use the man command to read more about the time command and its official documentation. Click the previous link to see how to open the manual pages for any command on a Linux system.

Advanced Usage

The time command is pretty simple, and you will probably find that you don’t usually supply any extra options when running the command. However, there are a few different options that can supply with GNU time which will definitely come in handy in various situations. In this section of the guide, we’ll show you a few of the lesser known options that we think are useful.

time command in Linux Advanced Examples

  1. Use the -o option to send the time output to a specified file instead of to standard error as it usually is.
    $ /usr/bin/time -o download.log wget http://example.com/linux.iso
    

    In this case, the output from the time command is sent to download.log instead of to the terminal.

  2. Use the -v (verbose) option to get very detailed output. Be warned that the output is very large, so you probably won’t find yourself using this option very often.
    $ /usr/bin/time -v wget http://example.com/linux.iso
    
    	Command being timed: "wget https://wordpress.org/latest.tar.gz"
    	User time (seconds): 0.08
    	System time (seconds): 0.25
    	Percent of CPU this job got: 10%
    	Elapsed (wall clock) time (h:mm:ss or m:ss): 0:03.15
    	Average shared text size (kbytes): 0
    	Average unshared data size (kbytes): 0
    	Average stack size (kbytes): 0
    	Average total size (kbytes): 0
    	Maximum resident set size (kbytes): 7112
    	Average resident set size (kbytes): 0
    	Major (requiring I/O) page faults: 0
    	Minor (reclaiming a frame) page faults: 426
    	Voluntary context switches: 455
    	Involuntary context switches: 76
    	Swaps: 0
    	File system inputs: 0
    	File system outputs: 29448
    	Socket messages sent: 0
    	Socket messages received: 0
    	Signals delivered: 0
    	Page size (bytes): 4096
    	Exit status: 0
    

Closing Thoughts

In this guide, we learned all about the time command which is the only command you will need to know when you need to measure how long something takes to execute on a Linux system. This command is very simple, so usually you won’t need to run it with any extra options. However, we’ve shown you a few handy options in this guide which might prove useful in certain situations.