Kiedy ssh łączy się ze zdalnym serwerem, podoba mi się zmiana kolorów terminala. Korzystam setterm
z mojego zdalnego pliku ~ / .bashrc, aby to zrobić. Jednak gdy I exit
, kolory terminala nie są resetowane do kolorów lokalnych.
Rozwiązałem problem, ale nie jestem pewien, czy jest to najlepsze rozwiązanie. Tak mogłem wymyślić.
Na ~ / .bash_logout na zdalnym serwerze umieszczam:
echo -e "\033[0m"
/usr/bin/clear
Właśnie z ciekawości: czy ktoś zna lepszy sposób? (Mam echo -e "\033[0m"
linię z http://edoceo.com/liber/linux-bash-shell )
tput
Zamiast tego zalecam zmianę koloru. Sprawdź to.PS1
)?Odpowiedzi:
Lepiej:
tput sgr0
zwykle jest odpowiednikiemecho -en "\e[0m"
Różnica polega na tym, że użycie tput dostosuje się, jeśli typ terminala jest inny niż ANSI - i został poprawnie skonfigurowany.
man 5 terminfo
więcej kodów do użycia.Tam znajdziesz „reset”, więc
tput reset
powinno działać.(Wydruki TEST powinny mieć zamienione kolory tła / pierwszego planu, nie można ich tutaj pokazywać - tylko „emulowane”)
Znalazłem inną opcję tego , mniej naukowy sposób:
pakiet util-linux (na ubuntu) zawiera
setterm
(narzędzie powłoki).wpisz,
setterm --help
a znajdziesz dostępne opcje.RZECZYWISTE wyjście
tput sgr0
... zależy od konfiguracji twojego terminala, np
za powyższe.
Dowiedz się więcej, zacznij tutaj może https://en.wikipedia.org/wiki/Terminfo
Przewodnik programisty po ncurses - Google Books
Uwaga: ncurses zapewnia interfejsy dla termcap, terminfo i oczywiście przekleństw.
źródło
echo -e "\e \033 \x1b " | od -t x1z
- który jest najbardziej czytelny?tput sgr0
zwraca coś innego\e[0m
, spójrz na to:a=$(tput sgr0); set | grep ^a=
i zobacz wynik. Czy możesz również powiedzieć, jaka jest odpowiedniasetterm
opcja\e[0m
?\e[0m
lub to samo\e[m
dotyczy terminali typu ANSI, tput sgr0 może dać ci coś zupełnie innego, jeśli twój terminal nie jest ANSI. Nie możesz być pewien, nawet w przypadku terminali ANSI, ponieważ ten, którego faktycznie używasz, mógł zostać skonfigurowany inaczej w bazie danych terminfo.TERM=ansi a=$(tput sgr0); set | grep ^a=
i wynik jesta=$'\E[0;10m'
. Wygląda to inaczej niż\e[0m
\e(B\e[m
- spodziewaj się różnic!Wydaje mi się, że szukasz polecenia „resetu” konsoli
źródło
Może się okazać, że użycie tego w zdalnym .bash_logout jest bardziej odpowiednie:
Dobrze byłoby mieć to na każdym .bash_logout jako ogólną dobrą praktykę (a być może nawet na ~ / .profile)
źródło
Jeśli umieścisz żądane kolory w ~ / .bashrc konta zdalnego, powinno to zadziałać przy logowaniu i powrócić do ustawień lokalnych po wyjściu.
źródło