Przydatnym poleceniem systemu Linux, które może przydać się w pracy z serwerem, szczególnie podczas pracy zdalnej, jest screen. Służy ono do uruchamiania wielu równoczesnych terminali w tle, z możliwością podejrzenia ich w każdej chwili. Łatwo wyobrazić sobie sytuację, w której przegrywamy większą ilość danych na serwer, a jednocześnie nie chcemy pozbawiać się możliwości aktywnej pracy w terminalu – wówczas z pomocą przychodzi właśnie screen.
Poza oczywistą wygodą tego rozwiązania istnieje jeszcze jeden ważny powód, dla którego warto z niego korzystać. Otóż polecenie wykonywane jest bezpośrednio w terminalu serwera, więc ewentualne zerwanie połączenia z Internetem, czy zanik prądu w sieci energetycznej, nie przerwie nam aktualnie wykonywanej czynności. W takiej sytuacji wystarczy ponownie zalogować się na serwer, aby zobaczyć, że polecenie otwarte w wirtualnej konsoli nadal jest wykonywane. Dodatkowo nic nie stoi na przeszkodzie, aby wielu użytkowników, na przykład łączących się przez SSH, miało jednoczesny podgląd na wykonywane w screenie
polecenie.
Aby uruchomić wirtualną konsolę, należy wpisać w terminalu polecenie:
$ screen
Jednak program nie zawsze będzie zainstalowany w systemie (serwery dostępne w ofercie hosting.linux.pl domyślnie mają zainstalowanego screena
).
Ryc. 1. Komunikat o braku screena
w systemie Ubuntu.
Instalacja różni się w zależności od używanej dystrybucji. Dla systemów z rodziny Debiana i Ubuntu można zrobić to poleceniem:
$ sudo apt install screen
Po uruchomieniu polecenia, wyświetli się informacja na temat zainstalowanego programu, gdzie możemy zapoznać się z jego wersją oraz innymi informacjami na jego temat.
Ryc. 2. Ekran startowy
screena
.
Okno wirtualnej konsoli właściwie w żaden sposób nie różni się od standardowego terminala – możemy tutaj wprowadzać polecenia, które chcemy, aby działały w tle.
Aby zamknąć screena, wpisujemy polecenie:
$ exit
Jednak zwykle będziemy chcieli przełączyć się z powrotem do głównego okna terminala, co można osiągnąć skrótem:
ctrl + a + d
Każde wirtualne okno uruchamiane jest jako osobna sesja, zaś jej ID otrzymujemy po zatwierdzeniu wpisanego polecenia.
W każdej chwili możemy podejrzeć listę uruchomionych screenów, wydając polecenie:
$ screen -ls
Ryc. 3. Lista sesji programu
screen
.
Przełączanie się do okna wirtualnej konsoli następuje po wprowadzeniu polecenia:
$ screen -r
A jeśli mamy utworzonych więcej sesji, należy na końcu podać jej numer ID, np:
$ screen -r 7071
Znacznym ułatwieniem w pracy z wieloma wirtualnymi konsolami jest nadanie im unikalnych nazw, które będą łatwiejsze do zapamiętania, niż numery ID. Można to zrobić stosując polecenie:
$ screen -S upload
Wówczas, aby przełączyć się do wybranego okna, można posłużyć się zarówno numerem ID, jak i nadaną sesji nazwą.
$ screen -r upload
Ryc. 4. Polecenie
screen
z wykorzystaniem unikalnej nazwy sesji.
Przydatne może być także automatyczne uruchamianie sesji w tle:
$ screen -dmS [nazwa_sesji] [polecenie_uruchamiane_w_oknie]
Dodatkowo obsługa programu możliwa jest także za pomocą skrótów klawiszowych. Podstawą ich wywołania jest kombinacja:
ctrl + a
do której dodaje się dodatkowy klawisz – np. d
, aby przejść do głównego okna terminala. Wszystkie skróty działają wyłącznie z poziomu okna wirtualnej konsoli.
ctrl + a + c – tworzy nowe okno.
ctrl + a + p – przechodzi do poprzedniego okna.
ctrl + a + n – przechodzi do poprzedniego okna.
ctrl + a + ‘ – przechodzi do okna o wybranym numerze.
ctrl + a + ” – przechodzi do listy aktywnych okien.
ctrl + a + A – pozwala nadać nazwę aktywnemu oknu.
ctrl + a + [0-9] – przechodzi do okna o podanym numerze.
Przedstawione w tym tekście opcje, to jedynie wycinek możliwości programu screen
, w sam raz aby początkujący użytkownik się w nim odnalazł i ułatwił sobie pracę z serwerem przez protokół SSH. Jeśli opanujecie podstawy, zawsze możecie sięgnąć głębiej, a przydatna w tym będzie dokumentacja GNU screen.