GNU/Linux >> Znalost Linux >  >> Linux

Ssh – Nastavit barvy terminálu místního počítače tak, aby byly použity barvy stroje, do kterého Ssh používám?

Mám barevné schéma, které se mi líbí, když jsem v terminálu, ale ssh do stroje, na kterém pracuji, z více zdrojů (místně, PuTTY, můj netbook atd.) a chci zachovat stejné barevné schéma v celém . Je to možné?

Zvláště to chci v PuTTY; je obtížné změnit barvy PuTTY.

Přijatá odpověď:

Barvy v terminálech se určují ve dvou krocích:

  • program spuštěný v terminálu říká terminálu, aby použil určité číslo barvy;
  • Terminál převede každé číslo barvy na hodnotu barvy.

Xterm má escape sekvenci pro změnu hodnoty barvy spojené s číslem barvy. Nepamatuji si, zda PuTTY podporuje tuto sekvenci; Vím, že Mintty ano.

set_color_value () {
  printf "\e]4;$1;$2\a"
}
set_color_value 4 '#6495ed'  # set color 4 (blue) to CornflowerBlue

Tato nastavení nepřežijí reset terminálu. Tento problém můžete překonat přidáním sekvence změn konfigurace kurzoru k resetovacímu řetězci vašeho terminálu.

  • V systému založeném na terminfo pomocí ncurses uložte nastavení terminfo svého terminálu do souboru s infocmp >>~/etc/terminfo.txt . Upravte popis a změňte rs1 (základní reset) sekvence, nap. nahradit rs1=Ec od rs1=EcE]4;4;#6495edE\ . U některých programů a nastavení může být nutné změnit rs2 (úplný reset) také. Poté zkompilujte popis terminfo pomocí tic ~/etc/terminfo.txt (to se zapisuje do adresáře $TERMINFO , nebo ~/.terminfo pokud není nastaveno).
  • V systému založeném na termcapu stáhněte nastavení termcap z databáze termcap (obvykle /etc/termcap ). Změňte is (základní reset) a rs (úplný reset) sekvence pro připojení vašich nastavení, např. :is=EcEcE]4;4;#6495edE\: . Nastavte TERMCAP proměnná prostředí na upravenou hodnotu (začínající a končící : ).

Nyní můžete něco takového vložit do svého ~/.profile :

if [ "$(ps -p $PPID -o comm=)" = sshd ] &&
   [ "$TERM" = "xterm" ]; then
  set_color_value … # set color scheme
  TERMCAP=…  # if necessary
fi

Linux
  1. Nastavení barev pozadí Vim

  2. Jak vytvořit webový terminál pomocí xterm.js pro ssh do systému v místní síti

  3. Jak mohu zkopírovat výstup ze vzdáleného příkazu do místní schránky?

  1. Použijte e-mailového klienta Alpine ve svém linuxovém terminálu

  2. Jak nastavit barvu příkazového řádku v Bash?

  3. Nastavte barvu aktivní karty tmux

  1. Použijte XMLStarlet k analýze XML v terminálu Linux

  2. Jak změnit barvu vašeho terminálu Linux

  3. Jsou terminálové barevné únikové sekvence definovány kdekoli pro Bash?