Як отримати дату та час за допомогою інтерфейсу командного рядка?


98

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

Відповіді:


173

dateКоманда покаже вам дату і час.

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

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

виводить дату та час у форматі 14:09:22 09/06/2015

Простішу для читання версію сторінки man можна знайти на Man U Pages


6
+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 AM ~]

Скинути підказку на номер за замовчуванням #: PS1="# "

Щоб зробити запит постійно доступним, додайте рядок підказок на ваш вибір, тобто

export PS1="\@ \w$bk "

to ~ / .profile.

Не можу допомогти, ми зараз прокручуємо ... додаємо кольори, визначаємо їх у .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 Розумний відповідь btw :)
Шарад Гаутам

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. годинник

    $ 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. Читання лише параметрів часового поясу системи.

      Місцевий час: гру 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 активний: так
 Остання зміна DST: DST розпочався о
                  не 2015-03-29 02:59:59 EET
                  не 2015-03-29 04:00:00 EEST
 Наступна зміна DST: закінчується DST (годинник стрибає на годину назад) о
                  не 2015-10-25 03:59:59 EEST
                  не 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команду вручну, щоб побачити час, коли ви хочете, і результат буде змішуватися з нормальним результатом вашої команди. Це здебільшого нормально, але колись це не практично.

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

У консолі або в терміналі, скажімо ssh, якщо ви користуєтеся екраном , серед мільйонів різних речей, які ви можете зробити (я вважав, що screenце неминуче для роботи, коли у мене був лише текстовий термінал) у вас є варіант --- який є зазвичай у конфігурації за замовчуванням --- мати годинник у рядку стану:

Екран на терміналі

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


1
Byobu (який базується на екрані) також робить це поза коробкою. Просто FYI
Сергій Колодяжний


1

Про пітона не згадувалося, тому я викину його тут:

$ 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.