Linux Terminal Farbe ändern?

Bei diesen Teil möchte die Farbe ändern - (Computer, Software, Informatik)

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

Woher ich das weiß:eigene Erfahrung – Ich benutze seit 2007 Linux und habe LPIC101 und LPIC102

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. ;)