Как я могу получить текущую дату / время в терминале? В основном я запускаю свою систему в текстовом (консольном) режиме, и мне нужна команда, чтобы узнать текущую дату / время.
То 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 ]"
Существует список команд, используемых для определения времени и даты:
-
Команда
date
$ date Tue Jun 9 18:04:30 EEST 2015
-
Команда
zdump
используется для отображения времени в указанном часовом поясе.$ zdump EESTEEST Tue Jun 9 15:05:17 2015 EEST
-
hwclock
$ sudo hwclockTue 09 Jun 2015 06:05:55 PM EEST -0.656710 seconds
-
часы, но необходимо установить xview-клиенты
sudo apt-get install xview-clients
-
с помощью
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
как неизбежный для работы, когда у меня был только текстовый терминал) у вас есть возможность --- которая обычно находится в конфигурации по умолчанию --- иметь часы в строке состояния:
(Скриншот сделан на виртуальном терминале, но то же самое происходит и на виртуальной консоли).
Также будут выведены дата и время:
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