Можно ли наложить цветной текст на консоль linux, как на этом изображении? [закрыто]

Вы должны отредактировать файл /etc/pam.d/gdm-password, закомментировав строку, содержащую проверку пользователя root,

#auth   required    pam_succeed_if.so user != root quiet_success
3
20.08.2017, 13:52
2 ответа

Да, вы можете делать такие вещи. Сосредоточив внимание только на вопросе о том, как разместить цветной текст в определенных позициях,один прямой, хотя и несколько низкоуровневый путь заключается в использовании утилиты tput. tputимеет множество команд, которые с помощью базы данных terminfoуправляют экраном терминала. Например, tput cup 23 4переместит курсор в строку 23 столбца 4 вашего терминала. Несколько других примеров:

tput ed  # clear to end of screen

tput setaf 2  # set foreground color to bright green

tput cubl  # move cursor left one space

tput rev  # turn on reverse video mode

tput sc  # save the cursor position
tput rc  # restore the cursor position

Вы также можете найти применение утилите stty. Например, если вы хотите определить размеры текущего экрана, вы можете сделать stty size.

Ранее я создал примерный «графический интерфейс» для одной из моих утилит, которая делила экран на две части. Верхняя часть представляла собой заголовок фиксированной высоты. Нижний раздел содержал (прокручиваемый) вывод команды. Я сделал это, используя только сценарии Bash и tput+ stty. Я во многом разобрался методом проб и ошибок, но в Интернете есть несколько полезных ресурсов, таких как http://linuxcommand.org/lc3_adv_tput.php

См. man tputи man 5 terminfo. Для последнего вам нужно прокрутить вниз, в частности, до раздела Предопределенные возможности.

Могут существовать абстракции более высокого уровня для terminfoманипулирования экраном, но если у вас относительно простые требования, tput— хороший вариант. (Я считаю, что tputявляется частью пакета ncurses, упомянутого в другом ответе здесь.)

Редактировать: Я должен добавить, поскольку похоже, что вы хотите, чтобы некоторые из этих функций были на всех ваших экранах, что вы можете сделать это, написав сценарий оболочки, который использует tput, как описано выше. и укажите переменную окружения PROMPT_COMMANDна этом скрипте, чтобы он вызывался каждый раз при обновлении приглашения. Если вы хотите более частое обновление, вам нужно будет запустить какой-то процесс в фоновом режиме, оставаясь при этом привязанным к вашему экрану. Это больше, чем я попытаюсь откусить в этом ответе.

6
27.01.2020, 21:11

Насколько я понимаю, вы ищете библиотеку типа ncursesили python urwid.

2
27.01.2020, 21:11

Теги

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