czy w jakiś sposób można sprawdzić, czy jestem teraz w sesji ekranowej? Potrzebuję go, aby ustalić, czy naciśnięcie klawiszy Ctrl + D oddzieli mnie od serwera lub po prostu zamknie bieżący ekran. Dzięki.
gnu-screen
console
wlk
źródło
źródło
if test -n "$STY"; then printf "This is a screen session named '$STY'.\n"; else printf "This is NOT a screen session.\n"; fi
Możesz spojrzeć na zmienną $ TERM.
echo $TERM
Jeśli jest to
screen
sesja, termin zmienna powinien zwracać „screen”.Ctrl-a -d (aby wyjść z ekranu)
Sprawdź także: https://stackoverflow.com/questions/3472287/how-do-you-tell-if-the-current-terminal-session-is-in-gnu-screen
źródło
"$TERM" = "screen"
wydaje się być zachowane podczas wchodzenia dosudo
środowiska, w przeciwieństwie do$STY
opcji.O ile nie zmieniłeś domyślnych przypisań klawiszy, możesz zrobić Ctrl+ a-> Ctrl+ t, który pokaże czas, jeśli jesteś na ekranie. Działa to nawet jeśli masz ssh: d gdzieś indziej, w przeciwieństwie do innych sugestii.
źródło
caption
Polecenie w~/.screenrc
to dobry sposób, aby różnicować sesję ekranu.Osobiście używam tego:
Dodaje taką linię jak ta u dołu ekranu:
Z pierwszą częścią (nazwa systemu + ładunek) w kolorze zielonym i datą w kolorze różowym. Przydatne i trudne do przeoczenia!
źródło
Znalazłem inne rozwiązanie:
Zmodyfikuj swój
.screenrc
, aby moja sesja ekranu wyglądała zupełnie inaczej niż normalny terminal.źródło
.screenrc
plik.aby zobaczyć swoje sesje i
aby ponownie połączyć się z odłączonym, jeśli został odłączony.
aby ponownie połączyć się z odłączonym.
źródło
Zrobić
screen -ls
. To będzie wyraźnie wskazująAttached
kontraDetached
statusu.Przykład w załączeniu:
Przykład odłączony:
źródło