I'm trying to measure the execution time of a process that I call via the command line (i.e., I want to find out how long it takes to for the process to finish). Is there any command that I can add to the command calling the process that will achieve this?
9 Answers
Add time
before the command you want to measure. For example: time ls
.
The output will look like:
real 0m0.606s
user 0m0.000s
sys 0m0.002s
Explanation on real
, user
and sys
(from man time
):
real
: Elapsed real (wall clock) time used by the process, in seconds.user
: Total number of CPU-seconds that the process used directly (in user mode), in seconds.sys
: Total number of CPU-seconds used by the system on behalf of the process (in kernel mode), in seconds.
For a line-by-line delta measurement, try gnomon.
It is a command line utility, a bit like moreutils's ts, to prepend timestamp information to the standard output of another command. Useful for long-running processes where you'd like a historical record of what's taking so long.
Piping anything to gnomon will prepend a timestamp to each line, indicating how long that line was the last line in the buffer--that is, how long it took the next line to appear. By default, gnomon will display the seconds elapsed between each line, but that is configurable.

- 2,728
-
6
-
1(typo in link, fortunately URL ok). You can install it with
sudo npm i gnomon -g
if you havenpm
. Not sure how well it does against "progress" lines using '\r' (staying on the same line): in that case I'd like it counting it all as one long line, not separate ones. – Tomasz Gandor Jun 14 '17 at 21:42 -
-
2
date +"%T" && cp -r ./file /destination/folder/here && date +"%T"
Running this command in the terminal will give you the total time for coping a file

- 15,325
- 24
- 86
- 117

- 119
-
2
-
This is a good answer, under some circumstances. For example, the following
find
command -- without the2>/dev/null
redirect -- gives copiousPermission denied
messages. However, adding2>/dev/null
to that command breaks thetime
portion of that command. The following provides a good compromise:START="$(date +"%s")" && find 2>/dev/null / -path /mnt -prune -o -name "*libname-server-2.a*" -print; END="$(date +"%s")"; TIME="$((END - START))"; printf 'find command took %s sec\n' "$TIME"
, giving (e.g.)/usr/lib/libname-server-2.a find command took 3 sec
as the sole output. – Victoria Stuart May 22 '19 at 03:45 -
An addendum to my comment: of course, you can simply run
time sudo find / -path /mnt -prune -o -name "*libname-server-2.a*" -print
(i.e., assudo
) -- avoiding those numerousPermission denied
warnings. – Victoria Stuart May 22 '19 at 16:04
Occasionally I find myself needing a stopwatch to count how long it takes for an action like my app booting, in which case many of the solutions here are not useful.
For this I like to use sw.
Install
wget -q -O - http://git.io/sinister | sh -s -- -u https://raw.githubusercontent.com/coryfklein/sw/master/sw
Usage
sw
- start a stopwatch from 0, save start time in ~/.sw
sw [-r|--resume]
- start a stopwatch from the last saved start time (or current time if no last saved start time exists)
- "-r" stands for --resume

- 471
time -v command
-v
gives more information
-
7
-
@Gqqnbig were you using this command on Mac OS? If yes, you can
brew install gnu-time
and use the commandgtime
instead oftime
. – Alex Fortin Sep 22 '21 at 14:30 -
1If you use bash as your shell, it will use it's inbuild time function. To use the
time
program you may use/usr/bin/time -v COMMAND
orcommand time -v COMMAND
. :) – user unknown Nov 15 '22 at 23:50
In zsh, the time
command's output is slightly different.
To interpret the output:
time sleep 10
sleep 10 0.00s user 0.00s system 0% cpu 10.011 total
The last number gives the total time as though it were recorded with a real life stopwatch (what you want 99% of the time). The other values are explained here.
Open bashrc file
gedit ~\.bashrc
Find the following text:
if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\] :\[\033[01;34m\]\w\[\033[00m\]\$ '
And replace with:
if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\] [\d|\t]:\[\033[01;34m\]\w\[\033[00m\]\$ '
Restart terminal to check.

- 197,895
- 55
- 485
- 740

- 17
-
1This will show the time. It will neither build the difference to the last command, nor will it account for waiting to type and hit ENTER or typing the command. – user unknown Nov 15 '22 at 23:54
real
,user
, andsys
times are that this command returns? – Knowledge Cube Jul 17 '11 at 20:22sudo apt-get install time
if you are using a shell wheretime
is not a builtin. – poolie Oct 26 '16 at 16:45time
builtin, butman time
would be about an executable (like/usr/bin/time
, from thetime
package), and its output would look different. Also in Bash, you can runhelp time
for help with the builtin. – wjandrea Mar 25 '19 at 21:08time echo foo
don't display the time. Is there a way to display the time independent of the command when usingtime
? – Vencovsky Apr 12 '23 at 07:39time
is a fish builtin. If you want the standard version on your system, usecommand time ...
– BallpointBen Dec 08 '23 at 20:48