Du behöver "tala om för" koden till terminalen att du vill ha en annan default. Det finns inget standardiserat sätt att göra detta på, men i Linux har du setterm-programmet.
"setterm" använder sig av information från terminalens databas för att sätta attributen. Valet görs som
setterm -foreground black -background white -store
där "-store", förutom att ändra färgen gör den nya inställningen
till default för nuvarande konsol. Det behövs då att den nuvarande
konsolen (TERM enviroment-variabeln) beskrivs "bra nog" i termcap:s
databas. Om setterm av någon anledning inte fungerar - här kommer
några alternativ:
En av dessa xterms bör finnas tillgänglig och åtminstone en av dem bör stöda färger.
xterm -fg white -bg blue4
color_xterm -fg white -bg blue4
color-xterm -fg white -bg blue4
nxterm -fg white -bg blue4
där 'color_xterm' stöder färgversionen av 'ls'. Detta speciella val liknar färgerna som används på en SGI.
Du kan modifiera kärnan en gång för alla, likväl som att använda en "run-time default" för den virtuella konsolen med en escape-sekvens. Jag rekommenderar att modifiera kärnan om du tidigare har kompilerat din egen kärna.
Källfilen till kärnan är /usr/src/linux/drivers/char/console.c
på rad 1940, där du skall ändra:
def_color = 0x07; /* white */
ulcolor = 0x0f; /* bold white */
halfcolor = 0x08; /* grey */
Jag använder blå på vit med:
def_color = 0x17; /* white */
ulcolor = 0x1f; /* bold white */
halfcolor = 0x18; /* grey */
Siffrorna är attributkoderna angivna hexadecimalt och som används av grafik-kortet: viktigaste siffran (1:an i exemplet ovan) är bakgrunden - den minst signifikativa är förgrunden. 0 = svart, 1 = blå, 2 = grön, 3 = cyan, 4 = röd, 5 = lila, 6 = brun/gul, 7 = vit. Lägg till 8 för att få "skarpa" färger. Lägg märke till att, för det mesta, en ljus bakgrund == blinkande bokstäver, dovt färgad bakgrund. (Från sjlam1@mda023.cc.monash.edu.au).
Du kan också fixa så att du kör en viss display på valfri konsol, med en ickestandard-ANSI-sekvens (som du kan hitta om du tittar i koden till kärnan):
ESC [ 8 ]
som gör att du får standardfärger på för- och bakgrund. Reset Attributes"-strängen (ESC [ m) väljer dessa färger istället för vita bokstäver på svart bakgrund.
Du är tvungen att "eka" den här strängen till konsolen varje gång du startar om. Beroende på vad du använder din Linux-burk till, kan många olika platser vara lämpliga.
Det är här som "Welcome to Linux xx.yy" visas i Slackware, och det här är en bra plats för fristående utrustning (och blir troligtvis en pest för användare som loggar in med telnet). Den här filen skapas vid uppstart (slackware i /etc/rc.d/rc:s - Redhat i /etc/rc.d/rc.local), och du kan modifiera filen med raderna
echo ""> /etc/issue
echo Welcome to Linux `/bin/uname -a | /bin/cut -d\ -f3`. >> /etc/issue
till
ESCAPE="<Ersätt med ett escape-tecken här>"
echo "${ESCAPE}[H${ESCAPE}[37;44m${ESCAPE}[8]${ESCAPE}[2J"> /etc/issue
echo Welcome to Linux `/bin/uname -a | /bin/cut -d\ -f3`. >> /etc/issue
Den här koden lägger prompten längst upp till vänster på skärmen,
byter skärmfärgen (här vit text på blå bakgrund), sparar det här valet
och rensar skärmen från allt övrigt. Modifieringen börjar fungera efter
nästa uppstart. Kom ihåg att sätta in escape-tecknet i filen med C-q i
Emacs eller Ctrl-v i vi, eftersom skalet som exekverar skriptet inte
förstår /033
syntaxen.
if [ "$TERM" = "console" ]; then
echo "\033[37;44m\033[8]" #
# eller använd setterm.
setterm -foreground white -background blue -store
fi
if ( "$TERM" == "console" ) then
echo "\033[37;44m\033[8]"
# eller använd setterm.
setterm -foreground white -background blue -store
endif
Du bör kunna använda setterm-programmet som visas här ovan. Åter igen, det här kräver att fjärrmaskinen känner till din terminal, och att terminalemulatorn som sköter inloggningen stöder färg. Enligt min erfarenhet är den bästa vt100-emulatorn som finns tillgänglig för olika plattformar:
Se http://www.columbia.edu/kermit/ för detaljer om Kermit.