Chcę zmienić kolor tła terminala na podstawie nazwy hosta. Moim uzasadnieniem jest przede wszystkim mieć dodatkowy sposób na przypomnienie sobie, na jakim serwerze jestem, więc nie robię czegoś głupiego.
Czy mogę w jakiś sposób użyć standardowego tła bakłażana, jeśli jestem na komputerze lokalnym, a następnie zmienić kolor czerwony, jeśli ssh to produkcyjny serwer WWW lub inne hosty, które mógłbym określić?
Odpowiedzi:
Możesz użyć opcji localcommand ssh / config, aby uruchomić polecenie za każdym razem, gdy używany jest alias. używam
Zależy to od xtermcontrol i twojego terminu bycia xterm. Przypuszczalnie istnieją inne aplikacje na inne warunki.
Jedynym problemem związanym z tym podejściem jest to, że dzieje się tak, gdy wywołujesz ssh. Nie ma nic, by cofnąć zmianę koloru. Zrobiłem to, owijając funkcję wokół ssh, ale ma to również swoje wady.
źródło
Nie wydaje się,
gnome-terminal
aby dodawać nową kartę do istniejącego okna z wiersza polecenia. Ale istnieje kilka opcji, aby osiągnąć to, czego chcesz.Według profili poleceń
Utwórz nowy
gnome-terminal
profil dla każdego hosta, na którym będziesz SSH. Jeśli masz tylko kilka hostów, z którymi regularnie się łączysz, może to być najprostsze. Każdy profil może mieć inny tytuł, kolor pierwszego planu, kolor tła, niestandardowe polecenie i inne zdefiniowane ustawienia. Następnie możesz użyć,File -> Open Tab
aby otworzyć nową kartę z wybranym profilem.Profil wielokrotnego użytku
Utwórz nowy
gnome-terminal
profil, który będzie używany do otwierania nowego okna za każdym razem, gdy chcesz połączyć się z innym hostem SSH (na podstawie tej odpowiedzi AskUbuntu, na którą wskazał Stefano ). To działałoby dobrze, jeśli często łączysz się z wieloma różnymi hostami. Nie pozwoli to na rozróżnienie między różnymignome-terminal
oknami, w których jesteś podłączony do różnych hostów wyłącznie w kolorach tła / pierwszego planu, ale będziesz mieć inny tytuł dla każdego okna.gnome-terminal
profil (File -> New Profile
) na podstawieDefault
profilu i nazwij go „RemoteHost” (uwaga, brak spacji w „RemoteHost”, aby ułatwić komendy).Title and Command
zakładce zmień:Initial title:
do „hosta zdalnego”When terminal commands set their own titles:
doReplace initial title
Colors
zakładce zmień:Use colors from system theme
Build-in schemes:
doCustom
Text color:
iBackground color:
do wybranych przez ciebie kolorów. Należy pamiętać, że niektóre polecenia (np.ls
) Używają kolorów dla swoich wyników i nie chcesz wybierać kolorów, które utrudniają odczytanie wyników.Close
przycisk, aby zapisać nowy profil.gnome-terminal
okno dla każdego zdalnego hosta SSH za pomocą poleceniagnome-terminal --window-with-profile=RemoteHost -t "Some Remote SSH Host" -x ssh user@somehost
.-t
Opcja ustawiagnome-terminal
tytuł okna, a-x
opcja wykona resztę linii poleceń w terminalu. Możesz nawetalias
skrócić całkowitą liczbę naciśnięć klawiszy.Wiersz poleceń
Znalazłem ten wpis na blogu z następującym skryptem, który używa poleceń
xdotool
iwmctrl
(nie były one domyślnie instalowane na Ubuntu, więc być może trzeba je najpierw zainstalować), aby użyć skrótu klawiaturowegognome-terminal
Ctrl+ Shift+, taby otworzyć nową kartę w bieżącymgnome-terminal
oknie . Można go zmodyfikować, aby otworzyć nową kartę z określonym profilem i wykonać dla Ciebie polecenie.Inny
Możesz być kreatywny i spróbować innych rzeczy.
Ta odpowiedź SuperUser używa w zasadzie trochę akrobatów „script-fu”, aby utworzyć tymczasowy
gnome-terminal
profil, który służy do otwierania nowego okna. Może być zmodyfikowany do twojego użytku.Prawdopodobnie możesz użyć tego pytania i odpowiedzi StackOverflow oraz innych akrobatów „script-fu”, aby dynamicznie zmieniać
gnome-terminal
tytuł za każdym razem, gdy SSH łączy się ze zdalnym hostem. Nie byłby tak widoczny jak zmiany koloru tła / pierwszego planu, ale byłby lepszy od standardowegoTerminal
tytułu przez cały czas.źródło
Działa to w Gnome, JEŚLI chcesz użyć nowego okna terminala gnome dla każdej sesji ssh.
Utwórz nowy profil (z innym kolorem tła) o nazwie „Zdalny”
Wstaw następujące elementy do
.bash_aliases
lub.bashrc
Teraz
sshc remote-machine
otwiera nową sesję terminalu gnome z profilem „Zdalny”. spowoduje to rozróżnienie między profilami lokalnymi i zdalnymi.Aby pomieścić wiele profili / hostów, utwórz wiele profili i umieść w nich coś takiego
.bash_aliases
:Teraz
sshc Production
otworzy nowe okno sesji przy użyciu profilu „Czerwony”,sshc Test
otworzy nowe okno sesji przy użyciu profilu „Zielony”, a inni gospodarze będą używać profilu „Domyślny”.źródło
Zebranie tutaj wszystkich informacji ze stron stosu *** jest najprostszym rozwiązaniem, jakie znalazłem dla mint mate + mate terminal (tak samo jak dla gnome).
sudo apt get install xdotool
Teraz możesz zmodyfikować / etc / ssh / ssh_config, aby mógł zmienić profil po ustanowieniu każdej sesji ssh:
Teraz, po ustanowieniu każdego połączenia ssh w terminalu, profil zostanie zmieniony i nigdy więcej nie umieścisz niechcianej aktualizacji SQL w produkcyjnej bazie danych :)
Jednak nie ma łatwego rozwiązania, aby przywrócić domyślny profil po zamknięciu połączenia ssh. Ale to dla mnie wygląda wystarczająco i nie szukałem więcej informacji.
źródło