Editei o padrão/etc/update-motd.d/00-header
, adicionando um pouco de cor para facilitar a leitura:
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)"
Posso executar essa linha de código muito bem em um terminal, mas quando edito 00-header
com essas informações, obtenho os códigos de escape impressos em texto simples:
Welcome to \e[1;36mUbuntu 13.10\e[0m \e[2m(GNU/Linux 3.11.0-23-generic i686)\e[0m
Como posso adicionar um toque de cor à mensagem do dia?
pico
I substituiu a linha existente de código com a primeira linha o código que eu incluí no meu exemplo. O problema é que o analisador MOTD tratou os\e
caracteres e subsequentes como texto sem formatação em vez de caracteres especiais.Respostas:
Supondo que você esteja no Ubuntu - que usa o traço para executar scripts do sistema:
Esse arquivo
/etc/update-motd.d/00-header
,, é executado por/bin/dash
((não/bin/bash
)), que é bastante minimalista (e rápido) -parece não suportar o "\ e" nesse local - use "\ 033" .
É diferente quando expandir códigos de escape.
fonte
No Debian / Ubuntu, o
motd
está configurado em/etc/pam.d/sshd
:o que significa que, após o login bem-sucedido, o sistema executará algo como:
onde
/etc/motd
está a parte estática (apenas impressa, não originada).Debian 9 / Ubuntu 16.04 :
Para gerar a parte dinâmica
run-parts
é usado o/etc/update-motd.d
diretório:Para um código um pouco mais legível, você pode usar
tput setaf {color number}
. Observe que, para preservar as cores, precisamos definirTERM
variáveis.salve o arquivo como por exemplo
/etc/update-motd.d/10-uname
e verifique se é executável:
As cores básicas são numeradas:
O código acima gera:
Dependendo do seu gosto, você pode produzir impressões mais coloridas usando
lolcat
ou títulos defiglet
. A saída gerada usa a sintaxe padrão do bash:Debian 8 / Ubuntu 14.04
A parte dinâmica é atualizada usando
/etc/init.d/motd start
o seguinte:fonte