Wie kann ich festlegen, dass die Schriftart von PuTTY die Farbe automatisch ändert (während eine Verbindung zu einem Linux-Server besteht), wie ich es mit Windows cmd.exe mithilfe eines Hintergrund-Batch-Skripts getan habe?


0

Dank der Hilfe von @dbenham und @Woody konnte ich eine Windows-Eingabeaufforderung erstellen, die automatisch alle ~ 1,5 Sekunden ihre Textfarbe auf weißem Hintergrund ändert. Ich benutze PuTTY auch jeden Tag, fast öfter als die Windows-Eingabeaufforderung, und zum Spaß möchte ich auch herausfinden, wie man dasselbe in PuTTY macht, unabhängig davon, mit welchem ​​Server ich mich verbinde (daher gibt es hoffentlich eine Möglichkeit für die automatische Eingabe). change-text-color.bat, um lokal gelesen zu werden, anstatt es auf den Server zu stellen, mit dem ich mich verbinde). Alle Server, mit denen ich verbunden bin, sind Linux-Distributionen über SSH.

Meine Windows-Eingabeaufforderungslösung ist hier: https://superuser.com/a/700041/210421 (Und hier ist ein kurzes GIF, das ich erstellt habe, um zu zeigen, was es tut: http://i.minus.com/iZC4WapYtRVad.gif )

Gibt es eine Möglichkeit, dies mit PuTTY unter Linux zu tun? Kann ich eine (möglicherweise geänderte) Version dieser Batch-Datei oder ein Perl-Skript erstellen, das im Hintergrund jeder von mir geöffneten PuTTY-Sitzung ausgeführt wird? Ich habe 10 gespeicherte SSH-Verbindungen und viele weitere werden in Zukunft hinzugefügt. Wenn PuTTY die farbverändernde .bat-Datei lokal finden kann, anstatt sie auf jedem Server ablegen zu müssen, ist dies sehr praktisch. Eine Lösung, bei der ich sie auf jedem Server platzieren muss, wäre auch hilfreich, wenn das der einzige Weg ist.

Wenn nicht mit PuTTY, vielleicht mit einem anderen gemeinsamen SSH-Client?

Vielen Dank für jede Hilfe!

Die Windows-Lösung wird auch hier zitiert:


Am Ende habe ich dies als meinen Befehl auto-change-text-color.bat verwendet, weil ich wollte, dass nur der Text geändert wird, und einige Farben entfernt habe, die mit weißem Hintergrund nicht gut aussahen:

@echo off
:loop
set NUM=1 2 3 4 5 6 8 9 A B C D
for %%x in (%NUM%) do ( 
    color F%%x
    >nul ping localhost -n 4
)
goto loop

Die Verknüpfung für die Windows-Eingabeaufforderung wird in meinem Entwicklungsverzeichnis gestartet. Das "Ziel" lautet:

%COMSPEC% /t:F9 /s /k cd scripts && start /b %COMSPEC% /c auto-change-text-color.bat <nul && cd .. && env

Es wird im Skriptverzeichnis meiner Entwicklungsumgebung geöffnet, führt das Farbänderungsskript im Hintergrund aus, das in meinem Skriptordner gespeichert ist, kehrt dann zum übergeordneten Ordner zurück und führt eine weitere Batchdatei aus, in der alle meine Umgebungsvariablen festgelegt sind. Es ist perfekt.



Ich schätze, Sie könnten in conhost bleiben (dem Standard-Terminal-Emulator von Windows) und einfach Ihr Batch-Skript mit pscp verwenden, anstatt die ausführbare PuTTY-Hauptdatei mit einem eigenen Terminal.
Bob

Wenn der Ping-Befehl als Verzögerung gedacht ist, verwenden Sie ihn timeout /t 2 >nulan seiner Stelle. Und bitte sag, warum tust du das überhaupt? Zu viel Freizeit?
uSlackr

Antworten:


1

Sie können dies auf zwei Arten tun.

Stellen Sie zuerst und vielleicht am einfachsten die Farben in PuTTy in der Konfiguration ein

Bildbeschreibung hier eingeben

Ihre zweite Möglichkeit besteht darin, Farben in .bashrc zu schreiben.

Das benutze ich (in .bashrc)

################################
### Colors ###
################################

BLACK='\e[0;30m'
BLUE='\e[0;34m'
GREEN='\e[0;32m'
CYAN='\e[0;36m'
RED='\e[0;31m'
PURPLE='\e[0;35m'
BROWN='\e[0;33m'
LIGHTGRAY='\e[0;37m'
DARKGRAY='\e[1;30m'
LIGHTBLUE='\e[1;34m'
LIGHTGREEN='\e[1;32m'
LIGHTCYAN='\e[1;36m'
LIGHTRED='\e[1;31m'
LIGHTPURPLE='\e[1;35m'
YELLOW='\e[1;33m'
LIGHTYELLOW='\e[0;33m'
WHITE='\e[1;37m'
NC='\e[0m' # No Color


# Set Less Colors for Man Pages
if [ -x /usr/bin/less ]; then
export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking
export LESS_TERMCAP_md=$'\E[01;38;5;74m' # begin bold
export LESS_TERMCAP_me=$'\E[0m' # end mode
export LESS_TERMCAP_se=$'\E[0m' # end standout-mode
export LESS_TERMCAP_so=$'\E[38;5;246m' # begin standout-mode - info box
export LESS_TERMCAP_ue=$'\E[0m' # end underline
export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
fi

# NEW. FANCY PROMPT
if [[ $EUID == 0 ]] ; then
PS1='\[\033[01;31m\]\u\[\033[01;30m\]@\[\033[01;34m\]\h\[\033[01;30m\]:\[\033[01;34m\]\w\[\033[00m\]\$' #RED
else
PS1='\[\033[01;32m\]\u\[\033[01;30m\]@\[\033[01;34m\]\h\[\033[01;30m\]:\[\033[01;34m\]\w\[\033[00m\]\$' #Green

# PS1='\[\033[01;34m\]\u\[\033[01;30m\]@\[\033[01;34m\]\h\[\033[01;30m\]:\[\033[01;34m\]\w\[\033[00m\]\$' #Blue
fi

Siehe auch https://wiki.archlinux.org/index.php/Color_Bash_Prompt

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.