4

Я пытаюсь очистить содержимое экрана перед отображением MOTD, чтобы при подключении SSH к серверу заголовок MOTD находился в верхней части экрана, а не предыдущие команды, выполняемые на локальном компьютере.

Я попытался добавить clear в .bashrc но он также очищает MOTD.

Пример: очистить все над «Добро пожаловать в Ubuntu ....»

Скриншот

Вопрос: Как удалить все содержимое до отображения сообщения MOTD?

2 ответа2

2

Отредактируйте (или создайте) файл ~/.ssh/config и добавьте строки

PermitLocalCommand yes
LocalCommand /usr/bin/clear

около вершины. Это работает clear на клиенте (т.е. ваша локальная машина) после успешного подключения к серверу.

1

MOTD отображается модулем аутентификации pam в современных дистрибутивах Linux сразу после входа в систему. Ни один пользовательский скрипт не будет запущен до этого.

Вы можете просто изменить файл motd, чтобы очистить экран через escape-последовательности терминала. <esc> [2J <esc> [; H очистит экран и подпрыгнет. Откройте файл motd с помощью vim, нажмите i (режим вставки), нажмите ctrl+v, нажмите кнопку esc. Вы увидите ^ [. Вы только что набрали escape-символ ascii 27. Введите [2J, затем снова нажмите ctrl-v esc, затем [; H. Теперь нажмите esc (без ctrl-v, чтобы выйти из режима вставки в vi), затем нажмите shift+Z два раза.

Ваш экран будет очищен на всех терминалах, совместимых с VT100.

Другой вариант - отключить motd в pam. Найдите файл pam_motd.so в каталоге /etc/pam.d: grep pam_motd /etc/pam.d/*. Скорее всего, вы найдете что-то вроде

 session    optional   pam_motd.so

Прокомментируйте это с помощью #. Реализуйте свой собственный motd (следите за файлом /etc /motd в выбранном вами скрипте init). Конечно, теперь вы можете очистить перед кошкой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .