Цветен ASCII банер в Bash с toilet и figlet
За мен терминалът винаги трябва да е класически — черен с бели букви, без излишни цветове, без прозрачност и така нататък. Обаче системните администратори също имат душа и от време на време имат нужда от малко арт визия, дори и тя да е в ASCII формат. Има една малко известна програмка в хранилищата на Ubuntu — казва се toilet:
sudo apt-get install toilet
На мен специално ми харесаха само тези варианти:
toilet -F crop telehost.bg
toilet -F gay telehost.bg
toilet -F metal telehost.bg
toilet -F border telehost.bg
toilet -f mono9 -F metal telehost.bg
toilet -f bigmono9 -F crop telehost.bg
От които се получи това:

Защо изобщо е полезно
Всъщност често, когато работя, прескачам от терминал на една машина в терминал на друга. Понякога в бързането стават грешки — команда, писана за едната машина, се озовава на другата. Затова на машините, в които влизам по-често, веднага след логването изскача банер с името им. Хем е забавно, хем върши работа: погледът хваща името, преди пръстите да са започнали.
Банер при всяко влизане
За собствения потребител редът се добавя най-отдолу в ~/.bashrc:
toilet -f bigmono9 -F metal MyBanner
След което излезте с exit и влезте пак в терминала.
На сървър, където банерът трябва да се вижда от всички при влизане по SSH, мястото е MOTD:
sudo nano /etc/update-motd.d/00-banner
#!/bin/sh
toilet -f bigmono9 -F metal "$(hostname)"
sudo chmod +x /etc/update-motd.d/00-banner
Използването на $(hostname) вместо име на ръка значи, че един и същ файл върши работа на всички машини и никога не показва грешно име след клониране на виртуалка.
Шрифтове и филтри
Наличните шрифтове се изброяват така:
ls /usr/share/figlet/
showfigfonts | less
Филтърът е това, което добавя цвета или рамката — -F metal, -F crop, -F border, -F gay, а може и няколко наведнъж, разделени с двоеточие: -F metal:border.
figlet — по-старият роднина
toilet е наследник на figlet и ползва същите шрифтове. figlet е по-разпространен и се среща предварително инсталиран по-често, но няма филтри за цвят:
sudo apt-get install figlet
figlet -f slant MyServer
Едно предупреждение
На машина, до която се стига през автоматизация — скриптове, cron, rsync по SSH — банерът в .bashrc може да е повече от украшение. Някои инструменти четат изхода на сесията и допълнителните редове ги объркват. Затова: банер в .bashrc само за интерактивни сесии. Условието е кратко и си струва:
case $- in
*i*) toilet -f bigmono9 -F metal "$(hostname)" ;;
esac