Jak mogę sprawić, aby bash wyglądał tak kolorowo?
Jak mogę sprawić, aby bash wyglądał tak kolorowo?
Odpowiedzi:
Otwórz ~/.bashrc
w edytorze tekstu i wierszu polecenia:
#force_color_prompt=yes
być:
force_color_prompt=yes
zapisz, a następnie uruchom source ~/.bashrc
force_color_prompt=yes
zamierzony sposób na włączenie kolorów? Dla mnie wymuszanie brzmi jak obejście.
Wymyśliłem to rozwiązanie:
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:
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 fgtab
wyświetli tablicę kolorów z liczbami. Liczby te oznaczają tput setf n
i tput setb n
gdzie „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/.bashrc
jak chcesz).
Dodaj $(tput setb n)
in $cname
, jeśli chcesz mieć wszystkie wierszu z tłem n.
man 5 terminfo
pokazuje, z czym tput
można korzystać, jest to jednak trochę techniczne, więc „uważaj” - ale trochę zgadywania i testowania mogą faktycznie pozwolić ci to zadziałać.