How can I get the current date and time in the terminal and set a custom command in the terminal for it? [closed]
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
I have to check the time in a Linux terminal. What is the command for getting date and time in a Linux terminal? Is there a way in which we can set a custom function?
This question seems on topic as it relates to a specific computing task on a specific operating system (which is just a software layer itself). As, @drstevens said, this is the first result in Google and it was informative for me needs. If it were off-topic, it would read something like «Do operating systems tell time?» or «What do you guys think about operating systems that tell time.» Stack Overflow is a great resource for beginners and it seems like this was closed as for being too beginner of a question. It should instead just be listed as a beginner question.
StackExchange is the place for answers. This is a good question. Perhaps the question should be migrated, but it should not be closed, in my opinion. This question appeared first in my Google results when I searched for «linux check time».
How to get date and time using command line interface?
How can I get current date/time in terminal. I mostly start up my system in text(console) mode and need the command to know the current date/time.
9 Answers 9
The date command will show you the date and time.
man date will show you how to control the output to whatever format you need, if you want something other than the standard output. For example:
will output the date and time in the format 14:09:22 09/06/2015
An easier to read version of the man page can be found on Ubuntu Man Pages
Time as the command line prompt:
A little fancier, enclosed in brackets:
Add the user and localhost with the time, all within brackets:
Looks like: [ DrPete on LittleSorrel 10:34 AM ~ ]
Reset prompt to default #: PS1=»# «
To make the prompt permanently available, add the prompt line of your choice, i.e.,
Can’t help it, we are rolling now. add colors, define them in .profile to make them easier to set up:
# Install GNU coreutils bk="\[\033[0;38m\]" #means no background and white lines txtBlue="\[\033[0;34m\]" #letter color blue txtRed="\[\033[0;31m\]" #letter color red txtCyan="\[\033[1;36m\]" #letter color cyan txtWhite="\[\033[1;37m\]" #letter color white txtYellow="\[\033[1;33m\]" #letter color yellow
Then a superfancy colored prompt would be:
PS1="[ $txtYellow\u on $txtCyan\h $txtRed\@ $txtWhite\w$bk ]"
My first answer — so now that I am no longer a virgin — expand in what way, narrative or link to CLI prompt info?
There are a list of command used for time and date:
$ date Tue Jun 9 18:04:30 EEST 2015
$ zdump EEST EEST Tue Jun 9 15:05:17 2015 EEST
$ sudo hwclock Tue 09 Jun 2015 06:05:55 PM EEST -0.656710 seconds
sudo apt-get install xview-clients
$ ntpdate 26 Jun 10:48:34 ntpdate[4748]: no servers can be used, exiting
With Ubuntu 15.04 (systemd) there is also timedatectl which shows you the time and allows you to change it and more in man timedatectl .
Without arguments it gives
% timedatectl Warning: Ignoring the TZ variable. Reading the system's time zone setting only. Local time: ke 2015-06-10 10:31:59 EEST Universal time: ke 2015-06-10 07:31:59 UTC RTC time: ke 2015-06-10 07:31:59 Time zone: Europe/Helsinki (EEST, +0300) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: yes Last DST change: DST began at su 2015-03-29 02:59:59 EET su 2015-03-29 04:00:00 EEST Next DST change: DST ends (the clock jumps one hour backwards) at su 2015-10-25 03:59:59 EEST su 2015-10-25 03:00:00 EET
And another nice feature that I have used is timedatectl set-ntp true which activates systemd-timesyncd which is inbuild SNTP (Simple Network Time Protocol) client which syncs your clock with remote server.
Although all the answers here are correct, you need to use the date command manually to see the time whenever you want, and the output will mix with normal output of your command. This is mostly ok, but sometime is not practical.
You can add the date command to your prompt which will show a (fixed) clock every time the shell is ready for the command, or you can use one of the terminal multiplexer that have a status line. My preferred one (although I admit the oldest one) is GNU screen.
In console or in a terminal, say via ssh , if you use screen, among zillions of different things you can do (I used to think about screen as unavoidable for working when I had just a text terminal) you have the option — which is normally in the default configuration — of having a clock in the status line:
(The screenshot is on a virtual terminal, but it’s the same on a virtual console).
Команда date в Linux
Главное свойство утилит GNU/Linux — делать что-то одно, но эффективно. Яркий пример — команда date Linux, работающая с датой и временем. С её помощью можно извлекать любую дату в разнообразном формате, в том числе и рассчитывать прошлое и будущее время. Привилегированные пользователи могут перезаписывать системное время, используя её.
Утилита предустановлена во всех дистрибутивах GNU/Linux. В этой статье будут рассмотрены возможности date и способы применения этой команды.
Синтаксис команды date
Программа может выполнятся от имени обычного пользователя. Стандартный синтаксис команды (квадратные скобки обозначают необязательное наличие):
date [ ОПЦИИ ] . [ +ФОРМАТ ]
Ниже представлена таблица с часто применяемыми опциями для date.
Опция | Длинный вариант | Значение |
---|---|---|
-d STRING | —date=STRING | Вывод даты по указанной строке (например ‘yesterday’, ‘tomorrow’, ‘last monday’). |
-I | —iso-8601[=FMT] | Вывод даты в формате ISO 8601. FMT по умолчанию содержит ‘date’. Также может содержать ‘hourse’, ‘minutes’, ‘seconds’, ‘ns’ для отображения соответствующих значений и часовой пояс относительно UTC рядом с датой. |
—rfc-3339=FMT | Вывод даты в формате RFC 3339. FMT по умолчанию содержит ‘date’. Также может содержать ‘seconds’ и ‘ns’ для отображения секунд или наносекунд. | |
-r FILE | —reference=FILE | Вывод даты последней модификации указанного файла в формате по умолчанию. |
-u | —utc | Вывод UTC-даты |
Аргумент ФОРМАТ отвечает за форматирование вывода даты. Для его указания необходимо поставить знак «+» и написать нужную маску. Наиболее популярные форматы:
Формат | Значение |
---|---|
%% | Знак процента |
%a | День недели текущей локали в короткой форме («Чтв») |
%A | День недели текущей локали в длинной форме («Четверг») |
%b | Месяц года текущей локали в короткой форме в родительном падеже («янв») |
%B | Месяц года текущей локали в длинной форме в родительном падеже («января») |
%c | Дата и время текущей локали без указания часового пояса |
%С | Первые две цифры текущего года |
%d | Числовой день месяца с ведущим нулём |
%D | Дата в формате %m/%d/%y |
%e | День месяца; аналог %_d |
%F | Дата в формате %Y-%m-%d |
%h | Аналог %b |
%H | Часы (00..23) |
%I | Часы (01..12) |
%j | День года (001..366) |
%m | Месяц (01..12) |
%M | Минуты (00..59) |
%n | Новая строка |
%q | Квартал года |
%S | Секунды (00..59) |
%t | Знак табуляции |
%T | Время в формате %H:%M:%S |
%u | Числовой день недели; 1 — понедельник |
%x | Дата в локальном формате |
%X | Время в локальном формате |
%Z | Аббревиатура временной зоны |
Примеры использования date
Введем команду без параметров.
Будет отображена текущая дата и время в соответствии с настройками локали системы.
Команда date без параметров по умолчанию применяет маску %a %b %d %X %Z. Поскольку все форматы должны быть переданы как один параметр (из-за принципа обработки данных командным интерпретатором Bash), пробелы между ними необходимо экранировать обратным слэшем (\) или взять в кавычки.
Особое внимание следует уделить параметру -d (—date). Его функциональность не слишком очевидна, но при этом наиболее обширна.
Пример 1. Вычисление даты по числу секунд, прошедших с 1 января 1970 года.
Пример 2. Вычисление даты и времени следующего понедельника при указании часового пояса Нью-Йорка в 03:00.
date —date=’TZ=»America/New_York» 03:00 next mon’
Обратите внимание: указывать название дня недели или месяца можно в любом регистре, в короткой или длинной форме. Параметры next и last обозначают следующий и прошедший, соответственно, ближайшие дни недели.
Пример 3. Если текущий день месяца — последний, сформировать отчет о занятости дискового пространства корневого и домашнего каталога в файл report.
#!/bin/bash
if [[ $(date —date=’next day’ +%d) = ’01’ ]]; then
df -h / /home > report
Такой скрипт можно использовать для автоматизации работы с помощью демона crontab или anacron.
Выводы
Команда date Linux является эффективным инструментом работы с датой и временем, с широкой возможностью их расчёта для прошедших или будущих показателей. Также она применяется в написании сценариев в командном интерпретаторе Bash.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.