Нет, они строго эквивалентны, оболочка выполняет dup2(2, 3)
как для 3>&2
, так и для 3<&2
. Затем fd 3
указывает на то же описание открытого файла , что и в fd 2. Это не влияет на режим/направление этого описания открытого файла . Невозможно изменить режим/направление описания открытого файла.
Операторы x>&y
и x<&y
отличаются только тогда, когда x
опущен. >&y
— это 1>&y
(, то же, что и 1<&y
), а <&y
— это 0<&y
(, то же, что и0>&y
).
Просто для полноты картины убедитесь, что ваш часовой пояс по умолчанию правильный (, что, поскольку он уже говорит Asia/Kolkata
и IST
в том, что вы видите, скорее всего, является избыточным ):
# dpkg-reconfigure tzdata
Используйте sudo
или su
, если вы еще не используете оболочку суперпользователя, конечно.
А затем синхронизируйте ваши системные часы с правильным временем UTC, используя демон, который получает время с некоторых серверов NTP (установив пакет ntp для этого, если он еще не установлен):
# ntpd -qg
Опция -q
указывает ntpd
просто установить время один раз и выйти. Он не становится демоном. Этот однократный режим -эквивалентен ntpd
для отдельной команды ntpdate
.
Параметр -g
важен по причинам, изложенным в разделе " Каков рекомендуемый способ синхронизации времени с помощью NTP?». Ваши часы намного больше , чем 1000 секунд, отличаются от правильного значения UTC. Разница в пять с половиной часов. Без использования опции -g
ntpd
просто откажется исправлять эту ситуацию.
(Конечно, есть и другие способы -переустановить системные часы на правильное время UTC. Вы можете ввести его вручную -в утилите SETUP прошивки машины или даже вручную -ввести его с помощью команды date
. Существуют даже инструменты, отличные от ntpd
, которые вы можете использовать для синхронизации с серверами NTP с этого момента, например, chronyd
из пакета chrony .)
Вот что произошло. Когда вы работали только с Windows, ваши аппаратные часы реального -реального времени (RTC )интерпретировались Windows как местное (IST )время. Вы установили операционную систему на базе Linux -(, это относится не только к Kali Linux ), но не устранил конфликт между операционными системами на основе Linux -(Unix -как операционные системы вообще )и Windows.
Windows думала и до сих пор думает, что ваши настоящие -часы показывают местное (IST )время. Обычно операционные системы на базе Linux -считают, что ваши реальные -часы показывают универсальное (UTC )время. Обратите внимание, что на самом аппаратном обеспечении часов нет регистра часового пояса; Таким образом, каждая операционная система должна решить, что на самом деле представляют регистры даты и времени в часах, в каком часовом поясе работают часы.
Это фундаментальный конфликт. Вам нужно это исправить.
Операционные системы на базе Linux -часто предоставляют выбор интерпретации реальных -регистров времени так же, как это делает Windows, но это плохой выбор по многим причинам, которые были бы (и является,тут и там на WWW )целые вопросы и ответы сами по себе. Гораздо лучше, если Windows и ваша операционная система на базе Linux -согласны понимать регистры RTC как считывание универсального(UTC )даты и времени.
Это можно сделать, настроив Windows; есть довольно широко известный параметр реестра. На самом деле вам не нужно ничего делать на стороне Linux , кроме для синхронизации RTC с датой и временем UTC. Как вы можете видеть из вывода timedatectl
, когда вы запустили его, у вас уже естьAsia/Kolkata
в качестве (часового пояса по умолчанию )и уже есть «RTC в локальной часовой поясе». (т. е. «понимать регистры RTC как локальные, так же, как это делает Windows» )установлено на «нет».
Если Windows повторно -синхронизирует RTC обратно со значениями IST до того, как вы получите возможность перенастроить и перезагрузить его, вам потребуется снова синхронизировать обратно со значениями UTC.
Так почему же ваши часы в графическом интерфейсе идут правильно? Это потому, что, по иронии судьбы, вы не настроили его с правильным часовым поясом IST в его настройках или настройках вашего рабочего стола. Он показывает вам время UTC или, возможно, время Дублина/Лондона/Лиссабона/Бамако/Фритауна/Ямусукро, и потому что в вашей системе «время UTC», взятое из вашего RTC операционной системой, на самом деле является локальным Значения времени IST, как указано в Windows, ваши часы с графическим интерфейсом, показывающие время UTC , просто выглядят правильно .
Это та же самая причина, по которой «Универсальное время», сообщаемое timedatectl
, имеет правильную дату и время для местного времени. Все, что сообщает о том, что ваша операционная система на базе Linux -в настоящее время считает UTC, на самом деле сообщает местную дату и время IST.
Значит нужно
ntpd
, как указано выше,вручную -установка его в утилите SETUP встроенного программного обеспечения вашей машины при включении питания -или даже в Windows )и