Я отредактировал значение по умолчанию/etc/update-motd.d/00-header
, добавив немного цвета, чтобы его было легче читать:
printf "Welcome to \e[1;34m%s\e[0m \e[2m(%s %s %s)\e[0m\n" "$DISTRIB_DESCRIPTION" "$(uname -o)" "$(uname -r)" "$(uname -m)"
Я могу просто запустить эту строку кода в терминале, но когда я редактирую 00-header
эту информацию, я получаю управляющие коды, напечатанные в виде открытого текста:
Welcome to \e[1;36mUbuntu 13.10\e[0m \e[2m(GNU/Linux 3.11.0-23-generic i686)\e[0m
Как я могу добавить всплеск цвета к сообщению дня?
pico
я заменил существующую строку коды с первой строкой O кода , который я включил в моем примере. Проблема заключается в том, что анализатор MOTD обрабатывает\e
и последующие символы как обычный текст, а не как специальные символы.Ответы:
Предполагая, что вы находитесь в Ubuntu - который использует dash для запуска системных скриптов:
Этот файл,
/etc/update-motd.d/00-header
выполняется/bin/dash
(не/bin/bash
), который является довольно минималистичным (и быстрым) -кажется, он не поддерживает «\ e» в этом месте - вместо этого используйте «\ 033» .
Разница в том, когда расширять escape-коды.
источник
В Debian / Ubuntu
motd
это настраивается в/etc/pam.d/sshd
:Это означает, что при успешном входе в систему система будет работать примерно так:
где
/etc/motd
статическая часть (только напечатанная, а не исходная).Debian 9 / Ubuntu 16.04 :
Для генерации динамической части
run-parts
используется/etc/update-motd.d
каталог:Для немного более читабельного кода вы можете использовать
tput setaf {color number}
. Обратите внимание, что для сохранения цветов мы должны установитьTERM
переменную.сохранить файл как например
/etc/update-motd.d/10-uname
и убедитесь, что это исполняемый файл:
Основные цвета пронумерованы:
Код выше генерирует:
В зависимости от вашего вкуса вы можете создать более красочный вывод, используя
lolcat
заголовкиfiglet
. Сгенерированный вывод использует стандартный синтаксис bash:Debian 8 / Ubuntu 14.04
Динамическая часть обновляется с использованием
/etc/init.d/motd start
следующего:источник