Jak korzystać z polecenia ekranowego systemu Linux
Opublikowany: 2022-01-29 Za pomocą polecenia Linux screen
możesz wypychać uruchomione aplikacje terminalowe w tle i przeciągać je do przodu, gdy chcesz je zobaczyć. Obsługuje również wyświetlanie na podzielonym ekranie i działa przez połączenia SSH, nawet po rozłączeniu i ponownym połączeniu!
POWIĄZANE: 10 podstawowych poleceń systemu Linux dla początkujących
Co to jest polecenie na ekranie?
Polecenie screen
jest multiplekserem terminala i jest całkowicie wypełnione opcjami. Powiedzieć, że może wiele, to dziadek niedopowiedzeń. Strona podręcznika ma ponad 4100 linijek.
Oto najczęstsze przypadki, w których można użyć polecenia screen
, które omówimy w dalszej części tego artykułu:
- Standardową operacją jest utworzenie nowego okna z powłoką, wykonanie polecenia, a następnie odsunięcie okna do tła (tzw. „odłączanie”). Jeśli chcesz zobaczyć, jak działa twój proces, możesz ponownie przesunąć okno na pierwszy plan („dołącz ponownie”) i użyć go ponownie. Jest to świetne dla 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ępy. Możesz także podzielić okno terminala na regiony pionowe lub poziome i wyświetlać różne oknascreen
w jednym oknie. - Możesz połączyć się ze zdalną maszyną, rozpocząć sesję
screen
i uruchomić proces. Możesz odłączyć się od zdalnego hosta, połączyć się ponownie, a Twój proces będzie nadal działał. - Możesz udostępnić sesję
screen
między dwoma różnymi połączeniami SSH, aby dwie osoby mogły widzieć to samo w czasie rzeczywistym.
Ekran instalacji
Aby zainstalować screen
na Ubuntu, użyj tego polecenia:
ekran instalacyjny sudo apt-get
Aby zainstalować screen
na Manjaro, użyj następującego polecenia:
sudo pacman - ekran Sy
W Fedorze wpisujesz:
ekran instalacyjny sudo dnf
Pierwsze kroki z ekranem
Aby uruchomić screen
, po prostu wpisz go, jak pokazano poniżej i naciśnij Enter:
ekran
Zobaczysz stronę z informacjami o licencji. Możesz nacisnąć spację, aby przeczytać drugą stronę lub Enter, aby powrócić do wiersza polecenia.
Pozostajesz w wierszu polecenia i wydaje się, że nic się nie wydarzyło. Jednak teraz uruchamiasz powłokę wewnątrz multipleksowanego emulatora terminala. Dlaczego to dobrze? 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
.
W tym celu wpisujemy:
curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > last_kernel.zip
Rozpoczyna się nasze pobieranie, a wynik curl
pokazuje nam postęp.
Nie możemy pokazać obrazu następnego bitu, ponieważ jest to sekwencja naciśnięć klawiszy. Wciskasz Ctrl+A, puszczasz te klawisze, a następnie naciskasz 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 screen
oznaczone 23167.pts-0.howtogeek
zostało odłączone.
Do ponownego dołączenia potrzebny jest numer z początku nazwy okna. Jeśli o tym zapomnisz, zawsze możesz użyć opcji -ls
(lista), jak pokazano poniżej, aby uzyskać listę odłączonych okien:
ekran -ls
Kiedy będziesz gotowy, możesz użyć opcji -r
(ponowne dołączanie) i numeru sesji, aby ją ponownie dołączyć, na przykład:
ekran -r 23167
Okno, które działało w tle, jest teraz przywracane do okna terminala, jakby nigdy nie wychodziło.
Jeśli jest to proces, który dobiegnie końca, w końcu się zakończy. Jeśli jest to ciągły proces, w końcu będziesz chciał go zakończyć. Tak czy inaczej, po zakończeniu procesu możesz wpisać exit
, aby wyjść z screen
. Alternatywnie możesz nacisnąć Ctrl + A, a następnie K, aby wymusić zabicie okna.
Wpisz następujące polecenie:
Wyjście
Wróciłeś do poprzedniego okna terminala, w którym nadal będzie wyświetlane polecenie, którego użyłeś do ponownego dołączenia okna. Ponieważ zamknęliśmy nasze jedyne odłączone okno, otrzymujemy komunikat, że screen
się kończy.
POWIĄZANE: Jak używać curl do pobierania plików z wiersza poleceń systemu Linux
Korzystanie z sesji nazwanych ekranów
Możesz użyć opcji -S
(nazwa sesji), aby nazwać sesję screen
. Jeśli używasz łatwej do zapamiętania nazwy, a nie numerycznej tożsamości sesji, wygodniej jest ponownie połączyć się z sesją. Aby nazwać naszą sesję „bigfile”, wpisujemy następujące polecenie:
ekran -S duży plik
Kiedy screen
uruchamia naszą sesję, widzimy puste okno z wierszem poleceń. Zamierzamy pobrać duży plik, więc jako przykład możemy posłużyć się długotrwałym procesem.
Wpisujemy:
curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip
Po rozpoczęciu pobierania wciskamy Ctrl+A, a następnie wciskamy D, aby odłączyć sesję. Wpisujemy następujące polecenie, aby użyć opcji -ls
(lista) z screen
aby zobaczyć szczegóły naszej odłączonej sesji:
ekran -ls
Za identyfikatorem numerycznym (23266) widzimy nazwę naszej sesji (bigfile). Wpisujemy następujące informacje, w tym nazwę sesji, aby ponownie ją dołączyć:
ekran -r duży plik
Ponownie połączyliśmy się z naszym oknem pobierania i widzimy, że długie pobieranie wciąż trwa.
Po zakończeniu pobierania wpisujemy exit
, aby zamknąć okno sesji.
Korzystanie z ekranu w wielu oknach
Do tej pory używaliśmy screen
do umieszczania pojedynczego procesu w tle w oddzielnym oknie. Jednak screen
jest w stanie zrobić znacznie więcej. Następnie uruchomimy kilka procesów, które pozwolą nam monitorować niektóre aspekty naszego komputera.
Aby rozpocząć sesję ekranową o nazwie „monitor”, wpisujemy następujące polecenie:
ekran -S monitor
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). Spowoduje to wyświetlenie komunikatów bufora jądra; nowe wiadomości będą pojawiać się w miarę ich pojawiania się.
Wpisujemy:
dmesg -H -w
Pojawią się istniejące wiadomości. Nie wracamy do wiersza poleceń, ponieważ dmseg
czeka na nowe wiadomości i wyświetli je, gdy nadejdą.
POWIĄZANE: Jak korzystać z polecenia dmesg w systemie Linux
Chcemy uruchomić inną aplikację, więc potrzebujemy nowego okna screen
. Wciskamy Ctrl+A, a następnie C, aby utworzyć nowe okno. Będziemy używać watch
do wielokrotnego uruchamiania vmstat
, dzięki czemu otrzymujemy często aktualizowany obraz wykorzystania pamięci wirtualnej na naszym komputerze.
W nowym wierszu polecenia wpisujemy:
oglądaj vmstat
Dane wyjściowe vmstat
są wyświetlane i aktualizowane co dwie sekundy.
Nasze dwa procesy są już uruchomione. Aby przeskakiwać między oknami screen
, naciśnij Ctrl+A i numer okna. Pierwsze, które stworzyliśmy, to okno zero (0), następne to okno 1 i tak dalej. Aby przeskoczyć do pierwszego okna (tego z dmesg
), wciskamy Ctrl+A i 0.
Jeśli naciśniemy Ctrl+A i 1, przeniesie nas z powrotem do okna vmstat
.
To całkiem fajne! Możemy nacisnąć Ctrl+A, a następnie D, aby odłączyć się od tej sesji; możemy 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 zobaczmy oba ekrany w jednym oknie. Kiedy to zrobisz, rozciągniesz okno terminala do rozmiaru, który sprawi, że ten krok będzie przydatny. Nasze przykłady są ograniczone do rozmiaru naszych 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 wielka litera „S”).
Okno dzieli się na dwa „regiony”.
Górny region nadal wyświetla vmstat
, a dolny region jest pusty. Kursor jest podświetlony na zrzucie ekranu poniżej. Aby przenieść go do niższego regionu, wciskamy Ctrl+A, a następnie Tab.
Kursor przesuwa się do dolnego obszaru, który tak naprawdę jest tylko pustą przestrzenią. To nie jest powłoka, więc nie możemy w niej nic wpisać. Aby uzyskać przydatny wyświetlacz, wciskamy Ctrl+A, a następnie wciskamy „0”, aby wyświetlić okno dmesg
w tym regionie.
Daje nam to 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 dołączyć, stracimy widok podzielonego panelu. Możemy go jednak przywrócić za pomocą następujących skrótów klawiaturowych:
- Ctrl+A, S: Podziel okno w poziomie.
- Ctrl+A , Tab: Przejdź do niższego regionu.
- Ctrl+A, 0: Wyświetl okno zero w dolnym obszarze.
Możemy pójść o krok dalej. Podzielimy teraz dolny panel w pionie i dodamy trzeci proces do wyświetlacza. Gdy kursor znajduje się w dolnym obszarze, wciskamy Ctrl+A i C, aby utworzyć nowe okno z powłoką. Dolny region wyświetla nowe okno i daje nam wiersz poleceń.
Następnie uruchamiamy polecenie df
, aby sprawdzić użycie systemu plików:
df
Kiedy widzimy, że df
działa, wciskamy Ctrl+A i znak kreski pionowej (|)
. Dzieli to dolny region w pionie. Wciskamy Ctrl+A i Tab, aby przejść do nowego regionu. Następnie wciskamy Ctrl+A i 0, aby wyświetlić okno dmesg
.
Możesz także przechodzić z regionu do regionu i dodawać więcej podziałów w pionie lub poziomie. Oto kilka bardziej przydatnych kombinacji klawiszy:
- Ctrl+A: przeskakuj tam iz powrotem między bieżącym i poprzednim regionem.
- Ctrl+A, Q: Zamknij wszystkie regiony oprócz bieżącego.
- Ctrl+A, X: Zamknij bieżący region.
Korzystanie z ekranu przez SSH
Za pomocą screen
możesz rozpocząć sesję okna, odłączyć ją, aby nadal działała w tle, wylogować się lub ponownie zalogować i ponownie dołączyć sesję.
Nawiążmy połączenie SSH z naszym komputerem z innego za pomocą polecenia ssh
. Musimy podać nazwę konta, z którym będziemy się łączyć oraz adres komputera zdalnego.
W naszym przykładzie wpisujemy:
ssh [email protected]
Po uwierzytelnieniu na zdalnym komputerze i zalogowaniu się, wpisujemy następujące polecenie, aby rozpocząć sesję screen
o nazwie „ssh-geek”:
ekran -S ssh-geek
W celach demonstracyjnych uruchomimy top
w oknie screen
, ale możesz rozpocząć dowolny długotrwały lub niekończący się proces.
Wpisujemy:
szczyt
Gdy top
jest uruchomiony w oknie, wciskamy Ctrl+A, a następnie D, aby odłączyć okno.
Wróciliśmy do oryginalnego, zdalnego okna terminala.
Jeśli wpiszemy exit
, jak pokazano poniżej, rozłącza sesję SSH i wracamy na nasz lokalny komputer:
Wyjście
Aby ponownie się połączyć, wpisujemy następujące polecenie:
ssh [email protected]
Po ponownym połączeniu i zalogowaniu możemy wpisać następujące polecenie, aby ponownie dołączyć sesję screen
:
ekran -r ssh-geek
Jesteśmy teraz ponownie połączeni z naszą wciąż działającą instancją top
.
Jest to świetne, jeśli chcesz rozpocząć proces na jednej maszynie, a następnie kontynuować od miejsca, w którym przerwałeś na innym.
POWIĄZANE: Jak tworzyć i instalować klucze SSH z powłoki systemu Linux
Udostępnianie ekranu Sesja
Możesz także użyć sesji screen
, aby umożliwić dwóm osobom oglądanie tego samego okna i interakcję z nim. Załóżmy, że ktoś, kto ma na swoim komputerze Fedorę, chce połączyć się z naszym serwerem Ubuntu.
Wpisałby to:
ssh [email protected]
Po nawiązaniu połączenia rozpoczyna sesję screen 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ę screen
, która jest już odłączona.
Pisze:
ekran -d -m -S ssh-geek
Wpisuje następujące polecenie, używając opcji -x
(tryb wieloekranowy), aby dołączyć sesję:
ekran -x ssh-geek
Na komputerze Manjaro inna osoba łączy się z komputerem Ubuntu z tymi samymi danymi uwierzytelniającymi konto, jak pokazano poniżej:
ssh [email protected]
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:
ekran -X ssh-geek
Teraz wszystko, co jedna osoba wpisze, zobaczy druga. Na przykład, gdy jedna osoba wydaje polecenie date, oboje widzą je tak, jak zostało wpisane, a także dane wyjściowe.
Obie osoby dzielą teraz sesję screen
uruchomioną na zdalnym komputerze Ubuntu.
Jak na oprogramowanie, które po raz pierwszy ujrzało światło dzienne w 1987 roku, screen
wciąż zapewnia niezłą wydajność. Zapoznanie się z nim będzie dobrze spędzonym czasem!
POWIĄZANE: 37 ważnych poleceń systemu Linux, które powinieneś znać
Polecenia Linuksa | ||
Pliki | tar · pv · kot · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · dysk testowy · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · ogon · stat · ls · fstab · echo · mniej · chgrp · chown · rev · wygląd · stringi · typ · zmiana nazwy · zip · rozpakuj · montuj · umount · zainstaluj · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konwertuj · rclone · shred · srm | |
Procesy | alias · ekran · top · ładne · renice · postęp · strace · systemd · tmux · chsh · historia · w · wsad · free · co · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · ściana · tak · kill · sen · sudo · su · czas · groupadd · usermod · grupy · lshw · zamknij · restart · halt · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Sieć | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów