Jak korzystać z polecenia ekranowego Linuksa

Za pomocą polecenia Linux screen możesz przenieść uruchomione aplikacje terminalowe w tle i pociągnąć je do przodu, gdy chcesz je zobaczyć. Obsługuje również wyświetlacze z podzielonym ekranem i działa przez połączenia SSH, nawet po rozłączeniu i ponownym połączeniu!

Co to jest polecenie ekranu?

Polecenie screen to multiplekser terminalai jest absolutnie pełen opcji. Stwierdzenie, że może wiele zdziałać, jest dziadkiem niedomówień. Strona podręcznika obsługuje ponad 4100 linii.

Poniżej przedstawiono najczęstsze przypadki, w których używałbyś polecenia screen, które omówimy w dalszej części tego artykułu:

Standardową operacją jest utworzenie nowego okna z powłoką, uruchomienie polecenia, a następnie przesunięcie okna na drugi plan (tzw. „Odłączanie”). Jeśli chcesz zobaczyć, jak radzi sobie twój proces, możesz ponownie przeciągnąć okno na pierwszy plan („ponownie podłączyć”) i użyć go ponownie. Jest to świetne rozwiązanie w przypadku długich procesów, których nie chcesz przypadkowo zakończyć przez zamknięcie okna terminala.
Po uruchomieniu sesji screen możesz tworzyć nowe okna i uruchamiać w nich inne procesy. Możesz łatwo przeskakiwać między oknami, aby monitorować ich postęp. Możesz także podzielić okno terminala na regiony pionowe lub poziome i wyświetlić różne okna ekranowe w jednym oknie.
Możesz połączyć się ze zdalnym komputerem, rozpocząć sesję ekranu i uruchomić proces. Możesz odłączyć się od zdalnego hosta, połączyć się ponownie, a proces będzie nadal działał.
Możesz udostępniać sesję ekranową między dwoma różnymi połączeniami SSH, aby dwie osoby mogły zobaczyć to samo w czasie rzeczywistym.

Instalowanie ekranu

Aby zainstalować screen na ubuntu, użyj tego polecenia:

sudo apt-get install screen

Plik

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

sudo pacman -Sy screen

Plik

W Fedorze wpisujesz:

sudo dnf install screen

Plik

Pierwsze kroki z ekranem

Aby rozpocząć ekran, po prostu wpisz go, jak pokazano poniżej i naciśnij Enter:

screen

Plik

Zobaczysz stronę z informacjami o licencji. Możesz nacisnąć klawisz Spacja, aby przeczytać drugą stronę, lub klawisz Enter, aby powrócić do wiersza polecenia.

Plik

Zostajesz w wierszu polecenia i wydaje się, że nic się nie wydarzyło. Jednak teraz uruchamiasz powłokę wewnątrz multipleksowanego emulatora terminala. Dlaczego to jest dobra rzecz? Cóż, zacznijmy proces, który zajmie dużo czasu. Pobierzemy kod źródłowy najnowszego jądra Linuksa i przekierujemy go do 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

Plik latest_kernel.zip ”w oknie terminala. ’ width = ”646 ″ height =” 77 ″ onload = ”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);” onerror = ”this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);”>

Rozpoczyna się pobieranie, a wynik curl pokazuje postęp.

Dane wyjściowe z latest_kernel.zip ”w oknie terminala. ’ width = ”646 ″ height =” 247 ″ onload = ”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);” onerror = ”this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);”>

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

Proces pobierania nadal trwa, ale okno pokazujące pobieranie zostało usunięte. Wróciłeś do okna terminala, z którego uruchomiłeś sesję screen. Komunikat informuje, że okno ekranu oznaczone 23167.pts-0.newsblog.pl zostało odłączone.

Potrzebujesz numeru z początku nazwy okna, aby je ponownie dołączyć. Jeśli go zapomnisz, zawsze możesz użyć opcji -ls (lista), jak pokazano poniżej, aby uzyskać listę odłączonych okien:

screen -ls

Plik

Kiedy będziesz gotowy, możesz użyć opcji -r (reattach) i numeru sesji, aby ją ponownie podłączyć, na przykład:

screen -r 23167

Plik

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

Ponownie podłączona sesja ekranu została przywrócona do okna terminala.

Jeśli jest to proces, który ma się zakończyć, to w końcu się zakończy. Jeśli jest to proces ciągły, w końcu będziesz chciał go zakończyć. Tak czy inaczej, po zakończeniu procesu możesz wpisać exit, aby wyjść z ekranu. Alternatywnie możesz nacisnąć Ctrl + A, a następnie K, aby wymusić zabicie okna.

Wpisz następujące polecenie:

exit

Plik

Wróciłeś do poprzedniego okna terminala, które nadal będzie wyświetlało polecenie użyte do ponownego podłączenia okna. Ponieważ zamknęliśmy nasze jedyne odłączone okno, otrzymujemy komunikat, że screen się kończy.

Plik

Korzystanie z nazwanych sesji ekranowych

Możesz użyć opcji -S (nazwa sesji), aby nazwać swoją sesję screen. Jeśli używasz łatwej do zapamiętania nazwy zamiast numerycznej tożsamości sesji, wygodniej jest ponownie połączyć się z sesją. Wpisujemy następujące polecenie, aby nazwać naszą sesję „bigfile”:

screen -S bigfile

Plik

Kiedy screen uruchamia naszą sesję, widzimy puste okno z wierszem poleceń. Zamierzamy pobrać duży plik, więc jako przykładu możemy użyć długotrwałego procesu.

Wpisujemy:

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

Plik bigfile.zip ”w oknie terminala. ’ width = ”646 ″ height =” 77 ″ onload = ”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);” onerror = ”this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);”>

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

screen -ls

Plik

Za identyfikatorem liczbowym (23266) widzimy nazwę naszej sesji (bigfile). Wpisujemy następujące informacje, w tym nazwę sesji, aby ją ponownie dołączyć:

screen -r bigfile

Plik

Jesteśmy ponownie połączeni z naszym oknem pobierania i widzimy, że długie pobieranie wciąż trwa.

Zwiń dane wyjściowe pobierania w ponownie podłączonej sesji ekranu w oknie terminala.

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

Korzystanie z ekranu z wieloma oknami

Do tej pory używaliśmy screen do umieszczania pojedynczego procesu w tle w oddzielnym oknie. Jednak ekran jest w stanie zrobić znacznie więcej. Następnie uruchomimy kilka procesów, które pozwolą nam monitorować niektóre aspekty naszego komputera.

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

screen -S monitor

Plik

W wierszu poleceń w naszej nowej sesji okna uruchomimy dmesg i użyjemy opcji -H (czytelny dla człowieka) i -w (czekaj na nowe wiadomości). To będzie wyświetla komunikaty bufora jądra; nowe wiadomości będą pojawiać się w miarę ich pojawiania się.

Wpisujemy:

dmesg -H -w

Plik

Pojawią się istniejące wiadomości. Nie wracamy do wiersza poleceń, ponieważ dmseg czeka na nowe wiadomości i wyświetli je, gdy nadejdą.

Plik

Chcemy uruchomić inną aplikację, więc potrzebujemy nowego okna ekranu. Naciskamy Ctrl + A, a następnie C, aby utworzyć nowe okno. Będziemy używać zegarka wielokrotnie biegać vmstat, więc otrzymujemy często aktualizowany plik wyświetlanie wykorzystania pamięci wirtualnej na naszym komputerze.

W nowym wierszu polecenia wpisujemy:

watch vmstat

Plik

Dane wyjściowe vmstat pojawiają się i są aktualizowane co dwie sekundy.

Plik

Nasze dwa procesy są teraz uruchomione. Aby przeskoczyć między oknami ekranu, naciśnij Ctrl + A i numer okna. Pierwsze, które utworzyliśmy, to okno zerowe (0), następne to okno 1 i tak dalej. Aby przeskoczyć do pierwszego okna (dmesg), wciskamy Ctrl + A i 0.

Wracając do

Jeśli naciśniemy Ctrl + A i 1, przeniesiemy nas z powrotem do okna vmstat.

Wracając do

To całkiem fajne! Możemy nacisnąć Ctrl + A, a następnie D, aby odłączyć się od tej sesji; możemy ponownie dołączyć później. Obie sesje będą nadal działać. Ponownie, aby przełączać się między oknami, wciskamy Ctrl + A i numer (0 lub 1) okna, do którego chcemy się przełączyć.

Przejdźmy do następnego kroku i wyświetlmy oba ekrany w jednym oknie. Gdy to zrobisz, rozciągniesz okno terminala do rozmiaru, który sprawi, że ten krok będzie przydatny. Nasze przykłady są ograniczone do rozmiaru zrzutów ekranu, więc nasze okna będą wyglądać na trochę ciasne.

Aby to zrobić, wciskamy Ctrl + A, a następnie Shift + S (wymagana jest duża litera „S”).

Okno zostanie podzielone na dwa „regiony”.

ZA

Górny region nadal wyświetla vmstat, a dolny jest pusty. Kursor jest wyróżniony na poniższym zrzucie ekranu. Aby przenieść go do dolnego regionu, naciskamy Ctrl + A, a następnie Tab.

ZA

Kursor przesunie się do niższego regionu, który w rzeczywistości jest po prostu pustą przestrzenią. To nie jest powłoka, więc nie możemy nic w niej wpisać. Aby uzyskać przydatny obraz, wciskamy Ctrl + A, a następnie wciskamy „0”, aby wyświetlić okno dmesg w tym regionie.

Plik

To daje nam oba wyjścia na żywo w jednym podzielonym oknie. Jeśli naciśniemy Ctrl + A i D, aby odłączyć okno, a następnie ponownie je przymocujemy, utracimy widok podzielonego panelu. Możemy go jednak przywrócić za pomocą następujących 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 z powłoką w nim. Dolny region wyświetla nowe okno i daje nam wiersz polecenia.

ZA

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

df

ZA

Kiedy widzimy uruchomiony df, wciskamy Ctrl + A i znak potoku (|). Spowoduje to pionowe podzielenie dolnego regionu. Naciskamy Ctrl + A i Tab, aby przejść do nowego regionu. Następnie wciskamy Ctrl + A i 0, aby wyświetlić okno dmesg.

ZA

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.

Korzystanie z ekranu przez SSH

Za pomocą screen można rozpocząć sesję okna, odłączyć je, aby nadal działało w tle, wylogować się lub zalogować ponownie i ponownie podłączyć sesję.

Zróbmy SSH połączenie z naszym komputerem z innego za pomocą polecenia ssh. Musimy podać nazwę konta, z którym mamy zamiar się połączyć oraz adres zdalnego komputera.

W naszym przykładzie wpisujemy:

ssh [email protected]

Plik

Po uwierzytelnieniu na komputerze zdalnym i zalogowaniu się wpisujemy następujące polecenie, aby rozpocząć sesję ekranu o nazwie „ssh-geek”:

screen -S ssh-geek

Plik

W celach demonstracyjnych uruchomimy się u góry w oknie ekranu, ale możesz rozpocząć dowolny długotrwały lub niekończący się proces.

Wpisujemy:

top

Plik

Gdy top jest uruchomiony w oknie, wciskamy Ctrl + A, a następnie D, aby odłączyć okno.

Plik

Wróciliśmy do oryginalnego, zdalnego okna terminala.

Użytkownik powrócił do swojego pierwotnego okna terminala

Jeśli wpiszemy exit, jak pokazano poniżej, rozłącza sesję SSH i jesteśmy z powrotem na naszym lokalnym komputerze:

exit

Plik

Wpisujemy następujące, aby ponownie połączyć:

ssh [email protected]

Plik

Po ponownym połączeniu i zalogowaniu się możemy wpisać następujące polecenie, aby ponownie dołączyć sesję screen:

screen -r ssh-geek

Plik

Jesteśmy teraz ponownie połączeni z naszą wciąż działającą instancją top.

Plik

Jest to świetne rozwiązanie, jeśli chcesz rozpocząć proces na jednym komputerze, a następnie kontynuować w miejscu, w którym przerwałeś, na innym.

Udostępnianie sesji ekranu

Możesz także użyć sesji screen, aby umożliwić dwóm osobom oglądanie tego samego okna i interakcję z nim. Powiedzmy, że ktoś, kto uruchamia Fedorę na swoim komputerze, chce połączyć się z naszym serwerem Ubuntu.

Wpisałby co następuje:

ssh [email protected]

Plik

Po nawiązaniu połączenia rozpoczyna sesję ekranową o nazwie „ssh-geek”, używając opcji -S (nazwa sesji). Używa również opcji -d (odłącz) i -m (wymuszone tworzenie), aby utworzyć nową sesję ekranu, która jest już odłączona.

Pisze:

screen -d -m -S ssh-geek

Plik

Wpisuje następujące informacje, używając opcji -X (tryb wieloekranowy), aby dołączyć sesję:

screen -X ssh-geek

Plik

Na komputerze Manjaro inna osoba łączy się z komputerem Ubuntu przy użyciu tych samych danych logowania do konta, jak pokazano poniżej:

ssh [email protected]

Plik

Po nawiązaniu połączenia wpisuje polecenie screen i używa opcji -X (tryb wieloekranowy), aby dołączyć do tej samej sesji okna, na przykład:

screen -X ssh-geek

Plik

Teraz cokolwiek wpisze jedna osoba, druga zobaczy. Na przykład, gdy jedna osoba wydaje polecenie daty, oboje widzą je tak, jak zostało wpisane, a także wyniki.

Plik

Dane wyjściowe z

Obie osoby współużytkują teraz sesję ekranu, która działa na zdalnym komputerze Ubuntu.

Jak na oprogramowanie, które po raz pierwszy ujrzało światło dzienne w 1987 r., Screen nadal zapewnia niezłą wydajność. Zapoznanie się z nim będzie czasem dobrze spędzonym!