Как да използвате екранната команда на Linux

С командата на екрана на Linux можете да натиснете на заден план работещи терминални приложения и да ги издърпате напред, когато искате да ги видите. Той също така поддържа дисплеи с разделен екран и работи през SSH връзки, дори след като изключите и свържете отново!

Какво представлява командата на екрана?

Екранната команда е a терминален мултиплексор, и е абсолютно пълен с опции. Да се ​​каже, че може да направи много, е дядо на подценяването. Човешката страница преминава до над 4100 реда.

Следват най-често срещаните случаи, в които бихте използвали командата screen и ние ще ги разгледаме допълнително в тази статия:

Стандартната операция е да създадете нов прозорец с обвивка в него, да изпълните команда и след това да натиснете прозореца на заден план (наречено „откачване“). Когато искате да видите как върви вашият процес, можете да издърпате прозореца на преден план отново („прикрепете отново“) и да го използвате отново. Това е чудесно за дълги процеси, които не искате да прекратите случайно, като затворите прозореца на терминала.
След като стартирате сесия на екрана, можете да създавате нови прозорци и да стартирате други процеси в тях. Можете лесно да прескачате между прозорците, за да наблюдавате техния напредък. Можете също да разделите прозореца на терминала на вертикални или хоризонтални региони и да покажете различните си прозорци на екрана в един прозорец.
Можете да се свържете с отдалечена машина, да стартирате екранна сесия и да стартирате процес. Можете да прекъснете връзката с отдалечения хост, да се свържете отново и вашият процес ще продължи да работи.
Можете да споделяте екранна сесия между две различни SSH връзки, така че двама души да могат да виждат едно и също нещо в реално време.

Екран за инсталиране

За да инсталирате screen на ubuntu, използвайте тази команда:

sudo apt-get install screen

В

За да инсталирате екрана на Manjaro, използвайте следната команда:

sudo pacman -Sy screen

В

Във Fedora пишете следното:

sudo dnf install screen

В

Първи стъпки с екрана

За да стартирате екрана, просто го въведете, както е показано по-долу и натиснете Enter:

screen

В

Ще видите страница с информация за лиценза. Можете да натиснете интервала, за да прочетете втората страница, или Enter, за да се върнете към командния ред.

В

Оставате на командния ред и изглежда, че нищо особено не се е случило. Сега обаче изпълнявате обвивка в мултиплексиран терминален емулатор. Защо това е нещо добро? Е, нека започнем процес, който ще отнеме много време за завършване. Ще изтеглим изходния код за най-новото ядро ​​на Linux и ще го пренасочим към файл, наречен latest_kernel.zip.

За целта набираме следното:

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

В latest_kernel.zip” команда в прозорец на терминал.’ ширина=”646″ височина=”77″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);” onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”>

Нашето изтегляне започва и изходът на curl ни показва напредъка.

Изходът от latest_kernel.zip” команда в прозорец на терминал.’ ширина=”646″ височина=”247″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);” onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”>

Не можем да ви покажем изображение на следващия бит, защото това е последователност от натискане на клавиш. Въведете Ctrl+A, пуснете тези клавиши и след това натиснете d, за да отделите екрана.

  Как да настроите Firejail на Linux

Процесът на изтегляне продължава, но прозорецът, показващ изтеглянето, е премахнат. Връщате се в прозореца на терминала, от който сте стартирали екранната сесия. Съобщение ви казва, че прозорец на екрана с етикет 23167.pts-0.wdzwdz е бил отделен.

Нуждаете се от номера от началото на името на прозореца, за да го прикачите отново. Ако го забравите, винаги можете да използвате опцията -ls (списък), както е показано по-долу, за да получите списък на отделените прозорци:

screen -ls

В

Когато сте готови, можете да използвате опцията -r (reattach) и номера на сесията, за да я прикачите отново, така:

screen -r 23167

В

Прозорецът, който работи във фонов режим, сега се връща в прозореца на вашия терминал, сякаш никога не е напускал.

Ако това е процес, който ще премине до завършването си, той в крайна сметка ще завърши. Ако това е непрекъснат процес, в крайна сметка ще искате да го прекратите. Така или иначе, когато процесът приключи, можете да въведете exit, за да излезете от екрана. Като алтернатива можете да натиснете Ctrl+A и след това K, за да убиете насилствено прозорец.

Въведете следната команда:

exit

В

Вие се връщате към предишния прозорец на терминала, който все още ще показва командата, която сте използвали, за да прикачите отново прозореца. Тъй като затворихме нашия единствен и единствен отделен прозорец, получаваме съобщение, че екранът приключва.

В

Използване на именувани екранни сесии

Можете да използвате опцията -S (име на сесията), за да наименувате сесията на екрана. Ако използвате запомнящо се име, а не цифровата идентичност на сесията, е по-удобно да се свържете отново със сесия. Пишем следното, за да назовем нашата сесия „bigfile“:

screen -S bigfile

В

Когато екранът стартира нашата сесия, виждаме празен прозорец с команден ред. Ще изтеглим голям файл, за да можем да използваме продължителен процес като пример.

Пишем следното:

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

В bigfile.zip” команда в прозорец на терминала.’ ширина=”646″ височина=”77″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);” onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”>

Когато изтеглянето започне, натискаме Ctrl+A и след това натискаме D, за да отделим сесията. Пишем следното, за да използваме опцията -ls (списък) с екран, за да видим подробностите за нашата отделена сесия:

screen -ls

В

Зад цифровия идентификатор (23266) виждаме името на нашата сесия (голям файл). Набираме следното, включително името на сесията, за да го прикачим отново:

screen -r bigfile

В

Свързваме се отново с нашия прозорец за изтегляне и виждаме, че дългото изтегляне все още е в ход.

Когато изтеглянето приключи, въвеждаме exit, за да затворим прозореца на сесията.

Използване на екран с множество Windows

Досега използвахме screen, за да поставим един процес на заден план в отделен прозорец. Въпреки това, екранът е в състояние да направи много повече от това. След това ще изпълним няколко процеса, които ни позволяват да наблюдаваме някои аспекти на нашия компютър.

Пишем следното, за да започнем екранна сесия, наречена „монитор“:

screen -S monitor

В

В командния ред в новата ни сесия на прозореца ще стартираме dmesg и ще използваме опциите -H (четими от хора) и -w (изчакване на нови съобщения). Това ще показва буферните съобщения на ядрото; новите съобщения ще се появяват, когато се появят.

  Как да инсталирате и използвате Stacer на Linux

Пишем следното:

dmesg -H -w

В

Появяват се съществуващите съобщения. Не сме върнати в командния ред, защото dmseg чака нови съобщения и ще ги показва, когато пристигнат.

В

Искаме да стартираме друго приложение, така че се нуждаем от нов прозорец на екрана. Натискаме Ctrl+A и след това C, за да създадем нов прозорец. Ще използваме часовник за бягайте многократно vmstat, така че получаваме често актуализиран показване на използването на виртуалната памет на нашия компютър.

В новия команден ред въвеждаме следното:

watch vmstat

В

Изходът vmstat се появява и се актуализира на всеки две секунди.

В

Двата ни процеса вече работят. За да прескачате между прозорците на екрана, натиснете Ctrl+A и номера на прозореца. Първият, който създадохме, е прозорец нула (0), следващият е прозорец 1 и т.н. За да преминете към първия прозорец (този dmesg), натискаме Ctrl+A и 0.

Връщайки се към

Ако натиснете Ctrl+A и 1, това ни връща към прозореца на vmstat.

Връщайки се към

Това е доста изящно! Можем да натиснете Ctrl+A и след това D, за да се отделим от тази сесия; можем да се свържем отново по-късно. И двете сесии ще продължат. Отново, за да превключваме между прозорците, натискаме Ctrl+A и номера (0 или 1) на прозореца, към който искаме да превключим.

Нека да преминем към следващата стъпка и да видим двата екрана в един прозорец. Когато направите това, ще разтегнете прозореца на терминала до размер, който прави тази стъпка полезна. Нашите примери са ограничени до размера на нашите екранни снимки, така че прозорците ни ще изглеждат малко тесни.

За да направите това, натискаме Ctrl+A и след това Shift+S (изисква се главно „S“).

Прозорецът се разделя на две „региони“.

А

Горният регион все още показва vmstat, а долният регион е празен. Курсорът е маркиран на екранната снимка по-долу. За да го преместите в долния регион, натискаме Ctrl+A и след това Tab.

А

Курсорът се премества в долната област, която всъщност е просто празно пространство. Това не е обвивка, така че не можем да въвеждаме нищо в него. За да получите полезен дисплей, натискаме Ctrl+A и след това натискаме „0“, за да покажем прозореца на dmesg в този регион.

В

Това ни дава и двата изхода на живо в един разделен прозорец. Ако натиснете Ctrl+A и D, за да отделим прозореца и след това да го прикачим отново, ще загубим изгледа на разделен панел. Въпреки това можем да го възстановим със следните клавишни комбинации:

Ctrl+A, S: Разделете прозореца хоризонтално.
Ctrl+A, Tab: Преместване в долния регион.
Ctrl+A, 0: Показване на прозореца нула в долния регион.

Можем да направим нещата дори крачка напред. Сега ще разделим долния панел вертикално и ще добавим трети процес към дисплея. С курсора в долния регион, натискаме Ctrl+A и C, за да създадем нов прозорец с обвивка в него. Долният регион показва новия прозорец и ни дава команден ред.

А

След това изпълняваме командата df за проверете използването на файловата система:

df

А

Когато видим, че df работи, натискаме Ctrl+A и символа за вертикална черта (|). Това разделя долната област вертикално. Натискаме Ctrl+A и Tab, за да преминем към новия регион. След това натискаме Ctrl+A и 0, за да покажем прозореца на dmesg.

  Shadow of War на Linux

А

Можете също да се движите от регион в регион и да добавяте още вертикални или хоризонтални разделяния. Ето още няколко полезни комбинации от клавиши:

Ctrl+A: Прескачане напред-назад между текущия и предишния регион.
Ctrl+A, Q: Затворете всички региони с изключение на текущия.
Ctrl+A, X: Затваряне на текущия регион.

Използване на екран през SSH

С екрана можете да стартирате сесия на прозорец, да я отделите, така че да работи на заден план, да излезете или да влезете отново и да свържете сесията отново.

Нека направим SSH връзка с нашия компютър от различен с командата ssh. Трябва да предоставим името на акаунта, с който ще се свържем, и адреса на отдалечения компютър.

За нашия пример въвеждаме следното:

ssh [email protected]

В

След като се удостоверим на отдалечения компютър и влезем, въвеждаме следното, за да започнем екранна сесия, наречена „ssh-geek“:

screen -S ssh-geek

В

За демонстрационни цели ще стартираме отгоре в прозореца на екрана, но можете да стартирате всеки продължителен или безкраен процес.

Пишем следното:

top

В

След като top стартира в прозореца, натискаме Ctrl+A и след това D, за да отделим прозореца.

В

Връщаме се към оригиналния, отдалечен прозорец на терминала.

Ако напишем exit, както е показано по-долу, това прекъсва SSH сесията и ние се връщаме на нашия локален компютър:

exit

В

Въведем следното, за да се свържете отново:

ssh [email protected]

В

След като се свържем отново и влезем, можем да напишем следното, за да прикачим отново екранната сесия:

screen -r ssh-geek

В

Сега отново сме свързани с нашия все още работещ екземпляр на top.

В

Това е чудесно, ако искате да започнете процес на една машина и след това да продължите откъдето сте спрели на друга.

Споделяне на екранна сесия

Можете също да използвате екранна сесия, за да позволите на двама души да виждат и взаимодействат с един и същ прозорец. Да кажем, че някой, който изпълнява Fedora на компютъра си, иска да се свърже с нашия Ubuntu сървър.

Щеше да напише следното:

ssh [email protected]

В

След като се свърже, той започва екранна сесия, наречена „ssh-geek“, използвайки опцията -S (име на сесията). Той също така използва опциите -d (откачване) и -m (принудително създаване), за да създаде нова екранна сесия, която вече е отделена.

Той въвежда следното:

screen -d -m -S ssh-geek

В

Той въвежда следното, като използва опцията -X (многоекранен режим), за да прикачи сесията:

screen -X ssh-geek

В

На компютър Manjaro друг човек се свързва към компютъра Ubuntu със същите идентификационни данни за акаунт, както е показано по-долу:

ssh [email protected]

В

След като се свърже, тя въвежда екранната команда и използва опцията -X (многоекранен режим), за да се присъедини към същата сесия на прозореца, както следва:

screen -X ssh-geek

В

Сега, каквото и да пише, другият ще види. Например, когато един човек издаде командата за дата, и двамата я виждат, както е въведена, както и нейния изход.

В

Изход от

И двамата сега споделят екранна сесия, която се изпълнява на отдалечен компютър с Ubuntu.

За част от софтуера, която за първи път видя бял свят през 1987 г., екранът все още има добра производителност. Запознаването с него ще бъде добре прекарано време!