Jak korzystać z polecenia ekranowego Linuksa

Photo of author

By maciekx

Używając polecenia Linux screen, masz możliwość przenoszenia aktywnych aplikacji terminalowych w tle, a następnie przywracania ich, gdy chcesz je zobaczyć. Funkcjonalność ta obejmuje również podział ekranu oraz możliwość działania przez połączenia SSH, nawet po rozłączeniu i ponownym połączeniu!

Czym jest polecenie screen?

Polecenie screen to multiplekser terminala, obfitujący w różnorodne opcje. Twierdzenie, że jest to narzędzie o szerokich możliwościach, to spore niedomówienie. Strona podręcznika liczy sobie ponad 4100 linii.

Poniżej przedstawiamy najczęstsze zastosowania polecenia screen, które omówimy w dalszej części artykułu:

Typowe działanie polega na utworzeniu nowego okna powłoki, uruchomieniu polecenia, a następnie odłączeniu okna (tzw. „odłączenie”). Gdy zechcesz sprawdzić postęp swojego procesu, możesz ponownie przywrócić okno do pierwszego planu („ponownie podłączyć”) i korzystać z niego jeszcze raz. To doskonałe rozwiązanie dla długoterminowych procesów, które nie chcemy przypadkowo zakończyć przez zamknięcie terminala.
Po rozpoczęciu sesji screen możesz tworzyć nowe okna i uruchamiać w nich inne procesy. Możesz łatwo przełączać się między oknami, aby monitorować ich postęp. Istnieje także możliwość podziału okna terminala na regiony pionowe lub poziome, co pozwala na jednoczesne wyświetlanie różnych okien w jednym terminalu.
Możesz połączyć się z komputerem zdalnym, uruchomić sesję screen i uruchomić proces. Po odłączeniu od zdalnego hosta i ponownym połączeniu, proces będzie kontynuowany.
Możesz także dzielić sesję screen między dwa różne połączenia SSH, co pozwala na współdzielenie ekranu w czasie rzeczywistym przez dwie osoby.

Instalacja screen

Aby zainstalować screen na systemie Ubuntu, użyj poniższego polecenia:

sudo apt-get install screen

Aby zainstalować screen na Manjaro, użyj następującego polecenia:

sudo pacman -Sy screen

Dla systemu Fedora wpisz:

sudo dnf install screen

Rozpoczęcie pracy z screen

Aby rozpocząć korzystanie z polecenia screen, wystarczy wpisać je w terminalu i nacisnąć Enter:

screen

Na ekranie pojawi się informacja o licencji. Możesz nacisnąć klawisz Spacja, aby przejść do drugiej strony, lub klawisz Enter, aby wrócić do wiersza poleceń.

Choć wydaje się, że nic się nie stało, uruchamiasz teraz powłokę w ramach multipleksowanego emulatora terminala. Dlaczego to jest korzystne? Rozpocznijmy proces, który może zająć sporo czasu. Pobierzemy najnowszy kod źródłowy jądra Linux i zapiszemy go w pliku o nazwie latest_kernel.zip.

Aby to zrobić, wpisujemy:

curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip

Rozpocznie się pobieranie, a curl wyświetli postęp.

Nie możemy pokazać następnego obrazu, ponieważ jest to sekwencja klawiszy. Naciskasz Ctrl + A, puszczasz te klawisze, a następnie wciskasz d, aby odłączyć sesję screen.

Pobieranie nadal trwa, ale okno pokazujące postęp zostało usunięte. Wróciłeś do terminala, z którego rozpocząłeś sesję screen i widzisz komunikat, że okno ekranu oznaczone 23167.pts-0.newsblog.pl zostało odłączone.

Aby ponownie dołączyć, potrzebujesz numeru z początku nazwy okna. Jeśli go zapomnisz, możesz użyć opcji -ls (lista), aby zobaczyć listę odłączonych okien:

screen -ls

Gdy będziesz gotowy, możesz użyć opcji -r (reattach) z numerem sesji, aby ją przywrócić, na przykład:

screen -r 23167

Okno, które pracowało w tle, zostało teraz przeniesione z powrotem do terminala, jakby nigdy nie zostało opuszczone.

Jeśli proces ma się zakończyć, to w końcu się zakończy. W przypadku procesów ciągłych, na pewno będziesz chciał je zakończyć. Po zakończeniu procesu możesz wpisać exit, aby wyjść z ekranu, lub nacisnąć Ctrl + A, a następnie K, aby wymusić zamknięcie okna.

Wpisz:

exit

Wracasz do pierwotnego terminala, który nadal wyświetla polecenie użyte do ponownego połączenia. Ponieważ zamknęliśmy nasze jedyne odłączone okno, otrzymujemy komunikat, że screen się kończy.

Używanie nazwanych sesji screen

Możesz zastosować opcję -S (nazwa sesji), aby nadać swojej sesji screen nazwę. Użycie łatwej do zapamiętania nazwy zamiast numerycznego identyfikatora znacznie upraszcza ponowne łączenie się z sesją. Wpisujemy następujące polecenie, aby nazwać naszą sesję „bigfile”:

screen -S bigfile

Gdy uruchomisz sesję, zobaczysz puste okno z wierszem poleceń. Naszym celem jest pobranie dużego pliku, więc dla przykładu możemy użyć długotrwałego procesu.

Wpisujemy:

curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip

Po rozpoczęciu pobierania naciskasz Ctrl + A, a następnie D, aby rozłączyć sesję. Wpisujemy następujące polecenie, aby użyć opcji -ls (lista) z screen i zobaczyć szczegóły naszej odłączonej sesji:

screen -ls

Za identyfikatorem liczbowym (23266) widzimy nazwę naszej sesji (bigfile). Wprowadzamy następujące polecenie, aby ponownie się połączyć:

screen -r bigfile

Znajdujesz się ponownie w oknie pobierania i widzisz, że proces trwa.

Po zakończeniu pobierania wpisujesz exit, aby zamknąć okno sesji.

Korzystanie z ekranu do zarządzania wieloma oknami

Dotychczas używaliśmy polecenia screen do umieszczania pojedynczego procesu w tle w oddzielnym oknie. Ekran jednak ma znacznie szersze możliwości. Następnie uruchomimy kilka procesów, które pozwolą nam monitorować różne aspekty naszego systemu.

Wpisujemy następujące polecenie, aby rozpocząć sesję screen o nazwie „monitor”:

screen -S monitor

W nowym wierszu poleceń uruchamiamy dmesg z opcjami -H (czytelny dla człowieka) i -w (czekaj na nowe wiadomości). To wyświetli komunikaty bufora jądra; nowe wiadomości będą pojawiać się na bieżąco.

Wpisujemy:

dmesg -H -w

Wyświetlą się istniejące wiadomości, a ponieważ dmesg czeka na nowe wiadomości, nie wrócimy do wiersza poleceń, aż nowe dane się pojawią.

Chcąc uruchomić inną aplikację, potrzebujemy nowego okna w screenie. Naciskamy Ctrl + A, a następnie C, aby stworzyć nowe okno. Będziemy korzystać z narzędzia watch do regularnego uruchamiania vmstat, co pozwoli nam na bieżąco monitorować użycie pamięci wirtualnej w naszym systemie.

W nowym wierszu poleceń wpisujemy:

watch vmstat

Dane wyjściowe z vmstat będą pojawiać się i aktualizować co dwie sekundy.

Obydwa procesy są teraz uruchomione. Aby przełączać się między oknami screen, użyj Ctrl + A i numer okna. Pierwsze utworzone okno to okno zerowe (0), a drugie to okno 1 itd. Aby przejść do pierwszego okna (dmesg), naciśnij Ctrl + A i 0.

Naciskając Ctrl + A i 1, wracasz do okna vmstat.

To naprawdę fajne! Możesz nacisnąć Ctrl + A, a następnie D, aby odłączyć się od tej sesji; możesz wrócić do niej później. Oba okna będą nadal działać. Ponownie, aby przełączać się między oknami, użyj Ctrl + A i numer (0 lub 1) okna, do którego chcesz przejść.

Przejdźmy do kolejnego kroku i wyświetlmy oba okna w jednym terminalu. Aby to zrobić, rozciągnij terminal do odpowiedniego rozmiaru, co sprawi, że ten krok będzie bardziej użyteczny. Nasze przykłady są ograniczone do rozmiaru zrzutów ekranu, więc okna mogą wyglądać na ciasne.

Okno zostanie podzielone na dwa „regiony”.

Górny region nadal wyświetla vmstat, a dolny jest pusty. Aby przenieść kursor do dolnego regionu, naciskasz Ctrl + A, a następnie Tab.

Kursor przesunie się do dolnego regionu, który jest pustą przestrzenią. To nie jest powłoka, więc nie możemy nic w niej wpisać. Aby uzyskać przydatny widok, naciskasz Ctrl + A, a następnie 0, aby wyświetlić okno dmesg w tym regionie.

Teraz masz na żywo oba wyjścia w jednym podzielonym oknie. Jeśli naciśniesz Ctrl + A i D, aby odłączyć, a następnie ponownie połączysz, stracisz widok podzielonego panelu. Możesz jednak przywrócić go za pomocą poniższych skrótów klawiaturowych:

Ctrl + A, S: Podziel okno poziomo.
Ctrl + A, Tab: Przejdź do dolnego regionu.
Ctrl + A, 0: Wyświetl zero okna w dolnym obszarze.

Możemy pójść o krok dalej. Teraz podzielimy dolny panel pionowo i dodamy trzeci proces do wyświetlacza. Gdy kursor znajduje się w dolnym obszarze, naciskamy Ctrl + A i C, aby utworzyć nowe okno powłoki w tym regionie. Dolny region wyświetla nowo utworzone okno i daje nam wiersz poleceń.

Następnie uruchamiamy polecenie df, aby sprawdzić użycie systemu plików:

df

Gdy uruchomimy df, naciskamy Ctrl + A i znak potoku (|), aby pionowo podzielić dolny region. Następnie używamy Ctrl + A i Tab, aby przejść do nowego regionu. Teraz naciskamy Ctrl + A i 0, aby wyświetlić okno dmesg.

Możesz także przechodzić od regionu do regionu i dodawać więcej podziałów pionowych lub poziomych. Oto kilka bardziej przydatnych kombinacji klawiszy:

Ctrl + A: Przeskakuj tam iz powrotem między obecnym i poprzednim regionem.
Ctrl + A, Q: Zamknij wszystkie regiony z wyjątkiem bieżącego.
Ctrl + A, X: Zamknij bieżący region.

Użycie screen przez SSH

Screen pozwala na uruchomienie sesji, którą można odłączyć, tak aby działała w tle, a następnie wylogować się lub zalogować ponownie i ponownie połączyć się z sesją.

Przeprowadzamy połączenie SSH z innym komputerem, używając polecenia ssh. Musimy podać nazwę użytkownika oraz adres zdalnego komputera.

W naszym przykładzie wpisujemy:

ssh dave@192.168.4.30

Po uwierzytelnieniu na zdalnym komputerze i zalogowaniu się, wpisujemy poniższe polecenie, aby rozpocząć sesję screen o nazwie „ssh-geek”:

screen -S ssh-geek

W celach demonstracyjnych uruchomimy w oknie screen polecenie top, ale możesz rozpocząć dowolny długotrwały lub niekończący się proces.

Wpisujemy:

top

<img decoding=”async” loading=”lazy” class=”alignnone wp-image-662958 size-full” src=”data:image/png;base64,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


newsblog.pl