Time function in linux

Команда time в Linux

Команда time используется для определения того, сколько времени требуется для выполнения данной команды. Это полезно для тестирования производительности ваших скриптов и команд.

Например, если у вас есть два разных сценария, выполняющих одну и ту же работу, и вы хотите знать, какой из них работает лучше, вы можете использовать команду Linux time, чтобы определить продолжительность выполнения каждого сценария.

Версии Time Command

Как Bash, так и Zsh, наиболее широко используемые оболочки Linux, имеют свои собственные встроенные версии команды time, которые имеют приоритет над командой времени Gnu.

Вы можете использовать команду type чтобы определить, является ли время двоичным или встроенным ключевым словом.

# Bash time is a shell keyword # Zsh time is a reserved word # GNU time (sh) time is /usr/bin/time 

Чтобы использовать команду Gnu time, вам необходимо указать полный путь к двоичному файлу времени, обычно /usr/bin/time , использовать команду env или использовать начальную обратную косую черту time которая предотвращает использование обоих и встроенных модулей.

Gnu time позволяет форматировать вывод и предоставляет другую полезную информацию, такую как ввод-вывод памяти и вызовы IPC.

Использование команды времени Linux

В следующем примере мы собираемся измерить время, необходимое для загрузки ядра Linux с помощью инструмента wget :

time wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.9.tar.xz

То, что будет напечатано в качестве вывода, зависит от версии используемой вами команды time:

# Bash real 0m33.961s user 0m0.340s sys 0m0.940s # Zsh 0.34s user 0.94s system 4% cpu 33.961 total # GNU time (sh) 0.34user 0.94system 0:33.96elapsed 4%CPU (0avgtext+0avgdata 6060maxresident)k 0inputs+201456outputs (0major+315minor)pagefaults 0swaps 
  • реальное или общее или прошедшее (время настенных часов) — это время от начала до конца разговора. Это время с момента нажатия клавиши Enter до момента завершения команды wget .
  • user — количество процессорного времени, проведенного в пользовательском режиме.
  • system или sys — количество процессорного времени, потраченного в режиме ядра.

Выводы

К настоящему времени вы должны хорошо понимать, как использовать команду времени. Если вы хотите узнать больше о команде Gnu time, посетите страницу руководства time .

Источник

Time function in linux

ОПИСАНИЕ

Функция time возвращает время в секундах, прошедшее с начала этой эпохи (00:00:00 UTC, 1 Января 1970 года). Если t не равно нулю, то возвращаемое значение будет также сохранено в памяти структуры t .

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ

При удачном завершении работы функции возвращается время в секундах, прошедшее с начала этой эпохи. При ошибке возвращается ((time_t)-1), а переменной errno присваивается номер ошибки.

НАЙДЕННЫЕ ОШИБКИ


ЗАМЕЧАНИЯ

POSIX.1 определяет значение выражения секунды, прошедшие с начала эпохи , как количество секунд между заданным временем и началом эпохи, рассчитанное по формуле преобразования эквивалента UTC-времени в конечное время согласно naOve; при этом игнорируются високосные секунды, а все года, номер которых делится на 4, считаются високосными. Это значение не является указанием на точное количество секунд между заданным временем и началом эпохи вследствие игнорирования високосных секунд и по причине того, что время в часах необязательно синхронизировано со временем стандартного источника. Есть тенденция считать, что это значение соответствует настоящему количеству секунд, прошедшему с начала эпохи. Смотрите POSIX.1 версии Annex B 2.2.2, где описаны подробности этой главы.

Читайте также:  Veeam backup linux servers

СООТВЕТСТВИЕ СТАНДАРТАМ

SVr4, SVID, POSIX, X/OPEN, BSD 4.3.
В BSD 4.3 этот вызов устарел после появления gettimeofday (2). POSIX не указывает на наличие возможных ошибок в работе функции.

Источник

How do I use the C date and time functions on UNIX?

Jon Skeet spoke of the complexity of programming dates and times at the 2009 DevDays in London. Can you give me an introduction to the ANSI C date/time functions on UNIX and indicate some of the deeper issues I should also consider when using dates and times?

1 Answer 1

Terminology

A date/time can be in two formats:

  • calendar time (a.k.a. simpletime) – time as an absolute value typically since some base time, often referred to as the Coordinated Universal Time
  • localtime (a.k.a. broken-down time) – a calendar time made up of components of year, month, day etc. which takes into account the local time zone including Daylight Saving Time if applicable.

Data types

The date/time functions and types are declared in the time.h header file.

Time can be stored as a whole number or as an instance of a structure:

  • as a number using the time_t arithmetic type – to store calendar time as the number of seconds elapsed since the UNIX epoch January 1, 1970 00:00:00
  • using the structure timeval – to store calendar time as the number of seconds and nanoseconds elapsed since the UNIX epoch January 1, 1970 00:00:00
  • using the structure tm to store localtime, it contains attributes such as the following:

The tm_isdst attribute above is used to indicate Daylight Saving Time (DST). If the value is positive it is DST, if the value is 0 it is not DST.

Program to print the current Coordinated Universal Time

#include #include int main ( int argc, char *argv[] )

In the program above the function time reads the UNIX system time, subtracts that from January 1, 1970 00:00:00 (the UNIX epoch) and returns its result in seconds.

Program to print the current local time

#include #include int main ( int argc, char *argv[] ) < time_t now; struct tm *lcltime; now = time ( NULL ); lcltime = localtime ( &now ); printf ( "The time is %d:%d\n", lcltime->tm_hour, lcltime->tm_min ); return 0; > 

In the program above the function localtime converts the elapsed time in seconds from the UNIX epoch into the broken-down time. localtime reads the UNIX environment TZ (through a call to the tzset function) to return the time relative to the timezone and to set the tm_isdst attribute.

A typical setting of the TZ variable in UNIX (using bash) would be as follows:

Program to print the current formatted Greenwich Mean Time

#include #include int main ( int argc, char *argv[] )

In the program above the function strftime provides specialised formatting of dates.

Other issues to consider

Источник

Linux Get Current Time

The time function is utilized within all operating systems like Windows, Linux, Unix, etc. You may see the current date and time at the desktop screens of your operating system within standard formats. But what about the exact current time displayed on the Linux operating system. If you are looking for a guide toward using date and time functions to display the current date and time in the Linux shell, then this article is for you. So let’s start this guide by logging in to your Ubuntu 20.04 system, as we will be performing each command on the Ubuntu 20.04 Linux shell.

After a successful login, you first need to open the Ubuntu’s terminal shell via the activity area at the desktop taskbar. Tap on it and write “terminal” in the search bar shown on your screen. The pop-up terminal screen will be shown, and you have to tap on it to open it quickly. If this process is lengthy, try using the “CTRL+Alt+T” to launch it faster. Now, your terminal will be opened within no more than 10 seconds on your screen. Let’s start with the most basic command to display the date and time of our current time zone on the shell. On executing the following command, the time has been displayed in the “hour: minute: second” format along with the time zone, i.e., PKT. It also shows the current date according to the time zone. Upon execution, you will get the output, as shown below:

If you want to only display the date on your shell with the specific format, you need to specify the format in the date command. Use the inverted commas to add the format in “%d” for day, %m for month, %y for year separated by “-” signs. This command execution shows us the date in standard “day-month-year” format. Upon execution, you will get the following output:

If you only want to display the current time on your shell using the “date” command, you must use the “+%T” character flag. On execution of this command, the current time for a specific time zone will be displayed in a standard format, i.e., “hour: minute: second”. Upon execution, you will get the output, as shown below:

If you want to display both the current and time in a single line with the time and date specification, you can also do that with the date command. So, to display the title “Date” and “Time”, we need to add “+DATE: %D” for date and “TIME: “%T” for time. The output of this instruction shows the date and time in standard format with titles of date/time on the shell. Upon execution, you will get the following output:

For example, we want to get the exact date and time of the same time zone and same time for some past year. We need to utilize the “—date” flag with the “=” sign to get the value to be searched. For example, we want to get a date and time exactly three years back for the same moment. On execution, the following instruction shows the date and time for the exact three years back, i.e., February 27, 2019:

Upon execution, you will get the affixed output.

If we want to take an exact date and time for the very next day on the shell, we will use the same “date” command with the “—date” flag. Use the value “tomorrow” in the inverted commas and execute the command. This will show the next exact date from the current exact date and time, i.e., February 28, 2022.

Upon execution, you will get the following output:

Upon execution, you will get the following output:

Upon execution, you will get the following output:

Upon execution, you will get the following output:

Upon execution, you will get the following output:

Another command is also known to get the current date and time for the current time zone of Linux. This command is the “timedatectl” instruction of Bash. It will not only show you the current local time but also the universal time, RTC time, your current time zone, and if the NTP services is enabled on your system. The execution of this command shows all the mentioned specifications on the shell, i.e., time and date. Upon execution, you will get the output, as shown below:

Let’s use the time zone date command to get the current time of our choice of time zone. So, we have to use the “TZ” variable with the “=” sign to get the time zone value. We want to get the current time for “Asia/Karachi” this time. The use of the “date” keyword with the “+%T” is necessary for fetching time for this time zone. We have the time displayed for the “Asia/Karachi” time zone upon execution. If you want to get the value for another time zone, use the specific time zone as a value to TZ. Let’s say we have been using the time zone “Asia/Istanbul” to get the current time for Istanbul, Turkey. The instruction shows the time for “Istanbul, Turkey” on the shell. Upon execution, you will get the following output:

$ TZ = “Asia / Karachi” date “+ % T”

$ TZ = “Asia / Istanbul” date “+ % T”

Conclusion:

In this article, we have tried to implement almost all the commands to get the current date and time for our current time zone. We have also tried to get the current time for other time zones, the past time and date, the coming date and time, and many more. You can also use %r and %R to get the current time. We hope you found this article helpful. Check the other Linux Hint articles for more tips and tutorials.

About the author

Omar Farooq

Hello Readers, I am Omar and I have been writing technical articles from last decade. You can check out my writing pieces.

Источник

Оцените статью
Adblock
detector