Как получить дату и время с помощью интерфейса командной строки?

Как я могу получить текущую дату / время в терминале? В основном я запускаю свою систему в текстовом (консольном) режиме, и мне нужна команда, чтобы узнать текущую дату / время.

То date команда покажет вам дату и время.

man date покажет вам, как управлять выводом в любом формате, который вам нужен, если вы хотите что-то отличное от стандартного вывода. Например:

date "+%H:%M:%S   %d/%m/%y"

выведет дату и время в формате 14:09:22 09/06/2015

Более легкую для чтения версию справочной страницы можно найти на Справочные страницы Ubuntu

Время в качестве командной строки:

PS1="\@ \w$bk"

Выглядит так: 11:41 утра ~

Немного более причудливый, заключенный в скобки:

PS1="[ \@ \w$bk ]"

Выглядит так: [ 11:36 утра ~ ]

Добавьте пользователя и localhost со временем, все в скобках:

PS1="[ \u on \h \@ \w$bk ]"

Выглядит так: [ DrPete на LittleSorrel 10:34 утра ~ ]

Запрос на сброс к значению по умолчанию #: PS1="# "

Чтобы сделать подсказку постоянно доступно, добавьте строку запроса по вашему выбору, т.е.,

export PS1="\@ \w$bk "

в ~/.profile .

Ничего не могу с собой поделать, сейчас мы начинаем... добавляйте цвета, определяйте их в .профиль чтобы упростить их настройку:

 # 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

Тогда цветная подсказка superfancy будет выглядеть следующим образом:

PS1="[ $txtYellow\u on $txtCyan\h $txtRed\@ $txtWhite\w$bk ]"

Существует список команд, используемых для определения времени и даты:

  1. Команда date

    $ date Tue Jun  9 18:04:30 EEST 2015
  2. Команда zdump используется для отображения времени в указанном часовом поясе.

    $ zdump EESTEEST  Tue Jun  9 15:05:17 2015 EEST
  3. hwclock

    $ sudo hwclockTue 09 Jun 2015 06:05:55 PM EEST  -0.656710 seconds
  4. часы, но необходимо установить xview-клиенты

    sudo apt-get install xview-clients
  5. с помощью ntpdate команда. ntpdate используется для установки системного времени, но при использовании без sudo будет просто напечатано время и дата.

    $ ntpdate26 Jun 10:48:34 ntpdate[4748]: no servers can be used, exiting

С Ubuntu 15.04 (systemd) также есть timedatectl который показывает вам время и позволяет изменять его и многое другое в man timedatectl.

Без аргументов это дает

% timedatectlWarning: Игнорирование переменной TZ. Считывание только настроек часового пояса системы.      Местное время: ke 2015-06-10 10:31:59 EEST Универсальное время: ke 2015-06-10 07:31:59 UTC Время RTC: ke 2015-06-10 07:31:59 Часовой пояс: Европа/Хельсинки (EEST, +0300) Включен NTP: да Синхронизирован NTP: да RTC в локальной TZ: нет DST активен: да Последнее изменение летнего времени: Летнее время началось в su 2015-03-29 02:59:59 EET su 2015-03-29 04:00:00 EEST Следующее изменение летнего времени: летнее время заканчивается (часы перескакивают на один час назад) в su 2015-10-25 03:59:59 EEST su 2015-10-25 03:00:00 EET

И еще одна приятная функция, которую я использовал, - это timedatectl set-ntp true который активирует systemd-timesyncd который является встроенным клиентом SNTP (Simple Network Time Protocol), который синхронизирует ваши часы с удаленным сервером.

Хотя все ответы здесь верны, вам необходимо использовать date командуйте вручную, чтобы увидеть время, когда захотите, и выходные данные будут смешиваться с обычными выходными данными вашей команды. В основном это нормально, но иногда непрактично.

Ты можешь добавьте команду date в свою подсказку который будет показывать (фиксированные) часы каждый раз, когда оболочка готова к выполнению команды, или вы можете использовать один из мультиплексоров терминала, у которых есть строка состояния. Мой предпочтительный вариант (хотя я признаю, что он самый старый) - GNU screen.

В консоли или в терминале, скажем, через ssh, если вы используете экран, среди миллионов различных вещи, которые вы можете сделать (Раньше я думал о screen как неизбежный для работы, когда у меня был только текстовый терминал) у вас есть возможность --- которая обычно находится в конфигурации по умолчанию --- иметь часы в строке состояния:

Screen on a terminal

(Скриншот сделан на виртуальном терминале, но то же самое происходит и на виртуальной консоли).

Также будут выведены дата и время:

sudo hwclock

Более подробная информация:

man hwclock

Там не было никакого упоминания о python, поэтому я выложу его здесь:

$ python -c 'import time;print(time.asctime(time.localtime()))'                                                                       Tue Nov 29 20:25:27 2016

То, как это работает, довольно просто:

  • мы импортируем time модуль
  • localtime() функция дает struct тип данных со всей необходимой информацией, такой как время суток, день, год и т.д.
  • asctime() преобразует всю эту информацию в строку, и мы распечатываем ее в удобном формате

Работает как в python 2, так и в python 3.

если вы ищете что-то вроде ГГГГММДДХХММСС, 20160804020100 используйте это:

date +%Y%m%d%H%M%S

он обслуживает большинство целей, таких как резервное копирование файлов или фильтрация журналов.

Если вы не уверены в точности часов вашей системы или хотите использовать внешний источник времени, вы можете получить время через Интернет. Для достижения наилучшей точности вы можете использовать sntp (устанавливается по умолчанию в macOS и входит в состав дистрибутивов ntp) для получения даты:

sntp pool.ntp.org 

Если у вас есть только веб-доступ к Интернету, то его можно получить по протоколу HTTP с помощью ПВТ который доступен во многих системах как htpdate который обычно имеет точность только до ближайшей секунды, или вы можете получить к нему доступ с помощью TLS (который извлекает временную метку из обмена TLS) tlsdate который может обеспечить лучшую точность:

tlsdate -nV ntp.org