Edité el predeterminado/etc/update-motd.d/00-header , agregando un poco de color para que sea más fácil de leer:
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)"
Puedo ejecutar esa línea de código muy bien en una terminal, pero cuando edito 00-headercon esta información, obtengo los códigos de escape impresos en texto sin formato:
Welcome to \e[1;36mUbuntu 13.10\e[0m \e[2m(GNU/Linux 3.11.0-23-generic i686)\e[0m
¿Cómo puedo agregar un toque de color al mensaje del día?

picoReemplacé la línea de código existente con la primera línea o código que incluí en mi ejemplo. El problema es que el analizador MOTD trató los\ecaracteres y los siguientes como texto sin formato en lugar de como caracteres especiales.Respuestas:
Suponiendo que está en Ubuntu, que utiliza un guión para ejecutar scripts del sistema:
Ese archivo,
/etc/update-motd.d/00-headeres ejecutado por/bin/dash, (no/bin/bash), que es bastante minimalista (y rápido);parece que no admite la "\ e" en este lugar; use "\ 033" en su lugar.
Es diferente cuándo expandir los códigos de escape.
fuente
En Debian / Ubuntu, el
motdestá configurado en/etc/pam.d/sshd:lo que significa que al iniciar sesión correctamente, el sistema ejecutará algo como:
donde
/etc/motdestá la parte estática (solo impresa, sin fuente).Debian 9 / Ubuntu 16.04 :
Para generar la parte dinámica
run-partsse utiliza para el/etc/update-motd.ddirectorio:Para un código un poco más legible puede usar
tput setaf {color number}. Tenga en cuenta que para preservar los colores tenemos que establecerTERMvariables.guardar el archivo como p. ej.
/etc/update-motd.d/10-unamey asegúrese de que sea ejecutable:
Los colores básicos están numerados:
El código anterior genera:
Dependiendo de su gusto, puede producir resultados más coloridos utilizando
lolcato encabezados defiglet. La salida generada utiliza la sintaxis bash estándar:Debian 8 / Ubuntu 14.04
La parte dinámica se actualiza utilizando lo
/etc/init.d/motd startsiguiente:fuente