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


101

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

Ответы:


177

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

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

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

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

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


7
+1 просто для того, чтобы сказатьman date
Jshthornton

как я могу получить разницу часовых поясов?
Али Д.

19

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

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

Тогда бы необычная цветная подсказка была бы:

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

очень хороший ответ =) но немного короче.
AB

Мой первый ответ - так что теперь, когда я больше не девственница, - каким образом, повествование или ссылку на информацию о командной строке CLI?
drPete

Как я могу сделать это постоянным, например.
AB

просто экспортируйте @AB Умный Ответ, кстати :)
Шарад Гаутам

1
Лучший ответ = больше голосов
AB

16

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

  1. Команда date

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

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

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

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

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

11

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

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

% timedatectl
Предупреждение: игнорирование переменной TZ. Чтение только настроек часового пояса системы.

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


1
$ timedatectlотлично работает здесь и на Ubuntu 14.04.
дверная ручка

8

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

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

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

Экран на терминале

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


1
Byobu (который основан на экране) также делает это из коробки. Just FYI
Сергей Колодяжный


1

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

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

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

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

Работает в Python 2 и 3 одинаково.


0

если вы ищете что-то вроде YYYYMMDDHHMMSS , 20160804020100 используйте это:

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

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


2
Добро пожаловать в AskUbuntu. Хотя этот ответ пытается решить опубликованный вопрос, решение уже упоминалось в ответе несколькими другими пользователями. Лично я не считаю этот ответ полезным. Пожалуйста, улучшите свой пост
Сергей Колодяжный

0

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

sntp pool.ntp.org 

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

tlsdate -nV ntp.org
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.