- Команда screen Linux
- Установка утилиты screen
- Основы работы команды screen
- Возможности программы
- Основные команды screen
- Как пользоваться screen Linux
- Выводы
- How to Use GNU Screen to Manage Terminal Sessions in Linux
- GNU Screen Command Installation
- Starting Screen in Linux
- Create Screen Session with name
- Listing screen parameters
- List Screen Sessions
- Detach Linux Screen Session
- Reattach Linux Screen session
- Split Linux Screen Windows
- Create new terminal in splitted session
- Unsplit screen windows
- Lock screen sessions
- Find owners of screen sessions
- Terminate the screen sessions
- Conclusion
Команда screen Linux
Эффективность администрирования систем GNU/Linux напрямую зависит от используемых утилит. Возможность выполнять максимум задач в минимальный срок — приоритетная цель этого процесса. Команда screen Linux является одним из основных инструментов системного администратора.
По умолчанию screen не является стандартной утилитой в большинстве дистрибутивов, но работает везде одинаково. Поэтому сначала рассмотрим её инсталляцию, а затем — возможности и основные команды.
Установка утилиты screen
Разница в инсталляции программы на разных дистрибутивах заключается в программах управления пакетами и их командами.
Чтобы установить screen в Ubuntu, Linux Mint, Deepin и других систем семейства Debian, используйте команду apt:
В Manjaro, Antergos и других Arch-подобных ОС screen располагается в AUR, поэтому используйте соответствующую программу управления пакетами, например aurman:
Для инсталляции screen в системах на основе Red Hat (например Fedora и CentOS) используйте утилиту dnf:
Основы работы команды screen
Принцип работы GNU/Linux в целом заключается в использовании небольших утилит, которые делают что-то одно, но хорошо. И эта программа — не исключение.
Команда screen Linux является консольной программой и имеет однозначное определение, соответствующее названию, — это оконный менеджер, разделяющий один физический терминал между несколькими процессами. Подходит для прямого либо удалённого администрирования.
Возможности программы
Screen позволяет переключаться между терминалами, в которых выполняются процессы, не прерывая их. Это особенно эффективно, когда необходимо производить сборку/установку ПО и мониторить дисковое пространство или использовать аппаратные ресурсы.
Screen может разделять текущий терминал на меньшее количество окон с возможностью запуска в них того же или других терминалов. Это ещё больше упрощает вышеописанную задачу, особенно при использовании больших мониторов.
Также к одной сессии screen может подключаться несколько пользователей. Это эффективно при обучении персонала.
Основные команды screen
Откройте терминал. Для запуска первого окна наберите:—
Создастся новая сессия программы и появится приветственное сообщение. Для его закрытия нужно нажать Space или Enter.
Все управляющие команды начинаются с комбинации клавиш Ctrl + a, затем следует буква или сочетание клавиш. Буквы разных регистров выполняют разные команды. Также сочетания можно заменять текстом. Для его ввода нажмите Ctrl + a и :, после чего вводите текст.
Например, чтобы создать новое окно, нажмите по очереди сочетание Ctrl + a и затем c. Для просмотра списка созданных окон нажмите Ctrl + a и w.
Для перехода в любое из созданных окон сессии используется комбинация Ctrl + a и номер, который за ним закреплён, или Ctrl + a и «, после чего нужно выбрать стрелками необходимое. Для последовательного перехода используйте Ctrl + a и n (следующее окно) или p (предыдущее окно).
Чтобы разделить экран по горизонтали, нажмите Ctrl + a и S. Например, для разделения окна по горизонтали напишите split.
Будет создано новое окно снизу от текущего, и оно не становится активным. Чтобы разделить по вертикали, нажмите Ctrl + a и | (или введите split -v).
Были созданы новые пустые окна. Для переключения между ними используйте Ctrl + a и Tab (или напишите focus). Положение курсора указывает, какое окно является активным в данный момент. Для скрытия окна используйте Ctrl + a и X (или введите remove).
Чтобы запустить в новом окне терминал, нажмите Ctr + a и c (или наберите screen).
Чтобы скрыть все окна и оставить только текущее, используйте Ctrl + a и Q (или напишите only).
Переименовать окно можно с помощью Ctrl + a и A. Внизу появится строка с возможностью заменить старое название.
Чтобы скрыть все окна сессии, нажмите Ctrl + a и \. Подтвердите решение нажатием y. Для выхода из менеджера окон нажмите Ctrl + a и d.
Команда screen обладает большим набором горячих клавиш. Полный их список можно посмотреть с помощью Ctrl + a и ?.
При создании новой сессии screen можно задать ей имя. Таким образом можно создать несколько сессий. Чтобы сделать это, используйте параметр -S, после которого укажите название.
Посмотреть список запущенных сессий можно командой
Строка, идентифицирующая сессию, состоит из нескольких полей: id, название и статус.
Значение id отображается в списке всех запущенных процессов. Это означает, что его можно завершить с помощью команды kill. Завершить работу текущего окна можно с помощью комбинации Ctrl+a и k; подтвердите решение нажатием y.
Статус может иметь два состояния: Attached (задействован) и Detached (незадействован). Второе состояние у сессий, в которых ещё не происходили никакие процессы.
Чтобы перейти в нужную сессию, следует указать параметру -r её id или название.
Это всё основные команды screen Linux.
Как пользоваться screen Linux
Теперь давайте рассмотрим, как пользоваться screen Linux более подробно.
Пример 1. Необходимо отслеживать изменения файла в реальном времени. Для этого в одном окне будем вносить изменения в новый файл, а в другом — отображать файл командой tail с опцией -f:
При стирании содержимого показывается сообщение, что файл усечён, при этом этот текст в него, конечно, не записывается.
Пример 2. Необходимо отслеживать размер каталога в реальном времени. В одном окне записываем данные, в другом — отображаем, как изменяется размер домашнего каталога командой watch с задержкой в две секунды.
Выводы
Команда screen является эффективным инструментом для системного администрирования, особенно при работе с системой без среды рабочего стола. Имея один терминал, вы можете создавать несколько окон для обработки параллельных процессов без конфликтов между ними.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
How to Use GNU Screen to Manage Terminal Sessions in Linux
GNU Screen is a terminal multiplexer which allows to have multiple terminal sessions inside the main terminal.
So why we need GNU Screen? – Sometimes we may face some issues like automatically terminating the remote ssh connections due to network issues. It may be painful if the task is running on production environment. So, to handle this kind of issues, separate screen session is recommended which does not terminate with the end of terminal sessions.
In the Linux and Unix systems, we have terminal multiplexer tool called screen which is used to manage terminal sessions. In this article we will cover how to use GNU screen in Linux to manage terminal sessions while working on important task in production systems.
GNU Screen Command Installation
Installation of the screen package in the Linux system is simple and easy. Some of the modern operating systems come with screen applications pre-installed. Run the following command to verify the availability of screen.
Screen version 4.08.00 (GNU) 05-Feb-20
If you get other output, you do not have a screen tool available on your system. Run the following command to install the screen package.
$ sudo apt-get install screen -y
$ sudo yum installs screen -y // RHEL 7 $ sudo dnf install screen -y // RHEL 8
Starting Screen in Linux
One the installation is completed, simply run the command screen to start screen sessions.
Create Screen Session with name
Using screen command followed by option -S , you can create a named screen session . In this example, I have used screen-linuxtechi as the name of the screen session. You can choose your preferable name.
$ screen -S screen-linuxtechi
Listing screen parameters
Screen provides some useful parameters and commands. To list the available parameters, press ctrl-a followed by ? .
Note: screen uses the key ctrl+a as a prefix. For example, to list the screen parameters you need to press ctrl and a together ,release the key and press the key ? . In the same way you can use other parameters.
List Screen Sessions
Use the following command to list the available screen sessions.
Detach Linux Screen Session
One of the useful features provided by screen application is you can detach the screen session and reattach when needed. To detach the current screen session, press ctrl-a followed by d .
Reattach Linux Screen session
The detached screen session can be attached again using screen command with option -r followed by screen session name. List out the detached screen session using command screen -ls , find the screen session name and attach. In this example I have attached the session 25148.pts-0.LinuxTechi
$ screen -ls $ screen -r 25148.pts-0.LinuxTechi
Screen sessions can be reattached using only screen id or screen name. In the above example, 25148 is the ID and pts-0.LinuxTechi is the name of the screen 25148.pts-0.LinuxTechi.
$ screen -r 25148 $ screen -r pts-0.LinuxTechi
Split Linux Screen Windows
Sometimes you may need to split the screen windows into multiple screens to perform several tasks. Splitting can be done horizontally as well as vertically.
To split Linux screen windows vertically click ctrl-a followed by | . By repeating the same process, you can split n numbers of screen windows.
Horizontal splitting of the screen windows can be done by clicking ctrl-a followed by S (Upper case). Repeat the same process to create n number of vertical windows.
Create new terminal in splitted session
Whether you split the screen horizontally or vertically, it will not create any new terminal. To create the new terminal in the screen, you need to switch to new split screen windows using ctrl-a followed by Tab . Now press ctrl-a and c (lowercase) to create a terminal.
Unsplit screen windows
To unsplit the splitted screen windows, you can simply apply ctrl-a with key Q
Lock screen sessions
To protect from unauthorized access, screen sessions can be locked without locking normal session users. To lock the screen terminal, use the command ctrl-a followed by key x (Lowercase) . You will be prompted to set up the password, apply your protection password and that’s all.
Find owners of screen sessions
Screen stores opened screen sessions information at the directory /var/run/screen. List out the contents stored inside the directory to find the owner of the screen.
Terminate the screen sessions
One the task is completed, you can destroy the screen sessions using the command ctrl-a followed by k . You will be prompted for user confirmation, type y to terminate the session.
Accessing the screen help page
Run the following command to access screen help page
Run the following command to access the screen user manual page.
Some useful screen command’s parameters
- Ctrl-a +c => Create a new screen window with terminal
- Ctrl-a + ? => List screen parameters
- Ctrl-a + A => Rename the current screen window
- Ctrl-a + tab => Switch to the next window
- Ctrl-a + S => Split the window horizontally
- Ctrl-a + | => Split the window vertically
- Ctrl-a + d => Detach the screen
- Ctrl | d => Terminate the screen
Conclusion
In this article we have learned different gnu screen commands to manage Linux terminal sessions. If you have any suggestions and feedback, please leave a comment below.