Bash-Farbe ändern

Status
Für weitere Antworten geschlossen.
oyster-manu

oyster-manu

toast
Bashfarbe ändern HOWTO

da die frage wie man die farbe der bash ändern kann immer wieder gestellt wird, poste ich mal wie man das am einfachsten macht.

(der howto ist eine vereinfachung von diesem howto http://linux.co.uk/howtos/Bash-Prompt-HOWTO/x329.html . das script stammt auch von hier)

1. führt diese script aus um einen überblick über die möglichen farben zu bekommen:


Code:
#!/bin/bash
#
#   This file echoes a bunch of color codes to the 
#   terminal to demonstrate what's available.  Each 
#   line is the color code of one forground color,
#   out of 17 (default + 16 escapes), followed by a 
#   test use of that color on all nine background 
#   colors (default + 8 escapes).
#

T='gYw'   # The test text

echo -e "\n                 40m     41m     42m     43m\
     44m     45m     46m     47m";

for FGs in '    m' '   1m' '  30m' '1;30m' '  31m' '1;31m' '  32m' \
           '1;32m' '  33m' '1;33m' '  34m' '1;34m' '  35m' '1;35m' \
           '  36m' '1;36m' '  37m' '1;37m';
  do FG=${FGs// /}
  echo -en " $FGs \033[$FG  $T  "
  for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
    do echo -en "$EINS \033[$FG\033[$BG  $T  \033[0m";
  done
  echo;
done
echo

2. sucht euch eine farbe aus und merkt euch den zugehörigen code (z.b. für ein dunkles rot: 31)

3. schreibt diese zeile in eure ~/.bashrc:
Code:
PS1="\[\033[XXm\][\u@\h:\w]$\[\033[0m\] "
und tragt anstelle des XX den farbcode ein (bei rot 31)

nach der änderung ist die console dann in der entsprechenden farbe.
(siehe beispiel bild)
eventuell ändert sich dann aber auch die farbe der loginconsole (tty1, usw).
um dies zu verhindern (oder um der loginconsole eine extra farbe zu geben) tragt in die ~/.profile die selbe zeile ein die ihr auch in die ~/.bashrc eingetragen habt und ändert dort den farbcode in die gewünschte farbe um.

ps: kleine erweiterungen:
- will man noch die uhrzeit in der console sehen, trägt man direkt hinter
Code:
PS1="\[\033[XXm\][\u@\h:\w]$\[\033[0m\] "
noch das hier ein: [\$(date +%H:%M:%S)]
- damit die komplette ein- und ausgabe in einer farbe ist lässt man \[\033[0m\] weg.
 

Anhänge

  • beispiel.jpg
    beispiel.jpg
    41,7 KB · Aufrufe: 161
Zuletzt bearbeitet:
Und wenn man grad dabei ist an seinem Prompt rumzuspielen, dann kann man denselben auch gleich entschlacken..
Ich weiß wer ich bin. Ich weiß auf welcher Maschine ich bin.. Ich denke mit
->
\W langt vollkommen ;-)
 
jaja, du minimalist :D
aber es gibt auch leute die soviel schnickschnack haben wollen wo gibt.
und die gemäßigten können es sich ja auch anpassen.
 
es gibt auch leute, die regelmaessig z.b. per ssh auf andere rechner zugreifen und da kann es schon mal passieren, dass man das falsche terminal erwischt ;)

auf bald
oenone
 
Frage!

Ich benutze Slack 10.0 und in der kommandozeile wenn ich z.B PS1="\w" eingebe geht es aber wenn ich reboote ist alles wieder beim alten!
 
du musst das in deine ~/.profile oder ~/.bash rein schreiben, wenn es nach einem reboot erhalten bleiben soll.
 
Das hier gibt auch einen ganz schönen Überblick über die Vorder- und Hintergrundfarben in einer shell:

Code:
#!/bin/bash

ESC="\033"
RST="${ESC}[0m"

# Foreground Color Array
 FG_NAME[1]="Black        "
 FG_NAME[2]="Red          "
 FG_NAME[3]="Green        "
 FG_NAME[4]="Brown        "
 FG_NAME[5]="Blue         "
 FG_NAME[6]="Purple       "
 FG_NAME[7]="Cyan         "
 FG_NAME[8]="Light Grey   "
 FG_NAME[9]="Dark Grey    "
FG_NAME[10]="Light Red    "
FG_NAME[11]="Light Green  "
FG_NAME[12]="Yellow       "
FG_NAME[13]="Light Blue   "
FG_NAME[14]="Light Purple "
FG_NAME[15]="Light Cyan   "
FG_NAME[16]="White        "

 FG_NUMBER[1]="[0;30m"
 FG_NUMBER[2]="[0;31m"
 FG_NUMBER[3]="[0;32m"
 FG_NUMBER[4]="[0;33m"
 FG_NUMBER[5]="[0;34m"
 FG_NUMBER[6]="[0;35m"
 FG_NUMBER[7]="[0;36m"
 FG_NUMBER[8]="[0;37m"
 FG_NUMBER[9]="[1;30m"
FG_NUMBER[10]="[1;31m"
FG_NUMBER[11]="[1;32m"
FG_NUMBER[12]="[1;33m"
FG_NUMBER[13]="[1;34m"
FG_NUMBER[14]="[1;35m"
FG_NUMBER[15]="[1;36m"
FG_NUMBER[16]="[1;37m"

# Background Color Array
BG_NAME[1]="Black "
BG_NAME[2]="Red   "
BG_NAME[3]="Green "
BG_NAME[4]="Brown "
BG_NAME[5]="Blue  "
BG_NAME[6]="Purple"
BG_NAME[7]="Cyan  "
BG_NAME[8]="Grey  "

BG_NUMBER[1]="[40m"
BG_NUMBER[2]="[41m"
BG_NUMBER[3]="[42m"
BG_NUMBER[4]="[43m"
BG_NUMBER[5]="[44m"
BG_NUMBER[6]="[45m"
BG_NUMBER[7]="[46m"
BG_NUMBER[8]="[47m"


FG_COUNTER=0
FG_SIZE=${#FG_NUMBER[@]}
while [ "$FG_COUNTER" -lt "$FG_SIZE" ]; do
       let FG_COUNTER="$FG_COUNTER+1"
	BG_COUNTER=0
	BG_SIZE=${#BG_NUMBER[@]}
	while [ "$BG_COUNTER" -lt "$BG_SIZE" ]; do
	    let BG_COUNTER="$BG_COUNTER+1"
	    # print the color name combined with each background color
	    echo -en "${ESC}${FG_NUMBER[FG_COUNTER]}${ESC}${BG_NUMBER[BG_COUNTER]}${FG_NAME[FG_COUNTER]}${RST}"
	done
	echo ""
done
 
farbige shell, soso. und dann gehste von 'ner richtige Unixmöhre (mit CDE) auf 'ne Linuxkiste, und auf einmal haste dunkelgraue Schrift auf hellschwarzem Hintergrund, oder, noch perverser, dunkelcyan auf so 'ner magenta Kacke. Da lass ich die --gay option doch lieber weg :D .
Hat ja auch lang genug gedauert bis ich rausgefunden hab, wie ich all den Blödsinn abschalte (roter root-Prompt und so'n Mist).
bye,
yai.
 
Super, erst werden Leichen geschändet und dann riechen die auch noch nach Fisch.
 
Status
Für weitere Antworten geschlossen.

Ähnliche Themen

Shellskript - Fehler in Cron

Löschroutine mit Überprüfung

Prozess aus eigenem Init script wird gekillt

Displayport + externer Monitor zeigt bei startx nichts erst bei DVI

Variableninhalt wird nicht gespeichert

Zurück
Oben