Есть ли способ добавить некоторую информацию о времени / дате в приглашение TTY?

Если у вас есть менеджер графического дисплея, вы можете видеть дату и время там, но я не видел такой вещи, когда дело доходит до TTY. Если я хочу проверить текущее время (или дату), я должен войти в систему. Это немного раздражает, особенно утром. 🙂

Я знаю, что я могу добавить два параметра \t и \d в файл /etc/issue , для времени и даты, соответственно, но это решение не обновляет время.

Я подумал, что, возможно, есть способ добавить скрипт в / etc / issue, но я не нашел ничего полезного.

Есть ли способ добавить время / дату в приглашение?

Вы можете изменить приглашение в оболочках, установив переменную PS1

bash позволяет несколько предопределенных идентификаторов \d добавляет дату, а \D{FORMAT} добавляет время с форматом. пример \D{%H:%M:%S} будет печатать время (часы мин. секунд).

Стоит проверить, на что настроено текущее приглашение, и установить его вручную, пока вы не будете удовлетворены, а затем обновите свой .bashrc-файл, который устанавливает его в моей системе (Ubuntu).

Чтобы узнать, что ваш текущий PS1

echo $PS1

Чтобы установить его

PS1='\u@\h:\w \D{%H:%M:%S} \$ '

Идея №1 – Настройка agetty

Это всего лишь приблизительная идея, но я считаю, что если ваша система использует systemd то ваш запрос на вход контролируется этим служебным файлом:

 /lib/systemd/system/getty@.service 

Если вы просмотрите этот файл:

 $ grep -i exec /lib/systemd/system/getty@.service ExecStart=-/sbin/agetty --noclear %I 38400 linux 

Если вы посмотрите на man-страницу agetty вам нужно множество переключателей. Возможно, вы могли бы либо настроить приглашение, agetty показывает agetty либо вы можете поменять его на альтернативу, которая делает, или обернуть agetty скриптом, который будет отображать время / дату.

EDIT # 1

Вопрос: Я проверил agetty man, но нет никакой информации о том, чтобы отображать время / дату в режиме реального времени.

Это не означало, что это было из-за недостатка решения, это была очень важная идея для чего-то. В поисках этого нет никакого способа сделать то, что вы хотите, легко. Вам придется либо создать настраиваемую версию agetty либо изменить что-то еще, например, mgetty или что-то еще.

Идея №2 – файл / etc / issue

Единственный другой метод, который я могу себе представить, делать то, что вы хотите, с отображаемым временем / датой, – это использовать файл /etc/issue . Содержимое этого файла позволяет отображать несколько макросов, например:

выдержка agetty man page

 ISSUE ESCAPES The issue-file (/etc/issue or the file set with the -f option) may contain certain escape codes to display the system name, date and time etc. All escape codes consist of a backslash (\) immediately followed by one of the letters explained below. d Insert the current date. s Insert the system name, the name of the operating system. Same as `uname -s'. m Insert the architecture identifier of the machine. Same as `uname -m'. n Insert the nodename of the machine, also known as the hostname. Same as `uname -n'. o Insert the NIS domainname of the machine. Same as `hostname -d'. r Insert the release number of the OS. Same as `uname -r'. t Insert the current time. Example: On my system, the following /etc/issue file: This is \n.\o (\s \m \r) \t displays as This is thingol.orcan.dk (Linux i386 1.1.9) 18:29:30 

Вот пример моего старинного окна /etc/issue из системы Fedora Core 3, когда я использовал его для того, чтобы установить такие вещи.

ss # 1

Источник этого файла выглядит так:

ss # 2

Пингвин был сгенерирован с использованием команды linux_logo , в частности классической ( -c ) версии.