Установка времени и даты без использования NTP

Поведение символа WERASE при обработке терминала в готовом режиме жестко запрограммировано , по крайней мере, в Linux:

           if (kill_type == WERASE) {
                   /* Equivalent to BSD's ALTWERASE. */
                   if (isalnum(c) || c == '_')
                           seen_alnums++;
                   else if (seen_alnums)
                           break;
           }

Таким образом, слова представляют собой буквы, цифры и подчеркивание. Так будет всегда в терминале Linux, когда приложение, которое выполняет свою собственную обработку в режиме готовой обработки, не работает.

версия readline (используемая bash и другими), кажется, немного отличается от версии ядра, но также кажется жестко запрограммированной :

Слова состоят из букв и цифр.

Но это не похоже на то, что bash на самом деле делает для меня: foo + bar ^ W стирает все, а не только bar . Более подробная информация об этом находится здесь .

4
26.12.2015, 02:37
1 ответ

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

date -s "$(curl -s --head http://google.com | grep ^Date: | sed 's/Date: //g') -0500"

**Примечание: Время, взятое из Google, указано в GMT, поэтому -0500 представляет собой числовой часовой пояс, в котором вы находитесь. Я нахожусь в US/EST, поэтому -0500, пожалуйста, измените ваше время в соответствии с вашим соответствующим часовым поясом, и это должно исправить любое "смещение местного времени", которое вы можете испытывать.

Если это не происходит каждый раз, когда вы выходите из системы и снова входите, вы можете попробовать установить это в .bash_profile или /etc/profile, чтобы он запускался первым каждый раз, когда вы входите в систему, это не "исправление", а скорее "хак".

8
27.01.2020, 20:49

Теги

Похожие вопросы