Linux Terminal Farbe ändern?
Hallo,
ich möchte wissen wie man die Farbe von dem Nutzername im Terminal ändern kann. (Im Anhang ist ein Bild).
P.S: hat diese Stelle im Terminal auch ein bestimmten Namen?

4 Antworten
"Zitat"Es gibt aber noch Alternativen wie tputdas einen anderen Weg geht. Ob tput allerdings auch in der .bashrc verwendet wird weiß ich nicht. "Zitat Ende"
Ja kann man, hier ein Script was einer aus der Linux Gemeinschaft für mich geschrieben hat:
## Start
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color) color_prompt=yes;;
esac
force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
alias grep='grep --color=auto'
fi
##EOF
Ich hab gerade nen neuen Server aufgesetzt und dieses Script vom meinem Alten in die Hiesige Bash eingeführt, und funzt.
Nu hab ich aber auch noch ne Frage, ich hab den User "steam" dieser hat su, und den würde ich gern in Gelb haben, wo muss ich das denn hier noch einfügen?
der hat : echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
Der ist noch in weis, aber die Unterordner in Blau, was ja noch erkennbar ist, meine Augen sind nicht mehr so die besten
lg
Hallo
ich möchte wissen wie man die Farbe von dem Nutzername im Terminal ändern kann.
Dafür ist die Variable PS1 zuständig. Wenn Du also mal folgendes in Deinem Terminal eingibst kannst Du sehen wie Deine Variable gefüllt ist:
echo $PS1
Der Inhalt der Variablen wird beim Login aus der /home/$USER/.bashrc gelesen, da könntest Du auch so nachsehen:
grep ^PS1 /home/$USER/.bashrc
oder natürlich direkt mit einem Texteditor öffnen:
nano /home/$USER/.bashrc
Meine sieht, für den "normalen User" so aus:
PS1='\[\e[00;32m\]\u\[\e[0m\]\[\e[00;37m\]@\[\e[0m\]\[\e[00;33m\]\H\[\e[0m\]\[\e[00;35m\]\w\[\e[0m\]\[\e[00;37m\]\n\[\e[0m\]'
Der ANSI-Farbcode enthält folgende Codes für
- Schriftfarbe
- Hellgrau
- Grün
- Schwarz
- Rot
- Beige
- Blau
- Lila
- Cyan
- Hintergrundfarbe
- Weiß
- Rot
- Grün
- Beige
- Blau
- Lila
- Cyan
- und Attribute
- Fett
- Unterstrichen
- Blinkend
Die Einleitung einer Farbausgabe beginnt immer mit \e[02m und muss mit einem \e[0m beendet werden. Natürlich lassen sich die Attribute mischen, also beispielsweise so:
echo -e "\e[31m\e[05mRot blinkend\e[0m"
Das erzeugt eine Zeile mit dem Text Rot blinkend
Die folgenden Variablen habe ich mir als Grundgerüst für meine Scripte zusammengestellt und die Namen selbst gewählt das sie meine Bedürfnisse befriedigen:
# 'Schriftfarben' | 'Attribute' | 'Hintergrundfarben'
# ------------------+-------------------+----------------------------
FETT1="\e[01m"
LGRAY1="\e[02m"
GREEN1="\e[32m"
UNDER1="\e[04m"
BLINK1="\e[05m"
BG_WHITE1="\e[07m"
BLACK1="\e[30m"
RED1="\e[31m"
SAND1="\e[33m"
BLUE1="\e[34m"
LILA1="\e[35m"
CYAN1="\e[36m"
BG_RED1="\e[41m"
BG_GREEN1="\e[42m"
BG_SAND1="\e[43m"
BG_BLUE1="\e[44m"
BG_LILA1="\e[45m"
BG_CYAN1="\e[46m"
BG_LGRAY1="\e[47m"
RESET="\e[0m"
Somit kann ich dann in meinen Scripten schreiben:
echo -e ${BG_RED1}BG rot${RESET}
statt der kryptischen Codes.
Es gibt aber noch Alternativen wie tput das einen anderen Weg geht. Ob tput allerdings auch in der .bashrc verwendet wird weiß ich nicht.
Linuxhase
Die Konfiguration ist in der .bashrc Datei im Homeverzeichnis.
In meiner .bashrc gab es eine Variable: "force_color_prompt", die hatte ich auf yes gesetzt.
Google hilft dir bestimmt weiter, weil mehr weiß ich im Moment auch nicht. ;)
Einfach die ganzen PSx-Umgebungsvariablen in der .bashrc manipulieren, bzw. hinzufügen.
Hier gibt es eine idiotensichere Anleitung:
https://wiki.ubuntuusers.de/Bash/Prompt/Viel Spaß! :)