Поиск по сайту:

20 примеров экранных команд для управления терминалами Linux


Кратко. В этом руководстве мы обсудим несколько полезных примеров команды screen. К концу этого руководства пользователи смогут работать с несколькими сеансами оболочки, используя одно окно терминала Linux.

Как пользователям Linux, нам часто приходится работать над длительными задачами, такими как загрузка или копирование больших файлов, выполнение трудоемких запросов к базе данных и так далее. Иногда эти важные задачи внезапно завершаются из-за тайм-аута сеанса.

Чтобы смягчить такие сценарии, мы можем использовать команду screen, которая представляет собой полноэкранную программу, которую можно использовать для мультиплексирования физической консоли между несколькими процессами (обычно интерактивными оболочками). Он предлагает пользователю открыть несколько отдельных экземпляров терминала внутри одного оконного менеджера терминала.

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

В этом руководстве мы обсудим, как установить, настроить и использовать команду screen в системе Linux. В этом руководстве мы поймем использование и преимущества команды экрана на практических примерах.

Итак, давайте начнем.

Установить экранную команду в Linux

В моей Ubuntu Server Edition команда screen установлена по умолчанию. Но в Linux Mint не установлен экран по умолчанию, поэтому мне нужно сначала установить его с помощью команды apt-get, прежде чем использовать его. .

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

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]    

Теперь давайте проверим, что команда успешно установлена:

screen --version

Screen version 4.8.00 (GNU) 05-Feb-20

На самом деле, screen – это очень хорошая программа терминального мультиплексора в Linux, которая скрыта внутри сотен команд Linux.

Давайте начнем рассматривать использование команды screen в Linux на следующих примерах.

Синтаксис экранных команд

Синтаксис команды screen следующий.

screen [OPTIONS] [ CMD [ ARGS ] ]

В приведенном выше синтаксисе мы видим, что все параметры являются опциями и представлены квадратными скобками ([]).

1. Стартовый экран в первый раз

Просто введите экран в командной строке. Тогда на экране отобразится интерфейс, точно такой же, как в командной строке.

screen

2. Показать параметры экрана

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

Введите «Ctrl-A» и «?» без кавычек. После этого вы увидите все команды или параметры на экране.

Чтобы выйти из экрана справки, вы можете нажать кнопку «пробел» или «Enter». (Обратите внимание, что все сочетания клавиш, использующие «Ctrl-A», выполняются без кавычек).

3. Как составить список всех открытых окон

В предыдущем примере мы запустили новый сеанс оболочки с помощью команды screen. Теперь давайте воспользуемся комбинацией клавиш ctrl-a + ", чтобы вывести список всех открытых окон текущего сеанса экрана:

В приведенном выше выводе мы видим номер и имя окна. Первый столбец представляет номер окна и начинается с нуля.

Следующий столбец представляет имя окна, а его формат по умолчанию: <пользователь>@<имя хоста>:<рабочий каталог>.

4. Как завершить сеанс Screen Window

Мы можем завершить активный сеанс окна, используя комбинации клавиш ctrl-a + k. Важно отметить, что это действие прервет выполнение команды из текущего виртуального окна.

В приведенном выше выводе мы видим, что команда screen ожидает подтверждения пользователя. В левом нижнем углу отображается предупреждающее сообщение.

Как и другие команды Linux, мы можем использовать 'y' для продолжения или 'n' для прерывания операции.

5. Как начать сеанс экрана с именем

Команда screen позволяет нам создать сеанс с определяемым пользователем именем, что удобно, когда доступно несколько сеансов.

Итак, давайте воспользуемся опцией -S команды для создания именованного сеанса:

screen -S demo-screen

В приведенной выше команде демо-экран — это имя сеанса.

6. Отключите сеанс терминала с помощью Screen

Одним из преимуществ экрана является то, что его можно отсоединить. Затем вы сможете восстановить его, не теряя ничего из того, что вы сделали на экране. Вот пример сценария:

Вы используете SSH на своем сервере. Предположим, вы загружаете патч 400 МБ для своей системы с помощью команды wget.

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

Взгляните на эту команду. Сначала вам нужно войти на экран.

screen

Затем вы можете выполнить процесс загрузки. Например, в моем Linux Mint я обновляю пакет dpkg с помощью команды 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

Во время загрузки вы можете нажать «Ctrl-A» и «d». Вы ничего не увидите, когда нажмете эти кнопки. Вывод будет таким:

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

7. Повторно подключите сеанс терминала с помощью Screen.

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

pungki@mint ~ $ screen -r

И вы увидите, что процесс, который вы оставили, все еще работает.

Если у вас более 1 сеанса экрана, вам необходимо ввести ID сеанса экрана. Используйте screen -ls, чтобы увидеть, сколько экранов доступно.

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

Если вы хотите восстановить экран 7849.pts-0.mint, введите эту команду.

pungki@mint ~ $ screen -r 7849

8. Использование окон многоэкранного терминала

Возможно ли это, если для работы вам нужно более 1 экрана? Да, это. Вы можете одновременно запускать несколько экранных окон. Есть 2 (два) способа сделать это.

Во-первых, вы можете отсоединить первый экран и запустить другой экран на реальном терминале. Во-вторых, вы создаете вложенный экран, как показано.

Чтобы создать новые окна, используйте комбинацию клавиш ctrl-a + c два раза, чтобы создать два новых окна. Далее давайте воспользуемся комбинацией клавиш ctrl-a + ", чтобы вывести список всех активных окон:

В приведенном выше выводе мы видим, что теперь есть три окна.

9. Как переименовать окно экрана

В предыдущем примере мы создали два новых окна. Однако их имена по умолчанию не содержат никакой информации о них. В таких случаях мы можем присвоить им некоторые осмысленные имена.

Мы можем использовать комбинацию клавиш ctrl-a + A, чтобы переименовать текущий сеанс окна. Эта комбинация клавиш предлагает пользователю установить заголовок окна:

10. Переключение между окнами Screen Terminal

В предыдущем примере мы создали несколько окон. Теперь посмотрим, как переключаться между ними.

Сначала давайте перечислим все активные окна, используя комбинацию клавиш ctrl-a + ". Затем используйте клавишу со стрелкой вверх или вниз, чтобы выбрать соответствующее окно. Наконец, нажмите клавишу ввода, чтобы переключиться на выбранное окно. окно.

В этом примере мы выбрали окно с заголовком — db-query.

11. Как перейти к следующему окну экрана

Мы можем использовать комбинацию клавиш ctrl-a + n для перехода к следующим окнам. Давайте разберемся в этом на примере.

Сначала переключитесь на первое окно и проверьте его, используя комбинацию клавиш ctrl-a + ":

Теперь давайте дважды нажмем комбинацию клавиш ctrl-a + n, чтобы перейти к третьему окну, и воспользуемся комбинацией клавиш ctrl-a + ", чтобы проверить то же самое.

В приведенном выше выводе мы видим, что находимся в третьем окне.

12. Как перейти к окну предыдущего экрана

Аналогичным образом мы можем использовать комбинацию ctrl-a + p для перехода к предыдущему окну.

В настоящее время мы находимся на третьем окне. Итак, давайте дважды воспользуемся комбинацией клавиш ctrl-a + p и проверим, что мы снова находимся в первом окне:

В приведенном выше выводе мы видим, что теперь мы вернулись к первому окну.

13. Как переключаться между текущим и предыдущим окном

Иногда нам просто нужно переключиться между двумя окнами. В таких случаях мы можем использовать комбинацию клавиш ctrl-a + ctrl-a.

Чтобы это понять, сначала переключимся на первое окно:

Далее переключимся на последнее окно:

Наконец, используйте комбинацию клавиш ctrl-a + ctrl-a, чтобы снова перейти к первому окну.

14. Как перейти к определенному окну экрана

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

Сначала давайте воспользуемся комбинацией клавиш ctrl-a + ", чтобы найти номер окна:

В приведенном выше выводе первый столбец представляет номер окна. Важно отметить, что экранная команда начинает нумерацию с нуля.

Теперь давайте воспользуемся комбинацией клавиш ctrl-a + 2, чтобы перейти к третьему окну и убедиться, что мы находимся в правильном окне:

15. Как разделить окно экрана по горизонтали

Как и в случае с обычными терминалами, мы также можем разделить окно экрана. Мы можем использовать комбинацию клавиш ctrl-a + S, чтобы разделить окно по горизонтали.

Теперь мы можем использовать комбинацию клавиш ctrl-a + tab для переключения между регионами.

Наконец, мы можем использовать комбинацию клавиш ctrl-a + X, чтобы удалить текущий регион. Важно отметить, что здесь мы должны использовать символ X в верхнем регистре.

16. Как разделить окно экрана по вертикали

Аналогичным образом мы можем использовать комбинацию клавиш ctrl-a + |, чтобы разделить текущее окно по вертикали:

В дополнение к этому мы также можем использовать комбинацию клавиш ctrl-a + tab для переключения между регионами и комбинацию клавиш ctrl-a + X, чтобы закрыть текущий регион.

17. Включите ведение журнала экрана в Linux

Иногда важно записывать все, что вы сделали, пока находитесь в консоли. Допустим, вы администратор Linux и управляет множеством серверов Linux.

Благодаря такому протоколированию экрана вам не нужно записывать каждую выполненную команду. Чтобы активировать функцию записи экрана, просто нажмите «Ctrl-A» и «H». (Будьте осторожны, мы используем заглавные буквы «H». Использование непрописных букв «h» приведет только к созданию снимка экрана в другом файле с именем «Hardcopy»). .

В левом нижнем углу экрана появится уведомление, в котором вам будет предложено: Создание файла журнала «screenlog.0». В вашем домашнем каталоге вы найдете файл screenlog.0.

Эта функция будет добавлять все, что вы делаете, пока находитесь в окне экрана. Чтобы закрыть экран для регистрации беговой активности, нажмите «Ctrl-A» и «H» еще раз.

Еще один способ активировать функцию ведения журнала: вы можете добавить параметр «-L» при первом запуске экрана. Команда будет такая.

pungki@mint ~ $ screen -L

18. Блокировка экрана терминала Linux

На экране также есть ярлык для блокировки экрана. Вы можете нажать сочетания клавиш «Ctrl-A» и «x», чтобы заблокировать экран. Это удобно, если вы хотите быстро заблокировать экран. Вот пример вывода экрана блокировки после нажатия ярлыка.

Screen used by Pungki Arianto  on mint.
Password:

Вы можете использовать свой пароль Linux, чтобы разблокировать его.

19. Добавьте пароль к сеансу экрана

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

Чтобы защитить пароль экрана, вы можете отредактировать файл «$HOME/.screenrc». Если файл не существует, его можно создать вручную. Синтаксис будет таким.

password crypt_password

Чтобы создать «crypt_password», вы можете использовать команду «mkpasswd» в Linux. Вот команда с паролем «pungki123».

pungki@mint ~ $ mkpasswd pungki123
l2BIBzvIeQNOs

mkpasswd сгенерирует хэш-пароль, как показано выше. Получив хеш-пароль, вы можете скопировать его в файл «.screenrc» и сохранить. Итак, файл «.screenrc» будет таким.

password l2BIBzvIeQNOs

В следующий раз, когда вы запустите экран и отсоедините его, при попытке повторно присоединить будет запрошен пароль, как показано ниже:

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

Введите свой пароль: «pungki123», и экран снова прикрепится.

После того, как вы внедрите этот экранный пароль и нажмете «Ctrl-A» и «x», результат будет таким.

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

Вам будет предложено ввести пароль дважды. Первый пароль — это ваш пароль Linux, а второй пароль — это пароль, который вы поместили в файл .screenrc.

20. Выход из сеанса терминала экрана

Есть 2 (два) способа покинуть экран. Сначала мы используем «Ctrl-A» и «d», чтобы отсоединить экран. Во-вторых, мы можем использовать команду выхода, чтобы закрыть экран. Вы также можете использовать «Ctrl-A» и «K», чтобы закрыть экран.

Шпаргалка по экранным командам

screen -S <session_name>

Начните новый сеанс с именем сеанса.

screen -ls

Список запущенных сессий/экранов.

screen -x

Присоединитесь к работающему сеансу.

screen -r <session_name>

Присоединиться к работающему сеансу с именем.

screen -d <session_name>

Отключить запущенный сеанс.

Ctrl-a c

Создать новое окно.

Ctrl-a Ctrl-a

Перейти к последнему посещенному активному окну.

Ctrl-a <number>

Переход к окну по номеру.

Ctrl-a ' <number or title>

Переход к окну по номеру или имени.

Ctrl-a n or Ctrl-a <space>

Переход к следующему окну в списке.

Ctrl-a p or Ctrl-a <backspace>

Перейти к предыдущему окну в списке.

Ctrl-a "

См. список окон.

Ctrl-a w

Показать панель окна.

Ctrl-a k

Убить текущее окно.

Ctrl-a \

Убейте все окна.

Ctrl-a A

Переименовать текущее окно.

Ctrl-a S

Разделение дисплея по горизонтали.

Ctrl-a | or Ctrl-a V

Разделить дисплей по вертикали.

Ctrl-a tab

Переход к следующей области отображения.

Ctrl-a X

Удалить текущий регион.

Ctrl-a Q

Удалить все регионы, кроме текущего.

Ctrl-a H

Включите вход в сеанс экрана.

Ctrl-a x

Блокировка (защита паролем) дисплея.

Это часть ежедневного использования команды screen. Внутри команды screen по-прежнему есть множество функций. Более подробную информацию можно найти на странице руководства по экрану.

Знаете ли вы какой-нибудь другой лучший пример команды screen в Linux? Поделитесь с нами своим мнением в комментариях ниже.