Czy kiedykolwiek spotkałeś się z sytuacją, w której wykonujesz długo trwające zadanie na zdalnej maszynie i nagle twoje połączenie spada, sesja SSH zostaje przerwana, a twoja praca utracona. Cóż, każdemu z nas zdarzyło się to w pewnym momencie, nieprawdaż? Na szczęście istnieje narzędzie o nazwie screen
, które pozwala nam wznowić sesje.
Wprowadzenie #
Screen lub GNU Screen jest multiplekserem terminalowym. Innymi słowy, oznacza to, że możesz rozpocząć sesję screen, a następnie otworzyć dowolną liczbę okien (wirtualnych terminali) wewnątrz tej sesji. Procesy uruchomione w Screen będą nadal działać, gdy ich okno nie jest widoczne, nawet jeśli zostaniesz rozłączony.
Instalacja Linux GNU Screen #
Pakiet screen jest preinstalowany na większości dystrybucji Linuksa w dzisiejszych czasach. Możesz sprawdzić czy jest on zainstalowany w twoim systemie wpisując:
screen --version
Screen version 4.06.02 (GNU) 23-Oct-17
Jeśli nie masz zainstalowanego ekranu w swoim systemie, możesz go łatwo zainstalować używając menadżera pakietów twojego distro.
Instalacja Linux Screen na Ubuntu i Debian #
sudo apt update
sudo apt install screen
Instalacja Linux Screen na CentOS i Fedora #
sudo yum install screen
Rozpoczęcie Linux Screen #
Aby rozpocząć sesję screen, po prostu wpisz screen
w swojej konsoli:
screen
To otworzy sesję screen, utworzy nowe okno i uruchomi powłokę w tym oknie.
Po otwarciu sesji ekranowej możesz uzyskać listę poleceń, wpisując:
Ctrl+a
?
Uruchamianie sesji nazwanej #
Sesje nazwane są przydatne, gdy uruchamiasz wiele sesji ekranowych. Aby utworzyć sesję nazwaną, uruchom polecenie screen z następującymi argumentami:
screen -S session_name
Zawsze dobrze jest wybrać opisową nazwę sesji.
Praca z Linux Screen Windows #
Gdy rozpoczynasz nową sesję screen, tworzy ona pojedyncze okno z powłoką w nim.
Możesz mieć wiele okien wewnątrz sesji Screen.
Aby utworzyć nowe okno z powłoką typu Ctrl+a
c
, pierwszy dostępny numer z zakresu 0...9
zostanie do niego przypisany.
Poniżej przedstawiono kilka najczęściej używanych poleceń do zarządzania systemem Linux Screen Windows:
-
Ctrl+a
c
Utwórz nowe okno (z powłoką) -
Ctrl+a
"
Wymień wszystkie okna -
Ctrl+a
0
Przełącz na okno 0 (według numeru) -
Ctrl+a
-
Ctrl+a
A
Zmień nazwę bieżącego okna -
Ctrl+a
S
Podziel bieżący region poziomo na dwa regiony -
Ctrl+a
|
Podziel bieżący region region pionowo na dwa regiony -
Ctrl+a
tab
Przełącz fokus wejścia na następny region -
Ctrl+a
-
Ctrl+a
Ctrl+a
Przełączaj między bieżącym a poprzednim regionem -
Ctrl+a
Q
Zamknij wszystkie regiony oprócz bieżącego -
Ctrl+a
X
Zamknij bieżący region
Detach from Linux Screen Session #
Możesz odłączyć się od sesji ekranowej w dowolnym momencie, wpisując:
Ctrl+a
d
Program uruchomiony w sesji ekranowej będzie nadal działał po odłączeniu się od sesji.
Przywrócenie sesji ekranowej w systemie Linux #
Aby wznowić sesję ekranową, użyj następującego polecenia:
screen -r
W przypadku, gdy masz wiele sesji ekranowych uruchomionych na swoim komputerze, musisz dodać identyfikator sesji ekranowej po przełączniku r
.
Aby znaleźć ID sesji, wylistuj aktualnie uruchomione sesje ekranowe za pomocą:
screen -ls
Jeśli chcesz przywrócić ekran 10835.pts-0, to wpisz następujące polecenie:
screen -r 10835
Dostosuj Linux Screen #
Gdy screen
jest uruchamiany, odczytuje swoje parametry konfiguracyjne z /etc/screenrc
i ~/.screenrc
jeśli plik jest obecny. Możemy zmodyfikować domyślne ustawienia Screen zgodnie z naszymi preferencjami, używając pliku .screenrc
.
Tutaj znajduje się przykładowa konfiguracja ~/.screenrc
z dostosowaną linią statusu i kilkoma dodatkowymi opcjami:
Podstawowe użycie ekranu w Linuksie #
Poniżej znajdują się najbardziej podstawowe kroki do rozpoczęcia pracy z ekranem:
- W wierszu poleceń wpisz
screen
. - Uruchom żądany program.
- Użyj sekwencji klawiszy
Ctrl-a
Ctrl-d
aby odłączyć się od sesji screen. - Przyłącz się ponownie do sesji ekranowej wpisując
screen -r
.
Wniosek #
W tym poradniku nauczyłeś się jak używać Gnu Screen. Teraz możesz zacząć używać narzędzia Screen i tworzyć wiele okien ekranowych w jednej sesji, nawigować między oknami, odłączać i wznawiać sesje ekranowe i personalizować swój terminal ekranowy używając pliku .screenrc
.
Jeszcze więcej informacji o Gnu Screen znajdziesz na stronie Screen User’s Manual.