Wyszukiwanie w witrynie

20 przykładów poleceń ekranowych do zarządzania terminalami Linux


W skrócie: W tym przewodniku omówimy kilka przydatnych przykładów polecenia screen. Pod koniec tego przewodnika użytkownicy będą mogli pracować z wieloma sesjami powłoki przy użyciu jednego okna terminala Linux.

Jako użytkownicy Linuksa często musimy pracować nad długotrwałymi zadaniami, takimi jak pobieranie lub kopiowanie dużych plików, wykonywanie czasochłonnych zapytań do bazy danych i tak dalej. Czasami te ważne zadania zostają nagle zakończone z powodu przekroczenia limitu czasu sesji.

Aby zapobiec takim scenariuszom, możemy użyć polecenia screen, które jest pełnoekranowym programem, którego można używać do multipleksowania konsoli fizycznej pomiędzy kilkoma procesami (zwykle powłokami interaktywnymi). Oferuje użytkownikowi otwarcie kilku oddzielnych instancji terminali w jednym menedżerze okien terminala.

Aplikacja screen jest bardzo przydatna, jeśli masz do czynienia z wieloma programami z poziomu interfejsu wiersza poleceń oraz do oddzielania programów od powłoki terminala. Umożliwia także udostępnianie sesji innym użytkownikom oraz odłączanie/dołączanie sesji terminalowych.

W tym przewodniku omówimy, jak zainstalować, skonfigurować i używać polecenie screen w systemie Linux. W tym przewodniku zrozumiemy użycie i zalety polecenia screen na praktycznych przykładach.

Więc zacznijmy.

Zainstaluj polecenie ekranowe w systemie Linux

Na moim Ubuntu Server Edition polecenie screen zostało domyślnie zainstalowane. Jednak Linux Mint nie ma domyślnie zainstalowanego ekranu, więc przed użyciem muszę go najpierw zainstalować za pomocą polecenie apt-get .

Aby zainstalować ekran, postępuj zgodnie z procedurą instalacji dystrybucji.

sudo apt-get install screen      [On Debian, Ubuntu and Mint]
sudo yum install screen          [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/screen   [On Gentoo Linux]
sudo apk add screen              [On Alpine Linux]
sudo pacman -S screen            [On Arch Linux]
sudo zypper install screen       [On OpenSUSE]    

Sprawdźmy teraz, czy polecenie zostało pomyślnie zainstalowane:

screen --version

Screen version 4.8.00 (GNU) 05-Feb-20

Właściwie screen to bardzo dobry program do multipleksowania terminali w systemie Linux, który jest ukryty w setkach poleceń systemu Linux.

Zacznijmy widzieć użycie polecenia screen w systemie Linux z następującymi przykładami.

Składnia poleceń ekranowych

Składnia polecenia screen jest następująca

screen [OPTIONS] [ CMD [ ARGS ] ]

W powyższej składni widzimy, że wszystkie parametry są opcjami i są reprezentowane w nawiasach kwadratowych ([]).

1. Ekran startowy po raz pierwszy

Po prostu wpisz ekran w wierszu poleceń. Następnie ekran pokaże interfejs dokładnie taki sam, jak wiersz poleceń.

screen

2. Pokaż parametry ekranu

Po wejściu na ekran możesz wykonywać całą pracę tak samo, jak w normalnym środowisku wiersza poleceń. Ale ponieważ ekran jest aplikacją, więc zawiera polecenia i parametry.

Wpisz „Ctrl-A” i „?” bez cudzysłowów. Następnie zobaczysz wszystkie polecenia lub parametry na ekranie.

Aby wyjść z ekranu pomocy, możesz nacisnąć przycisk „spacja” lub „Enter”. (Pamiętaj, że wszystkie skróty używające „Ctrl-A” są wykonywane bez cudzysłowów).

3. Jak wyświetlić listę wszystkich otwartych okien

W poprzednim przykładzie rozpoczęliśmy nową sesję powłoki za pomocą polecenia screen. Użyjmy teraz kombinacji klawiszy ctrl-a + ", aby wyświetlić listę wszystkich otwartych okien bieżącej sesji ekranowej:

Na powyższym wyjściu możemy zobaczyć numer i nazwę okna. Pierwsza kolumna reprezentuje numer okna i zaczyna się od zera.

Następna kolumna reprezentuje nazwę okna, a jego domyślny format to @:.

4. Jak zakończyć sesję okna ekranowego

Aktywną sesję okna możemy zakończyć za pomocą kombinacji klawiszy ctrl-a + k. Należy pamiętać, że ta czynność spowoduje przerwanie wykonywania poleceń z bieżącego okna wirtualnego.

Na powyższym wyjściu widzimy, że polecenie screen czeka na potwierdzenie użytkownika. Pokazuje komunikat ostrzegawczy w lewym dolnym rogu.

Podobnie jak inne polecenia Linuksa, możemy użyć 'y', aby kontynuować lub 'n', aby przerwać operację.

5. Jak rozpocząć sesję ekranową z nazwą

Polecenie screen pozwala nam utworzyć sesję o nazwie zdefiniowanej przez użytkownika, co przydaje się, gdy dostępnych jest wiele sesji.

Użyjmy więc opcji -S polecenia, aby utworzyć nazwaną sesję:

screen -S demo-screen

W powyższym poleceniu ekran demonstracyjny to nazwa sesji.

6. Odłącz sesję terminalową z ekranem

Jedną z zalet ekranu jest to, że można go odłączyć. Następnie możesz go przywrócić, nie tracąc niczego, co zrobiłeś na ekranie. Oto przykładowy scenariusz:

Jesteś w trakcie SSH na swoim serwerze. Załóżmy, że pobierasz poprawkę 400MB dla swojego systemu za pomocą polecenia wget.

Szacuje się, że proces pobierania zajmie 2 godziny. Jeśli rozłączysz sesję SSH lub nagle połączenie zostanie przypadkowo utracone, proces pobierania zostanie zatrzymany. Trzeba zacząć od nowa. Aby tego uniknąć, możemy zastosować ekran i go odłączyć.

Spójrz na to polecenie. Najpierw musisz wejść na ekran.

screen

Następnie możesz wykonać proces pobierania. Na przykład na moim Linux Mint aktualizuję mój pakiet dpkg za pomocą polecenia apt.

sudo apt install dpkg
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be upgraded:
  dpkg
1 upgraded, 0 newly installed, 0 to remove and 1146 not upgraded.
Need to get 2,583 kB of archives.
After this operation, 127 kB of additional disk space will be used.
Get:1 http://debian.linuxmint.com/latest/ 
testing/main dpkg i386 1.16.10 [2,583 kB]
47% [1 dpkg 1,625 kB/2,583 kB 47%]     14,7 kB/s

Podczas pobierania możesz nacisnąć „Ctrl-A” i „d”. Po naciśnięciu tych przycisków nic nie zobaczysz. Dane wyjściowe będą takie:

[detached from 5561.pts-0.mint]
pungki@mint ~ $

7. Ponownie podłącz sesję terminalową z ekranem

Załóżmy, że po odłączeniu ekranu rozłączasz sesję SSH i wracasz do domu. W domu ponownie rozpoczynasz połączenie SSH ze swoim serwerem i chcesz zobaczyć postęp procesu pobierania. Aby to zrobić, musisz przywrócić ekran. Możesz uruchomić to polecenie:

pungki@mint ~ $ screen -r

Zobaczysz, że pozostawiony proces nadal działa.

Jeśli masz więcej niż 1 sesję ekranową, musisz wpisać ID sesji ekranowej. Użyj screen -ls, aby zobaczyć, ile ekranów jest dostępnych.

pungki@mint ~ $ screen -ls
pungki@mint ~ $ screen -ls
There are screens on:
        7849.pts-0.mint (10/06/2021 01:50:45 PM)        (Detached)
        5561.pts-0.mint (10/06/2021 11:12:05 AM)        (Detached)
2 Sockets in /var/run/screen/S-pungki

Jeśli chcesz przywrócić ekran 7849.pts-0.mint, wpisz to polecenie.

pungki@mint ~ $ screen -r 7849

8. Korzystanie z okien terminala wieloekranowego

Czy jest to możliwe, gdy do wykonywania swojej pracy potrzebujesz więcej niż 1 ekranu? Tak to jest. Można jednocześnie uruchomić wiele okien ekranowych. Można to zrobić na 2 (dwa) sposoby.

Najpierw możesz odłączyć pierwszy ekran i uruchomić kolejny ekran na prawdziwym terminalu. Po drugie, wykonujesz zagnieżdżony ekran, jak pokazano.

Aby utworzyć nowe okna, użyj dwukrotnie kombinacji klawiszy ctrl-a + c, aby utworzyć dwa nowe okna. Następnie użyjmy kombinacji klawiszy ctrl-a + ", aby wyświetlić listę wszystkich aktywnych okien:

Na powyższym wyjściu widzimy, że teraz są trzy okna.

9. Jak zmienić nazwę okna ekranowego

W poprzednim przykładzie utworzyliśmy dwa nowe okna. Jednak ich domyślne nazwy nie zawierają żadnych szczegółów na ich temat. W takich przypadkach możemy przypisać im jakieś znaczące nazwy.

Możemy użyć kombinacji klawiszy ctrl-a + A, aby zmienić nazwę bieżącej sesji okna. Ta kombinacja klawiszy skłania użytkownika do ustawienia tytułu okna:

10. Przełączanie między oknami terminala ekranowego

W poprzednim przykładzie utworzyliśmy wiele okien. Zobaczmy teraz, jak przełączać się między nimi.

Najpierw wyświetlmy listę wszystkich aktywnych okien za pomocą kombinacji klawiszy ctrl-a + ". Następnie użyj klawisza strzałki w górę lub w dół, aby wybrać odpowiednie okno. Na koniec naciśnij klawisz Enter, aby przejść do wybranego okno.

W tym przykładzie wybraliśmy okno o tytule – db-query.

11. Jak przejść do okna następnego ekranu

Aby przejść do kolejnych okien, możemy użyć kombinacji klawiszy ctrl-a + n. Rozumiemy to na przykładzie.

Najpierw przejdź do pierwszego okna i zweryfikuj je za pomocą kombinacji klawiszy ctrl-a + ":

Teraz naciśnij dwukrotnie kombinację klawiszy ctrl-a + n, aby przejść do trzeciego okna i użyj kombinacji klawiszy ctrl-a + „, aby to sprawdzić.

Na powyższym wyjściu widzimy, że jesteśmy w trzecim oknie.

12. Jak przejść do poprzedniego okna ekranowego

W podobny sposób możemy użyć kombinacji ctrl-a + p, aby przejść do poprzedniego okna.

Aktualnie jesteśmy na trzecim oknie. Użyjmy więc dwukrotnie kombinacji klawiszy ctrl-a + p i sprawdźmy, czy ponownie znajdujemy się w pierwszym oknie:

Na powyższym wyjściu widzimy, że teraz wróciliśmy do pierwszego okna.

13. Jak przełączać się pomiędzy bieżącym i poprzednim oknem

Czasami chcemy po prostu przełączać się między dwoma oknami. W takich przypadkach możemy zastosować kombinację klawiszy ctrl-a + ctrl-a.

Aby to zrozumieć, najpierw przejdź do pierwszego okna:

Następnie przejdź do ostatniego okna:

Na koniec użyj kombinacji klawiszy ctrl-a + ctrl-a, aby ponownie przejść do pierwszego okna.

14. Jak przejść do określonego okna ekranu

W poprzednich przykładach widzieliśmy różne sposoby przełączania się między oknami. Czasami jednak chcemy przeskoczyć do konkretnego okna. W takich sytuacjach możemy wykorzystać numery okien.

Najpierw użyjmy kombinacji klawiszy ctrl-a + ", aby znaleźć numer okna:

W powyższym wyniku pierwsza kolumna reprezentuje numer okna. Należy pamiętać, że polecenie screen rozpoczyna numerację od zera.

Teraz użyjmy kombinacji klawiszy ctrl-a + 2, aby przejść do trzeciego okna i sprawdzić, czy jesteśmy we właściwym oknie:

15. Jak podzielić okno ekranu w poziomie

Podobnie jak w przypadku zwykłych terminali, możemy również podzielić okno ekranu. Możemy użyć kombinacji klawiszy ctrl-a + S, aby podzielić okno w poziomie.

Teraz możemy użyć kombinacji klawiszy ctrl-a + tab, aby przeskakiwać między regionami.

Na koniec możemy użyć kombinacji klawiszy ctrl-a + X, aby usunąć bieżący region. Należy pamiętać, że tutaj musimy użyć dużej litery X.

16. Jak podzielić okno ekranu w pionie

Podobnie możemy użyć kombinacji klawiszy ctrl-a + |, aby podzielić bieżące okno w pionie:

Oprócz tego możemy także użyć kombinacji klawiszy ctrl-a + tab do przełączania regionów oraz kombinacji klawiszy ctrl-a + X do zamknięcia bieżącego regionu.

17. Włącz rejestrowanie ekranu w systemie Linux

Czasami ważne jest zapisanie tego, co zrobiłeś, gdy jesteś w konsoli. Załóżmy, że jesteś administratorem Linuksa, który zarządza wieloma serwerami Linux.

Dzięki temu rejestrowaniu ekranu nie musisz zapisywać każdego wykonanego polecenia. Aby aktywować funkcję rejestrowania ekranu, wystarczy nacisnąć „Ctrl-A” i „H”. (Proszę zachować ostrożność, używamy wielkich liter „H”. Użycie innych niż wielkie liter „h” spowoduje jedynie utworzenie zrzutu ekranu ekranu w innym pliku o nazwie hardcopy) .

W lewym dolnym rogu ekranu pojawi się powiadomienie, które poinformuje Cię, że chcesz: Tworzenie pliku dziennika „screenlog.0”. W swoim katalogu domowym znajdziesz plik screenlog.0.

Ta funkcja dołączy wszystko, co zrobisz, gdy będziesz w oknie ekranowym. Aby zamknąć ekran w celu rejestrowania bieżącej aktywności, naciśnij ponownie „Ctrl-A” i „H”.

Innym sposobem aktywacji funkcji rejestrowania jest dodanie parametru „-L” przy pierwszym uruchomieniu ekranu. Polecenie będzie wyglądać następująco.

pungki@mint ~ $ screen -L

18. Zablokuj ekran terminala Linux

Na ekranie znajduje się także skrót do blokowania ekranu. Możesz nacisnąć skróty „Ctrl-A” i „x”, aby zablokować ekran. Jest to przydatne, jeśli chcesz szybko zablokować ekran. Oto przykładowy wynik ekranu blokady po naciśnięciu skrótu.

Screen used by Pungki Arianto  on mint.
Password:

Aby je odblokować, możesz użyć hasła do systemu Linux.

19. Dodaj hasło do sesji ekranowej

Ze względów bezpieczeństwa możesz podać hasło do sesji ekranowej. Hasło zostanie wyświetlone za każdym razem, gdy będziesz chciał ponownie podłączyć ekran. To hasło różni się od powyższego mechanizmu Blokady ekranu.

Aby zabezpieczyć ekran hasłem, możesz edytować plik „$HOME/.screenrc”. Jeśli plik nie istnieje, możesz go utworzyć ręcznie. Składnia będzie taka.

password crypt_password

Aby utworzyć powyższe „crypt_password”, możesz użyć polecenia „mkpasswd” w systemie Linux. Oto polecenie z hasłem „pungki123”.

pungki@mint ~ $ mkpasswd pungki123
l2BIBzvIeQNOs

mkpasswd wygeneruje hasło skrótu, jak pokazano powyżej. Po otrzymaniu hasła skrótu możesz je skopiować do pliku „.screenrc” i zapisać. Zatem plik „.screenrc” będzie wyglądał następująco.

password l2BIBzvIeQNOs

Gdy następnym razem uruchomisz ekran i odłączysz go, przy próbie ponownego podłączenia zostanie wyświetlone pytanie o hasło, jak pokazano poniżej:

pungki@mint ~ $ screen -r 5741
Screen password:

Wpisz swoje hasło, czyli „pungki123”, a ekran ponownie załączy się ponownie.

Po zaimplementowaniu tego hasła ekranowego i naciśnięciu „Ctrl-A” i „x”, wynik będzie następujący.

Screen used by Pungki Arianto on mint.
Password:
Screen password:

Hasło zostanie poproszony dwa razy. Pierwsze hasło to hasło do Linuksa, a drugie hasło to hasło umieszczone w pliku .screenrc.

20. Opuszczenie sesji terminala ekranowego

Istnieją 2 (dwa) sposoby opuszczenia ekranu. Najpierw używamy „Ctrl-A” i „d”, aby odłączyć ekran. Po drugie, możemy użyć polecenia exit, aby zakończyć ekran. Możesz także użyć „Ctrl-A” i „K”, aby wyłączyć ekran.

Ściągawka poleceń ekranowych

screen -S <session_name>

Rozpocznij nową sesję z nazwą sesji.

screen -ls

Lista uruchomionych sesji/ekranów.

screen -x

Dołącz do sesji biegowej.

screen -r <session_name>

Dołącz do działającej sesji z nazwą.

screen -d <session_name>

Odłącz uruchomioną sesję.

Ctrl-a c

Utwórz nowe okno.

Ctrl-a Ctrl-a

Zmień na ostatnio odwiedzane aktywne okno.

Ctrl-a <number>

Zmień na okno według numeru.

Ctrl-a ' <number or title>

Zmień na okno według numeru lub nazwy.

Ctrl-a n or Ctrl-a <space>

Przejdź do następnego okna na liście.

Ctrl-a p or Ctrl-a <backspace>

Przejdź do poprzedniego okna na liście.

Ctrl-a "

Zobacz listę okien.

Ctrl-a w

Pokaż pasek okna.

Ctrl-a k

Zabij bieżące okno.

Ctrl-a \

Zabij wszystkie okna.

Ctrl-a A

Zmień nazwę bieżącego okna.

Ctrl-a S

Podziel wyświetlacz w poziomie.

Ctrl-a | or Ctrl-a V

Podziel wyświetlacz w pionie.

Ctrl-a tab

Przejdź do następnego obszaru wyświetlania.

Ctrl-a X

Usuń bieżący region.

Ctrl-a Q

Usuń wszystkie regiony oprócz bieżącego.

Ctrl-a H

Włącz logowanie w sesji ekranowej.

Ctrl-a x

Zablokuj (zabezpiecz hasłem) wyświetlacz.

Oto niektóre z poleceń ekranowych używanych codziennie. Polecenie ekranowe zawiera nadal wiele funkcji. Więcej szczegółów możesz znaleźć na stronie podręcznika ekranu.

Czy znasz jakiś inny najlepszy przykład polecenia screen w systemie Linux? Podziel się z nami swoją opinią w komentarzach poniżej.