Jak wybrać, co pojawi się na pasku tytułu PuTTY w systemie Linux?

8

W konfiguracji PuTTY istnieje opcja w Terminalu → Funkcje o nazwie Wyłącz zdalnie sterowaną zmianę tytułu okna . Bez tej opcji pasek tytułu PuTTY będzie się zmieniał za każdym razem, gdy naciskam klawisz Return w konsoli.

Pomyślałem, że byłoby bardziej czystym rozwiązaniem ustawić tekst paska tytułu z Linuksa niż określić jeden dla każdego klienta PuTTY, który mam wokół. Gdzie więc mogę zmodyfikować ustawienia Linuksa jako tytułu okna?


$ uname -a
Linux drevo 2.6.32-5-amd64 # 1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64 GNU / Linux

$ cat / etc / debian_version
6.0.4
Hubro
źródło

Odpowiedzi:

6

Większość programów terminalowych - w tym konsola, putty i xterm - emuluje stary terminal VT100. Ten terminal pozwala ci ustawić pewne rzeczy, w tym pogrubienie, kolory, ustawienie tytułu terminala i tak dalej, przy użyciu specjalnych sekwencji znaków zwanych sekwencjami ucieczki.

Powłoka bash ma zmienną o nazwie PROMPT_COMMAND, która, jeśli jest ustawiona, jest oceniana przed każdym monitem, który wypisujesz (wierzę, że zsh ma coś podobnego, w rzeczywistości myślę, że bash wziął od nich kod). Możesz wyprowadzać sekwencje specjalne w PROMPT_COMMAND, a to ustawi pasek tytułu.

Oto co mam w swoim (Linux / bash):

USER=$(/usr/bin/id -un)
HOSTNAME=$(uname -n)
HOSTNAME=${HOSTNAME%%.*}
PROMPT_COMMAND='echo -ne "\e]0;$USER@${HOSTNAME}: $(pwd -P)\a"'

Możesz umieścić to w swoim ~ / .bashrc

Istnieje wiele dostosowań, które możesz zrobić z terminalem. Lubię pogrubienie w zachęcie, aby łatwiej zobaczyć jej koniec. To sprawia, że ​​jest odważnie żółty, dobry na moim domyślnym czarnym tle:

PS1="\[\e[33;1m\]\h:\$\[\e[0m\] "

Rozejrzyj się za dostosowaniem zapytań do systemu Linux, znajdziesz więcej poradników, niż wiesz, co zrobić. Wybierz ten, który uważasz za najłatwiejszy do odczytania.

Rich Homolka
źródło
14

Tytuł terminala jest ustawiany za pomocą specjalnych sekwencji specjalnych w danych wyjściowych konsoli. Domyślnie monit bash zawiera te sekwencje specjalne i ustawia tytuł do bieżącego katalogu roboczego.

Będziesz musiał edytować swoją zmienną PS1 (przez większość czasu, w której jest ustawiona ~/.bashrc), w przeciwnym razie bash nadpisze twój tytuł za każdym razem, gdy zostanie wyświetlony monit.

Następnie możesz ustawić tytuł, wstawiając następujący skrypt do skryptu, który zostanie wykonany po zalogowaniu, np . ~/.profile:

echo -e "\033]0;<your string>\007"
jhenninger
źródło
Uwaga, to jedyna odpowiedź na pytanie.
Erik Aronesty,
Zmień -ena, -enjeśli chcesz uniknąć dodatkowej pustej linii, która jest wysyłana przez polecenie echo.
ADTC,
2

Przeszukałem wiele forów i nie znalazłem odpowiedzi na pytanie:
jak uzyskać wszystkie dane wyjściowe polecenia do tytułu Putty?

Potrzebne, aby inne programy wiedziały, kiedy niektóre zadania na serwerze są wykonywane i czy wykonano je dobrze, czy źle. Plink stdout i stdin nie działały. Użyłem wielu poprawek z opóźnieniami oczekiwania i dla niektórych poleceń, które działały, dla innych nie. XSEL i XCLIP nie mogły zostać zainstalowane na tym serwerze.

Oto rozwiązanie:

  1. Uzyskaj dane wyjściowe polecenia w pliku.
  2. Echo ten plik do tytułu.

Na kliencie Putty i serwerze SUSE wygląda to tak:

ls /home | grep domagaja > logutoit.txt 
echo -e "\033]0\\;$(cat logutoit.txt)\\007\\c"

Mam nadzieję, że ktoś będzie mógł z tego skorzystać. Oczywiście nie będzie działać dla wszystkich typów serwerów i ustawień klienta szpachli, ale pomysł powinien działać dobrze.

Jacek Domagała
źródło