Hay varias formas de hacerlo.
Una forma es usando tput :
tput setab 4 establece el color de fondo en azul. Para establecer el color de primer plano, use tput setaf .
Otra forma es usar escapes ANSI sin procesar, aquí hay una buena documentación:https://misc.flogisoft.com/bash/tip_colors_and_formatting
El comando setterm se puede utilizar:
setterm -background blue
o
setterm -ba blue
Esto utiliza secuencias de control ECMA-48 estándar y realmente funcionará con muchos (pero no todos) emuladores de terminal. (Al contrario del manual, de hecho no usa terminfo para esta opción). ECMA-48 incluye la noción de un color predeterminado tanto para el fondo como para el primer plano, al que se puede cambiar con default :
setterm --background default
Para cambiar el color predeterminado, agregue el --store (que emite una secuencia de control que, sin embargo, solo funciona con el emulador de terminal integrado del kernel de Linux):
setterm --background red --store
Ver man setterm y setterm --help para más detalles.
Con xterm -como emuladores de terminal, puede usar:
xtermcontrol --bg blue
(blue o cualquier especificación de color compatible con XParseColor(3x) ).
Eso en realidad envía un \33]11;blue\7 secuencia, por lo que puede hacer lo mismo con:
printf '\33]11;%s\a' blue
Consulte Comandos del sistema operativo en el documento Secuencias de control de XTerm para obtener más información.