Czy istnieje sposób na nadanie określonej nazwy sesji ekranu unix? Powiedzmy na przykład, że uruchamiam ten sam program wiele razy, każdy z różnymi parametrami i chcę powiedzieć, który jest który.
Czy istnieje sposób na nadanie określonej nazwy sesji ekranu unix? Powiedzmy na przykład, że uruchamiam ten sam program wiele razy, każdy z różnymi parametrami i chcę powiedzieć, który jest który.
Odpowiedzi:
Możesz nazwać sesję, rozpoczynając ją z -S name
opcją. Z poziomu uruchomionego ekranu możesz to zmienić, pisząc CTRL-a, :sessionname name
. Możesz przeglądać uruchomione sesje ekranu za pomocą screen -ls
i łączyć się z jedną nazwą za pomocą screen -xS name
.
W ramach sesji na jednym ekranie możesz także nazwać każde okno. Zrób to, wpisując żądaną CTRL-a, A
nazwę. Możesz wyświetlić interaktywną listę nazwanych okien, wpisując CTRL-a, "
i wybierając z listy tę, na którą chcesz się przełączyć.
Nazewnictwo zarówno ekranów, jak i terminali na ekranach jest naprawdę pomocne, aby pamiętać, czym one są i dlaczego je uruchomiłeś.
:sessionname NEWNAME
), ale „ogólnie odradzana”. $STY
Zmienna nadal odnosi się do pierwotnej nazwy. Zobacz screen
instrukcję: gnu.org/software/screen/manual/html_node/Session-Name.html
Istnieją tutaj dwa pojęcia i nie jestem pewien, który z nich masz na myśli:
C-a c
tworzy okno C-a n
i C-a p
przełącza się do następnego / poprzedniego okna i tak dalej.-r
lub -R
) tworzy nową sesję.Windows ma tytuły, które można ustawić za pomocą -t
opcji wiersza polecenia, C-a A
powiązania klawiszy, title
polecenia lub \ek
sekwencji ucieczki. Aby uzyskać więcej informacji, zobacz odpowiedź shelltera .
Sesje mogą mieć nazwy. Zazwyczaj ustawiasz nazwę w wierszu poleceń z -S
opcją; jeśli nie podasz nazwy, screen ją wymyśli. Jeśli używasz wielu sesji ekranowych, zwykle nadajesz im różne nazwy sesji. Możesz wyświetlić listę sesji uruchomionych za pomocą screen -ls
; pierwszym słowem w każdym wierszu sesji jest 12345.sessionname
12345 to identyfikator procesu ekranowego. Użyj screen -r sessionname
lub, screen -r 12345
aby wznowić sesję wskazaną przez nazwę lub identyfikator procesu.
Ach ... Ekran, zabiera mnie z powrotem ;-)
Dla jednego okna
-t name
sets the title (a.k.a.) for the default shell or specified program.
See also the "shelltitle" .screenrc command.
W przypadku wielu sesji rozpoczętych z twojego .screenrc
screen -t top 2 nice top
screen -t ....
Oto link do jednej kopii strony podręcznika użytkownika dla ekranu.
Edycja: dodano
Aby zmienić bieżącą nazwę ekranu, utwórz narzędzie skryptowe powłoki, takie jak
cat scrnTitle.sh
#/bin/bash
echo -ne '\ek${0}\e\\'
Nie przetestowano, nie mam dostępnego ekranu w systemie, nad którym pracuję.
screen
co najmniej 25 lat. Zabiera mnie z powrotem, ponieważ teraz jest to specjalny przypadek użycia, który by mnie zabrał screen
. Zwykle po prostu się otwieram X-Terms
, ale pamiętam, kiedy wydawało się, że nie można uruchomić X
na komputerze 486 ;-) Pozdrawiam!
Powyższe odpowiedzi już mówią, jak nazwać ekran podczas jego uruchamiania. Wskazują również, że po uruchomieniu ekranu nie można zmienić nazwy ekranu. Tytuł okna można ustawić, ale nazwa użyta do dołączenia do ekranu pozostaje pid.pty.host.
Jednak, aby uzyskać użyteczny efekt, zauważyłem, że używanie aliasu działa całkiem dobrze. Jeśli zapomnę nazwać ekran lub znajdę się w sesji z kilkoma ekranami w górę, które naturalnie stały się ekranami dla określonych zadań, po prostu ustawiam alias dla polecenia, które należy do nich dołączyć.
przykład:
alias goncompile='screen -r 2354'
Samo wydanie polecenia aliasu przypomni Ci, jakie ekrany masz ustawione, i polecenia, które ustawiłeś, aby do nich dołączyć.
Użyj, unalias
aby je usunąć.