Polecenie screen jest bardzo powszechnym poleceniem używanym w Linuxie do uruchamiania i organizowania wielu powłok terminala w ramach jednej powłoki.
Screen jest najczęściej używane do dwóch celów.
Może być użyte w celu organizacji wielu powłok i łatwej nawigacji pomiędzy nimi.
Może być również użyte w celu posiadania długo działających poleceń na zdalnych serwerach.
W rzeczywistości, screen jest uruchamiany w celu zapewnienia, że nie stracisz żadnej odległej pracy w przypadku nagłej przerwy w sieci.
W tym poradniku, będziemy mieli pełny przegląd tego, czym jest polecenie screen w Linuksie i jak może być ono efektywnie wykorzystane.
Gotowy?
Table of Contents
Warunki wstępne
Aby zainstalować nowe pakiety, będziesz musiał być użytkownikiem sudo.
Jeśli potrzebujesz dodać użytkownika do sudoers na Debianie, jest na to tutorial.
Jest też jeden dla dystrybucji opartych na Red Hat.
Gdy będziesz gotowy, wpisz to polecenie, aby upewnić się, że masz prawa sudo.
$ sudo -lUser user may run the following commands on localhost: (ALL) ALL
Instalacja Screen w Linuksie
Aby zainstalować screen, będziesz musiał wykonać jedno z poniższych poleceń.
W dystrybucjach opartych na Debianie, możesz uruchomić
$ sudo apt-get install screen
W dystrybucjach opartych na Red Hat, będziesz musiał uruchomić
$ sudo yum install -y screen
Kiedy skończysz, możesz uruchomić to polecenie, aby sprawdzić aktualną wersję ekranu.
$ screen -vScreen version 4.06.02 (GNU) 23-Oct-17
Interakcja z Screenem w Linuksie
Jak opisano wcześniej, screen jest używany do uruchamiania powłoki interaktywnej, w której możesz zmieniać układ wielu powłok.
Aby uruchomić swój pierwszy screen, po prostu wpisz następujące polecenie.
Jak widzisz, nie ma żadnych różnic z twoją poprzednią powłoką, z wyjątkiem tego, że nagłówek pisze
screen 0: :~
Z tego miejsca, oznacza to, że interpreter bash jest wykonywany wewnątrz innego interpretera bash poprzez narzędzie screen.
Aby uruchomić polecenie, po prostu wpisz polecenie, tak jak byś to robił normalnie.
Pomoc z screenem
Podczas interakcji z poleceniem screen, będziesz musiał uruchamiać skróty klawiszowe, aby wykonywać akcje w ramach sesji screen.
Domyślnie, skróty klawiszowe „Ctrl + A” są przeznaczone do interakcji z ekranem.
Jako przykład, wpisz „Ctrl + A”, a następnie „?”, aby uzyskać pomoc ekranową.
Jak widzisz, masz wiele różnych opcji interakcji z ekranem.
Najpopularniejsze z nich są prawdopodobnie następujące :
- „Ctrl + A” następnie „d” : tryb odłączania. Możesz użyć tej opcji, aby odłączyć się (co oznacza powrót do oryginalnej powłoki) i pozwolić screenowi działać w tle. Jest to szczególnie przydatne, gdy wykonujesz długie zadania na swoim hoście.
- „Ctrl + A” następnie „x” : lockscreen. Służy do zabezpieczenia sesji ekranowej przed użyciem przez innego użytkownika. W konsekwencji, hasło jest ustawione do twojej sesji.
- „Ctrl + A” następnie „c” : polecenie screen. Jedno z najczęściej używanych poleceń, te wiązania są używane do tworzenia nowego okna w twojej instancji ekranu.
- „Ctrl + A” następnie „|” : podział pionowy. Domyślnie, to polecenie podzieli twoje aktualne okno na dwa różne obszary, z którymi możesz wchodzić w interakcję.
- „Ctrl + A” następnie „S” : podział poziomy.
- „Ctrl + A” następnie „n” : używane do poruszania się pomiędzy różnymi sesjami okien od tej z najniższym indeksem do tej z wyższym indeksem.
- „Ctrl + A” następnie „Tab” : używane w celu przeniesienia kursora wejściowego do jednego z różnych obszarów ekranu.
W większości przypadków, są to polecenia, których będziesz używał z screen.
Podział regionów za pomocą polecenia screen
Jako przykład, stworzymy następujący układ za pomocą polecenia screen w systemie Linux.
Jak widać, zamierzamy podzielić terminal zarówno w pionie, jak i w poziomie.
Jedno okno będzie służyło do wykonania polecenia (np. długo działającego polecenia).
Drugie okno będzie służyło do monitorowania wydajności systemu przy użyciu górnego polecenia.
Na koniec, kolejne okno może być użyte do edycji pliku poprzez edytor nano.
Tworzenie okna ekranowego
Pierw należy utworzyć sesję ekranową wykonując następujące polecenie.
$ screen -S user-screen
Opcja -S utworzy nazwaną sesję dla środowiska ekranowego.
Gdy wielu administratorów pracuje nad tym samym systemem, dobrym pomysłem może być posiadanie nazwanych sesji, aby odróżnić swoje sesje od innych.
Następnie, ponieważ będziesz manipulował trzema sesjami powłoki, będziesz potrzebował dwóch dodatkowych ekranów.
Wykonaj polecenie „create” dwa razy („Ctrl + A”, a następnie „c”). Powinieneś otrzymać następujący ekran.
Zauważ, że nagłówek lub powłoka twojego terminala wyświetla „screen 2”, ponieważ trzy ekrany są obecnie aktywne dla twojej sesji.
Podzielenie okien ekranu w pionie i poziomie
Następnym krokiem będzie utworzenie różnych regionów w bieżącym oknie.
Aby to osiągnąć, najpierw podziel swój bieżący region pionowo, naciskając „Ctrl +A”, a następnie „|”
Powinieneś otrzymać następujące dane wyjściowe.
Następnie podziel swój układ poziomo, naciskając „Ctrl +A”, a następnie „S”.
To jest to, co powinieneś otrzymać.
Przejdź do swojego drugiego regionu naciskając „Ctrl +A” a następnie „Tab”. Domyślnie Twój region powinien być pusty, więc możesz nacisnąć „Ctrl +A”, a następnie „n”, aby przejść do sesji screen 0.
W tym miejscu wykonaj polecenie, które chcesz uruchomić.
Powtórz poprzednie kroki, aby wykonać komendy w pozostałych regionach.
Pamiętaj, że musisz nawigować między oknami ekranu, gdy po raz pierwszy wchodzisz do podzielonego regionu.
Absolutnie! Stworzyłeś swoją własną sesję ekranową.
Odłączenie od sesji ekranowej
Aby odłączyć się od sesji ekranowej, po prostu naciśnij następujące klawisze.
$ Ctrl + A then d
Twoja sesja ekranowa nadal wykonuje się w tle.
Jest to jeden z głównych aspektów polecenia screen.
Można go użyć w celu utworzenia zdalnego hosta przez SSH, wykonania pewnych czynności i wyjścia, aby wrócić do nich później.
W ten sposób nie musisz manipulować tłem i pierwszym planem, które możesz stracić zamykając bieżący terminal.
Aby sprawdzić, czy sesja ekranowa jest nadal uruchomiona, uruchom następujące polecenie
$ pstree | grep -A 2 -E "screen-"
Przywiązanie do sesji ekranowej
Po pierwsze, możesz wylistować swoje okna ekranowe wykonując poniższe polecenie.
$ screen -ls
Jeśli nazwałeś swoją sesję ekranu, możesz po prostu uruchomić następujące polecenie
$ screen -r <session_name>
W powyższym przykładzie musiałbym uruchomić to polecenie, aby wrócić do mojej sesji.
$ screen -r user-screen
Zauważ, że możesz również wrócić do swojej sesji, używając identyfikatora ekranu po lewej stronie polecenia ls.
$ screen -r 3600
Niestety, tracisz wszystkie zmiany wizualne i będziesz musiał ponownie podzielić okna.
Jednakże, z wystarczającą ilością praktyki, możesz nauczyć się skrótów bardzo łatwo.
Zablokowanie sesji ekranu
Czasami, możesz chcieć zapobiec interakcji innych użytkowników z twoją sesją ekranu.
Aby zablokować swój ekran, naciśnij „Ctrl + A”, a następnie „x”.
Aby go odblokować, musisz wprowadzić hasło użytkownika, który jest właścicielem sesji ekranu.
Podsumowanie
W dzisiejszym poradniku, dowiedziałeś się jak możesz łatwo manipulować poleceniem screen w Linuksie, aby tworzyć własne środowiska powłoki w ramach wspólnej powłoki.
Dowiedziałeś się, że może być ono używane na zdalnych serwerach, aby upewnić się, że możesz wyjść z sesji i nadal zachować swoją pracę (jeśli masz długo działające polecenia na pierwszym planie).
Jeśli jesteś zainteresowany Administracją Systemem Linux, mamy kompletny dział poświęcony tej tematyce na stronie internetowej.