Cookie

команда “экран” для эмуляции нескольких сеансов оболочки

Опубликовано TheJoe на

Приблизительное время чтения: 4 минут

предосторожность


Эта статья была опубликована более чем год назад, там, возможно, были события.
Пожалуйста, примите это во внимание.

Сегодня мы посмотрим, как этим пользоваться. screen.

Недавно мне пришлось запускать команды, которые ожидали очень большую продолжительность на удаленном сервере.. В моей последней статье, например, Я описал, как передавать данные между старым NAS и современным NAS через FTP.. В этом случае я использовал wget с темой -b перевод процесса в фоновый режим, чтобы я мог отключить сеанс SSH, и процесс продолжался до конца.

Чтобы перевести даже очень длительный процесс в фоновый режим, просто добавьте & в конце команды. К сожалению, я очень небрежен и часто ожидаю, что команда быстро вернет вывод., хотя на самом деле я понимаю, что сэкономил бы свое время, поставив проклятый символ внизу команды. пример?

~# updatedb &

Вместо этого мы хотим поговорить о тех случаях, когда мы давали команды одного и того же типа., но потом связь пропала по самым разным причинам? С кем этого не произошло?

К счастью, оно существует screen который делает это и многое другое… и теперь мы это увидим.

Screen способен управлять бесконечными окнами виртуального терминала за один сеанс.. Это означает, что, запуская несколько команд на удаленном компьютере, нам не придется открывать SSH-соединение для каждой запускаемой команды.. За один сеанс мы имеем безграничные возможности “окна” виртуальные и бесконечные сеансы.

Процессы экрана остаются активными, даже когда мы закрываем основной сеанс., если мы не прекратим их добровольно. Это означает, что в случае случайного отключения процесс продолжится до конца и мы сможем без боли повторно подключиться к прерванной сессии..

Установка

Screen предустановлен во всех основных дистрибутивах.. Проверьте, есть ли он среди ваших посылок..

~# screen --version
Screen version 4.08.00 (GNU) 05-Feb-20

Для архитектур на основе apt:

~# apt install screen

Для архитектур на основе rpm:

~# yum install screen

Стартовый экран

Чтобы начать сеанс экрана, просто напишите screen в консоли.

~$ screen

Эта команда создаст сеанс экрана, создаст новое виртуальное окно в сеансе и запустит оболочку в этом окне.

Теперь, когда мы начали сеанс, мы можем найти список команд, набрав: Ctrl + a ?.

Выход Ed ECCO l':

                           Command key:  ^A   Literal ^A:  a

    break       ^B b           license     ,              removebuf   =         
    clear       C              lockscreen  ^X x           reset       Z         
    colon       :              log         H              screen      ^C c      
    copy        ^[ [           login       L              select      '         
    detach      ^D d           meta        a              silence     _         
    digraph     ^V             monitor     M              split       S         
    displays    *              next        ^@ ^N sp n     suspend     ^Z z      
    dumptermcap .              number      N              time        ^T t      
    fit         F              only        Q              title       A         
    flow        ^F f           other       ^A             vbell       ^G        
    focus       ^I             pow_break   B              version     v         
    hardcopy    h              pow_detach  D              width       W         
    help        ?              prev        ^H ^P p ^?     windows     ^W w      
    history     { }            quit        \              wrap        ^R r      
    info        i              readbuf     <              writebuf    >         
    kill        K k            redisplay   ^L l           xoff        ^S s      
    lastmsg     ^M m           remove      X              xon         ^Q q      

^]   paste .
"    windowlist -b
-    select -
0    select 0
1    select 1
2    select 2
3    select 3
4    select 4
5    select 5
6    select 6
7    select 7
8    select 8
9    select 9
I    login on
O    login off
]    paste .
|    split -v
:kB: focus prev

Дайте сеансу имя

Переименованная сессия удобна, когда нам нужно ее вызвать.. Например, переименование сеанса “wget_debian” взглянув на список активных сеансов, мы сразу узнаем, что в этом сеансе мы запустили загрузку ISO-образа Debian..

~$ screen -S wget_debian

Ознакомьтесь с экранными окнами

При запуске экрана сеанса создается виртуальное окно с оболочкой внутри..

Смотри сюда:  "печать" дата и время автоматически на любом фото

Экранные окна не следует путать с сеансами.. Окно (столько окон, сколько вы хотите) содержится в сеансе, от которого вы можете отключиться, не завершая содержащиеся процессы.

Вы можете иметь несколько окон в сеансе экрана.

Чтобы создать новый тип виртуального окна Ctrl+a c и первое число из 0 а 9 будет назначен.

Ниже приведены некоторые из наиболее распространенных команд для управления экранными окнами.:

  • Ctrl + a c Создать новое окно
  • Ctrl + a " Показать список окон
  • Ctrl + a 0 (нуль) Переключиться на окно “0” (заменять “0” с номером, относящимся к нужному окну
  • Ctrl + a A Переименуйте текущее окно
  • Ctrl + a S Разделяет часть экрана по горизонтали
  • Ctrl + a | Разделяет часть экрана по вертикали
  • Ctrl + a tab Переместить фокус на следующий регион
  • Ctrl + a Ctrl + a Переход от предыдущего окна к следующему
  • Ctrl + a Q Закрывает все регионы
  • Ctrl + a X Закрывает текущий регион

Отключить (отделить) ваш терминал из текущего сеанса

Одно из преимуществ, как уже упоминалось, это возможность продолжать работу, позволяя сеансам экрана работать в фоновом режиме, пока пользователь может работать над чем-то другим.

Ctrl + a d

Восстановить соединение (резюме) ваш терминал в сеансе

Чтобы восстановить соединение с прерванным сеансом:

~$ screen -r

Если на одном компьютере имеется несколько сеансов, после аргумента также необходимо будет добавить идентификатор сеанса. -r.

Чтобы найти идентификатор сеанса для повторного подключения, используйте следующую команду:

~$ screen -ls
There are screens on:
13871.pts-3.joe-toshiba (29/11/2022 11:59:39) (Detached)
13836.pts-3.joe-toshiba (29/11/2022 11:59:20) (Detached)
13811.pts-3.joe-toshiba (29/11/2022 11:58:49) (Detached)
3 Sockets in /run/screen/S-joe.

Если мы хотим вернуться к сеансу 13836.pts-3 мы набираем команду:

~$ screen -r 13836

Выводы

Сегодня мы узнали, как использовать screen для создания нескольких окон за один сеанс., перемещаться между окнами, а также отключаться и повторно подключаться к различным сеансам… но оно там еще многое предстоит узнать экран су.


TheJoe

Я держу это в качестве хобби блог от 2009. Я графики энтузиастов, технология, Программное обеспечение с открытым исходным кодом. Среди моих статей не будет трудно найти о музыке, и некоторые личные размышления, но я предпочитаю, чтобы направить линию блога в основном технологии. Для получения дополнительной информации связаться со мной.

0 Комментарии

оставьте ответ

Заполнитель аватара

Ваш электронный адрес не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатывается комментарий данных.