Меню Рубрики

Linux format time output

12 UNIX / Linux Time Command Output Format Option Examples

Linux time command is helpful to identify the time taken by a command.

Using Linux time command, you can figure out how much time was taken to execute a command, or shell script, or any other program.

By default, time command executes the given command or program. After execution, it displays the statistics and resources usage on the standard error.

Time command provides several command line options and various format options as explained in this tutorial

1. Basic Time Command Usage Example

Time command syntax:

For example, time command is run on sleep command without any option.

Let’s now understand some important command line options of this command.

2. Write Time Statistics Output to a File using -o option

This option is to restrict sending the command results to standard error, but writes results into output file. This option overwrites the specified file.

Here is an example :

3. Append Time Statistics Output to an Existing File using -a option

This option allows appending time command output into file. It is used along with -o option. This option avoids overwriting of content of output file by appending time command output into specified output file.

Here is an example :

4. Display Percentage of CPU used – %P

You can provide output formatting choices using -f option. This option allows user to provide output formatting options. It possibly does overriding the format specified in the environment variable TIME. Following formatting options are described below – %P, %M, %S, %e, %E, %C, %Z, %c, %x.

This option gives percentage of the CPU that the process of command (i.e. run under time command) has got for its execution. This is just user + system times divided by the total running time. It also prints a percentage sign.

Here, command output shows that find command took 82% of CPU.

5. Display Maximum Resident Set Size – %M

This option gives maximum resident set size of the process of command (i.e. run under time command) during its lifetime, in Kilobytes.

Here, command output shows that find command took 8688 KB as maximum resident size of process.

6. Display Total Number of CPU-seconds – %S

This option gives total number of CPU-seconds used by the system on behalf of the process (in kernel mode), in seconds.

Here, command output shows that find command took 0.35 CPU-seconds in kernel mode.

7. Display Elapsed Real Time in Seconds – %e

This option gives elapsed real time (i.e. wall clock) used by the process, in seconds.

Here, command output shows that sleep command execution elapsed till 2 seconds.

8. Display Elapsed Real Time in Different Format – %E

This option gives elapsed real time (i.e. wall clock) used by the process, in this format – [hours:]minutes:seconds.

Here, command output shows that sleep command execution took 0 hour, 0 minute and 2 seconds.

9. Display Program Name and Command Line Arguments – %C

This option gives name and command line arguments of the command (i.e. run under time command).

Here, time command output shows name of command being run and its command line arguments.

10. Display System Page Size in Bytes – %Z

This option gives system’s page size, in bytes. This is a per-system constant, but it may vary one system to another system.

Here, command output shows that sleep command used 4096 bytes as system page size.

11. Display Number of Context Switches – %c

This option gives number of times the process was context-switched involuntarily (because the time slice expired).

Here, command output shows that 254 times context switching of process took place during execution of find command under time command.

12. Display Exit Status of a Command – %x

This option gives exit status of the command (i.e. run under time command).

Here, command output shows that top1 command is failed because this tope1 as a file does not exist.

As per man page of time command, exit status of time command can be following:

  • If command specified to time command was invoked, the exit status is the exit status of command which is run with time command.
  • It is 127 if command specified to time command could not be found.
  • 126 if command specified to time command could be found but could not be invoked.
  • Some other non-zero value (1-125) if something else went wrong.

Finally, there is a difference between executing just “time” and “/usr/bin/time”. We explained this in our earlier introduction to time command article.

Источник

How To Format Date For Display or Use In a Shell Script

Linux Syntax To Format Date For Display On Screen

Tutorial details
Difficulty Easy (rss)
Root privileges No
Requirements date
Time 5m

The syntax is as follows for the GNU/date and BSD/date command:
date +FORMAT
date +”%FORMAT”
date +”%FORMAT%FORMAT”
date +”%FORMAT-%FORMAT”
An operand with a leading plus ( + ) sign signals a user-defined format string which specifies the format in which to display the date and time. The following examples are tested on GNU/Linux, Apple OS X Unix, and FreeBSD unix operating system.

Task: Display date in mm-dd-yy format

Open a terminal and type the following date command:
$ date +”%m-%d-%y”
Sample outputs:

To turn on 4 digit year display:
$ date +”%m-%d-%Y”
Just display date as mm/dd/yy format:
$ date +”%D”

Task: Display time only

Type the following command:
$ date +”%T”
Sample outputs:

To display locale’s 12-hour clock time, enter:
$ date +”%r”
Sample outputs:

To display time in HH:MM format, type:
$ date +”%H-%M”
Sample outputs:

How do I save time/date format to the shell variable?

Simply type the following command at the shell prompt:
$ NOW=$(date +”%m-%d-%Y”)
To display a variable use echo / printf command:
$ echo $NOW

A sample shell script

#!/bin/bash NOW=$(date +”%m-%d-%Y”) FILE=”backup.$NOW.tar.gz” echo “Backing up data to /nas42/backup.$NOW.tar.gz file, please wait. ” # rest of script # tar xcvf /nas42/backup.$NOW.tar.gz /home/ /etc/ /var

A complete list of FORMAT control characters supported by the GNU/date command

FORMAT controls the output. It can be the combination of any one of the following:

%FORMAT String Description
%% a literal %
%a locale’s abbreviated weekday name (e.g., Sun)
%A locale’s full weekday name (e.g., Sunday)
%b locale’s abbreviated month name (e.g., Jan)
%B locale’s full month name (e.g., January)
%c locale’s date and time (e.g., Thu Mar 3 23:05:25 2005)
%C century; like %Y, except omit last two digits (e.g., 21)
%d day of month (e.g, 01)
%D date; same as %m/%d/%y
%e day of month, space padded; same as %_d
%F full date; same as %Y-%m-%d
%g last two digits of year of ISO week number (see %G)
%G year of ISO week number (see %V); normally useful only with %V
%h same as %b
%H hour (00..23)
%I hour (01..12)
%j day of year (001..366)
%k hour ( 0..23)
%l hour ( 1..12)
%m month (01..12)
%M minute (00..59)
%n a newline
%N nanoseconds (000000000..999999999)
%p locale’s equivalent of either AM or PM; blank if not known
%P like %p, but lower case
%r locale’s 12-hour clock time (e.g., 11:11:04 PM)
%R 24-hour hour and minute; same as %H:%M
%s seconds since 1970-01-01 00:00:00 UTC
%S second (00..60)
%t a tab
%T time; same as %H:%M:%S
%u day of week (1..7); 1 is Monday
%U week number of year, with Sunday as first day of week (00..53)
%V ISO week number, with Monday as first day of week (01..53)
%w day of week (0..6); 0 is Sunday
%W week number of year, with Monday as first day of week (00..53)
%x locale’s date representation (e.g., 12/31/99)
%X locale’s time representation (e.g., 23:13:48)
%y last two digits of year (00..99)
%Y year
%z +hhmm numeric timezone (e.g., -0400 )
%:z +hh:mm numeric timezone (e.g., -04 :00)
%::z +hh:mm:ss numeric time zone (e.g., -04 :00:00)
%. z numeric time zone with : to necessary precision (e.g., -04 , +05:30)
%Z alphabetic time zone abbreviation (e.g., EDT)

A complete list of FORMAT control characters supported by the BSD/date command

The following works on Apple OS X, FreeBSD and BSD version of the date command:

%A is replaced by national representation of the full weekday name.
%a is replaced by national representation of the abbreviated weekday name.
%B is replaced by national representation of the full month name.
%b is replaced by national representation of the abbreviated month name.
%C is replaced by (year / 100) as decimal number; single digits are preceded by a zero.
%c is replaced by national representation of time and date.
%D is equivalent to “%m/%d/%y”.
%d is replaced by the day of the month as a decimal number (01-31).
%E* %O* POSIX locale extensions. The sequences %Ec %EC %Ex %EX %Ey %EY %Od %Oe %OH %OI %Om %OM %OS %Ou %OU %OV %Ow %OW %Oy are supposed to provide alternate representations.
Additionally %OB implemented to represent alternative months names (used standalone, without day mentioned).
%e is replaced by the day of the month as a decimal number (1-31); single digits are preceded by a blank.
%G is replaced by a year as a decimal number with century. This year is the one that contains the greater part of the week (Monday as the first day of the week).
%g is replaced by the same year as in “%G”, but as a decimal number without century (00-99).
%H is replaced by the hour (24-hour clock) as a decimal number (00-23).
%h the same as %b.
%I is replaced by the hour (12-hour clock) as a decimal number (01-12).
%j is replaced by the day of the year as a decimal number (001-366).
%k is replaced by the hour (24-hour clock) as a decimal number (0-23); single digits are preceded by a blank.
%l is replaced by the hour (12-hour clock) as a decimal number (1-12); single digits are preceded by a blank.
%M is replaced by the minute as a decimal number (00-59).
%m is replaced by the month as a decimal number (01-12).
%n is replaced by a newline.
%O* the same as %E*.
%p is replaced by national representation of either “ante meridiem” (a.m.) or “post meridiem” (p.m.) as appropriate.
%R is equivalent to “%H:%M”.
%r is equivalent to “%I:%M:%S %p”.
%S is replaced by the second as a decimal number (00-60).
%s is replaced by the number of seconds since the Epoch, UTC (see mktime(3)).
%T is equivalent to “%H:%M:%S”.
%t is replaced by a tab.
%U is replaced by the week number of the year (Sunday as the first day of the week) as a decimal number (00-53).
%u is replaced by the weekday (Monday as the first day of the week) as a decimal number (1-7).
%V is replaced by the week number of the year (Monday as the first day of the week) as a decimal number (01-53). If the week containing January 1 has four or more days in the new year, then it is week 1; otherwise it is the last week of the previous year, and the next week is week 1.
%v is equivalent to “%e-%b-%Y”.
%W is replaced by the week number of the year (Monday as the first day of the week) as a decimal number (00-53).
%w is replaced by the weekday (Sunday as the first day of the week) as a decimal number (0-6).
%X is replaced by national representation of the time.
%x is replaced by national representation of the date.
%Y is replaced by the year with century as a decimal number.
%y is replaced by the year without century as a decimal number (00-99).
%Z is replaced by the time zone name.
%z is replaced by the time zone offset from UTC; a leading plus sign stands for east of UTC, a minus sign for west of UTC, hours and minutes follow with two digits each and no delimiter between them (common form for RFC 822 date headers).
%+ is replaced by national representation of the date and time (the format is similar to that produced by date(1)).
%-* GNU libc extension. Do not do any padding when performing numerical outputs.
%_* GNU libc extension. Explicitly specify space for padding.
%0* GNU libc extension. Explicitly specify zero for padding.
%% is replaced by %.

A sample date session

Fig.01: date command in action

Conclusion

This page showed how to format dates on Linux and Unix like systems. For more information see the following pages:

Источник

Популярные записи


Adblock
detector