Jak uzyskać kolorowe bash?

87

Jak mogę sprawić, aby bash wyglądał tak kolorowo?

kolorowe bash

daniel451
źródło
daniel451, dlaczego odpowiedziałeś na swoje pytanie w tych samych terminach.
kva
4
@kva Zachęcamy do udzielania odpowiedzi na własne pytania w tym samym czasie, co publikowanie w sieci Stack Exchange.
CJ Dennis
Powiązane: askubuntu.com/questions/123268/… . Wyjaśnia, w jaki sposób poszczególne części monitu mogą być barwione w różny sposób.
FreezingFire,

Odpowiedzi:

128

Otwórz ~/.bashrcw edytorze tekstu i wierszu polecenia:

#force_color_prompt=yes

być:

force_color_prompt=yes

zapisz, a następnie uruchom source ~/.bashrc

Do Kra
źródło
Nie do końca odpowiada na pytanie, ale bardziej podoba mi się ten wynik (mniej rozpraszający uwagę).
James Hirschorn
Myślę, że to odpowiada. Dlaczego nie ?
Do Kra
Oto jak wygląda moja po twojej metodzie:! 2016-10-25 16: 12: 15.png Niezupełnie jak w pytaniu.
James Hirschorn,
@JamesHirschorn force_color włącza tylko kolory, zawsze możesz zarządzać, jak będzie wyglądać kolorowanie ze zmienną PS1, zobacz mój przykład w jednym ze skryptów github.com/to-kra/dotfiles/blob/master/scripts/…, które również włączają status git. .. możesz wyeksportować swój własny PS1 w profilu użytkownika i tworzyć fantazyjne kolory i format, który ci się podoba. dzięki
Do Kra
Czy force_color_prompt=yeszamierzony sposób na włączenie kolorów? Dla mnie wymuszanie brzmi jak obejście.
Jaakko
60

Wymyśliłem to rozwiązanie:

  • otwórz ~ / .bashrc w edytorze
  • skopiuj to i dodaj na końcu pliku .bashrc:

    PS1='\[\033[1;36m\]\u\[\033[1;31m\]@\[\033[1;32m\]\h:\[\033[1;35m\]\w\[\033[1;31m\]\$\[\033[0m\] '
  • zapisz plik i uruchom ponownie bashrc:

    source ~/.bashrc

Aby wyświetlić pełną listę dostępnych kolorów i innych opcji, wyszukaj następujące linki:

daniel451
źródło
Możesz sprawdzić płynny monit. To jest naprawdę wypełniony informacją mały monit. google.com/…
Scott Goodgame
Idealny wybór kolorów!
Puck
Online GUI, Easy Bash PS1 Generator
Jim Fred
3

Wersja, która jest nieco bardziej „ogólna” - powinna działać w zróżnicowanym środowisku:
(zależy od terminfo)

Wstaw to do $HOME/.bashrc:

function fgtab {
  echo "tput setf/setb - Foreground/Background table"
  for f in {0..7}; do
    for b in {0..7}; do
      echo -en "$(tput setf $f)$(tput setb $b) $f/$b "
    done
    echo -e "$(tput sgr 0)"
  done
}

# The prompt in a somewhat Terminal -type independent manner:
cname="$(tput setf 3)"
csgn="$(tput setf 4)"
chost="$(tput setf 2)"
cw="$(tput setf 6)"
crst="$(tput sgr 0)"
PS1="\[${cname}\]\u\[${csgn}\]@\[${chost}\]\h:\[${cw}\]\w\[${csgn}\]\$\[${crst}\] "

Następnie wykonaj source ~/.bashrc.

Następnie fgtabwyświetli tablicę kolorów z liczbami. Liczby te oznaczają tput setf ni tput setb ngdzie „n” jest liczbą, „f” oznacza „pierwszy plan”, a „b” oznacza kolor „tła”.

tput sgr 0 zresetuje kolory pierwszego planu i tła do wartości domyślnych.

I jak widać, zmiana kolorów używanych w monicie staje się naprawdę łatwa (wystarczy edytować ten sam numer, $HOME/.bashrcjak chcesz).

Dodaj $(tput setb n)in $cname, jeśli chcesz mieć wszystkie wierszu z tłem n.

Hannu
źródło
ibm.com/developerworks/linux/library/l-tip-prompt więcej bezpośredniego zgniatania numerów.
Hannu,
man 5 terminfopokazuje, z czym tputmożna korzystać, jest to jednak trochę techniczne, więc „uważaj” - ale trochę zgadywania i testowania mogą faktycznie pozwolić ci to zadziałać.
Hannu,