как удалить screen linux
Команда screen Linux
По умолчанию screen не является стандартной утилитой в большинстве дистрибутивов, но работает везде одинаково. Поэтому сначала рассмотрим её инсталляцию, а затем — возможности и основные команды.
Установка утилиты screen
Разница в инсталляции программы на разных дистрибутивах заключается в программах управления пакетами и их командами.
Чтобы установить screen в Ubuntu, Linux Mint, Deepin и других систем семейства Debian, используйте команду apt:
sudo apt install screen
В Manjaro, Antergos и других Arch-подобных ОС screen располагается в AUR, поэтому используйте соответствующую программу управления пакетами, например aurman:
Для инсталляции screen в системах на основе Red Hat (например Fedora и CentOS) используйте утилиту dnf:
dnf install screen
Основы работы команды 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 и 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 (незадействован). Второе состояние у сессий, в которых ещё не происходили никакие процессы.
Это всё основные команды screen Linux.
Как пользоваться screen Linux
Теперь давайте рассмотрим, как пользоваться screen Linux более подробно.
Пример 1. Необходимо отслеживать изменения файла в реальном времени. Для этого в одном окне будем вносить изменения в новый файл, а в другом — отображать файл командой tail с опцией -f:
При стирании содержимого показывается сообщение, что файл усечён, при этом этот текст в него, конечно, не записывается.
Пример 2. Необходимо отслеживать размер каталога в реальном времени. В одном окне записываем данные, в другом — отображаем, как изменяется размер домашнего каталога командой watch с задержкой в две секунды.
Выводы
Команда screen является эффективным инструментом для системного администрирования, особенно при работе с системой без среды рабочего стола. Имея один терминал, вы можете создавать несколько окон для обработки параллельных процессов без конфликтов между ними.
Как пользоваться screen для управления терминалами Linux и отсоединения процессов от терминала
Что такое screen
Screen — это программа для «уплотнения» (мультиплекса) физических консолей. Суть в том, что несколько процессов (как правило интерактивных шеллов) могут работать в одном окне консоли. То есть эта программа позволяет пользователю иметь несколько экземпляров терминалов внутри одного терминала этого менеджера окон. Речь идёт не о вкладках, а о перемещении терминалов в фон. Одним из эффектов работы screen является то, что при закрытии окна терминала, процесс продолжает работу.
Приложение screen очень полезно если вы имеете дело с несколькими программами из интерфейса командной строки, а также для отделения программ от оболочки терминала. Она также позволяет вам делиться вашими сессиями с другими пользователями и отсоединять/подсоединять сессии терминала.
Как установить screen
На некоторых системах пакет screen может быть уже установлен. Если у вас его нет, то установите его.
На Debian, Linux Mint, Ubuntu, Kali Linux и их производных:
На RedHat и производных:
На Arch Linux, BlackArch и их производных:
Чтобы установить screen на Solaris:
На самом деле, screen это очень полезная команда в Linux которая может пригодиться при различных обстоятельствах. Давайте начнём знакомство с функциями screen.
Запуск screen в первый раз
Просто наберите screen в приглашении командной строки:
Будет выведена информация о программе — нажмите ENTER, чтобы её скрыть. Затем приглашение командной строки вернётся в точно такое же, как было и ранее.
Справка по параметрам screen
Когда вы вошли в screen, вы можете делать вашу обычную работу как будто бы вы в обычном окружении командной строки. Программа screen расширяет функциольность за счёт своих команд (параметров).
Нажмите Ctrl-A, а затем ? (то есть Shift+/). Затем вы увидите все команды (параметры) screen.
Чтобы выйти из экрана справки, нажмите Пробел или Enter.
Отсоединение процесса от консоли в screen
Одним из преимуществ screen является возможность отсоединить от консоли процесс, который запущен внутри screen. Далее вы можете даже закрыть консоль (или отключиться от SSH) — процесс всё равно продолжит свою работу. Затем вы можете восстановить окно консоли — вы увидите, что программа всё это время работала и её данные не потеряны.
Пример сценария: вы работаете по SSH на вашем сервере. Вам нужно запустить программу, выполнение которой требует много времени. Это может быть скачивание большого патча для системы с помощью wget или любая длительная команда. В качестве примера я возьму обычный ping. Предположим мне нужно проверить качество связи с помощью ping на протяжении двух часов. Если я отключусь от SSH или связь будет потеряна случайно, то тогда процесс выполнения команды в консоли будет остановлен и нужно будет вновь начинать сначала. Чтобы этого избежать, мы можем использовать screen для отсоединения процесса от консоли.
Рассмотрим на примере конкретных команд.
Вначале входим в screen:
Затем я запускаю пинг:
В процессе работы программы, мы можем нажать Ctrl-a и d. Вывод от программы прекратиться, мы увидим примерно следующую информацию:
Повторное подсоединение консоли с запущенным процессом к screen
После отсоединения процесса и закрытия screens, вы можете отключиться от сервера, то есть закрыть SSH сессию и заняться другими делами. Затем вы можете подключиться к SSH снова — причём, возможно даже с другого компьютера. После этого вы можете увидеть прогресс выполнения вашего процесса (пинг, загрузка, что угодно). Чтобы это сделать, нужно восстановить screen. Для этого запустите следующую команду:
И вы увидите, что процесс, который вы здесь оставили, всё ещё запущен.
Если вы хотите восстановить сессию screen 13786.pts-2.HackWare, тогда наберите следующую команду:
Использование нескольких screen
Когда нужен больше чем один screen для выполнения работы, это возможно? Да, можно одновременно работать с несколькими screen. Вы можете запустить несколько окон screen одновременно — есть два способа сделать это.
Во-первых, вы можете отсоединить первый экран screen для запуска другого screen в реальном терминале.
Во-вторых, вы можете делать вложенные экраны screen.
Переключение между экранами
Когда вы делаете вложенные screen, вы можете переключаться между ними используя команду Ctrl-a и n. В этом случае вы перейдёте к следующему окну screen. Когда вам нужно перейти к предыдущем screen, то просто нажмите Ctrl-a и p.
Для создания нового окна screen нажмите Ctrl-a и c.
Как записать все действий в терминале
Иногда важно сохранить все действия в терминале, которые вы выполнили находясь в консоли, то есть вести журнал (логи) активности в консоли.
Допустим вы администратор Linux, который управляет множеством серверов Linux. С ведением журнала в screen, вам не нужно выписывать каждую команду, которую вы ввели. Для активации функции ведения журнала screen просто нажмите Ctrl-a и H. Пожалуйста, будьте осторожны — используется заглавная H (то есть Shift+h). Использование прописной ‘h’ только создаст скриншот экрана screen в файле с именем hardcopy.
В нижней левой части экрана будет уведомление, которое говорит что-то вроде Creating logfile «screenlog.0» (производится ведение журнала экрана). В своей домашней директории вы найдёте файл screenlog.0.
Эта функция будет добавлять в файл всё, что вы делаете в окне screen. Для закрытия активности по ведению журнала screen, вновь нажмите Ctrl-a и H.
Другой способ активировать функцию ведения журнала: вы можете добавить параметр -L во время запуска screen. Команда будет выглядеть примерно так:
Блокировка screen
Screen также имеет комбинацию клавиш для блокировки окна screen. Вы можете нажать Ctrl-a и x для блокировки screen. Это полезно, если вы хотите быстро заблокировать ваш screen. Пример вывода после блокировки:
Вы можете использовать ваш пароль в Linux чтобы разблокировать его.
Добавление пароля на заблокированный screen
Для дополнительной безопасности, вы можете установить пароль на вашу сессию screen. Пароль будет спрашиваться каждый раз, когда вы хотите подсоединить screen. Этот пароль отличается от пароля в описанным выше механизме блокировки окна Screen.
Чтобы защитить паролем screen, вы можете отредактировать файл «$HOME/.screenrc». Если файл не существует, создайте его. Синтаксис будет примерно таким:
ВАШ_ПАРОЛЬ нужно указать в виде хеша, а не в виде обычного текста. Если там указано none, то пароль не будет спрашиваться. Если не указать пароль, то screen покажет приглашение для ввода пароля и его подтверждения и поместит хеш в буфер обмена.
Чтобы сгенерировать хеш, нужно выполнить следующую последовательность действий:
Как выйти из Screen
Есть два способа покинуть screen. Первый это использовать Ctrl-a и d для отсоединения экрана. Второй — мы можем использовать команду exit для закрытия сессии screen. Вы также можете использовать Ctrl-a и K для остановки screen.
Как запустить скрипт, процесс которого отделён от терминала
С помощью screen также возможно запуск файла скрипта, который изначально будет отделён от терминала, например:
Это запустит отделённый (независящий) от терминала процесс. Можно отделить любую команду или процесс с помощью программы screen.
Как просмотреть предыдущие результаты (вывод)
Если вывод программы очень большой, то у вас могут возникнуть затруднения при скроллинге вверх.
Вы можете нажать Ctrl-a и Esc для входа в Copy mode (режим копирования). Когда вы окажитесь в режиме копирвоания, вы можете использовать для пролистывания экранов кнопки PageUp и PageDown.
Для выхода из Copy Mode, нажмите ещё раз Esc.
Как разделить экран на несколько вкладок в screen
В screen вы можете разделить окно на несколько виртуальных терминалов, которые будут одновременно присутствовать на экране. Для этого нажмите Ctrl-a и S.
Именные окна screen
Вы можете использовать несколько именных окон screen. Для этого запустите сессию screen с опцией -S, после которой укажите желаемое имя, например:
эта команда создаст screen с именем testing.
покажет текущие сессии screen с их именами:
Чтобы подключиться к именной сессии screen используйте опцию -x с именем сессии:
в результате предыдущей команды, вы подключитесь к testing screen.
Альтернатива для screen
Если вы ищите альтернативу для screen, то присмотритесь к tmux.
Это азы использования screen которые вам пригодятся практически при каждом её использовании. У программы ещё множество функций, с которыми вы можете ознакомится в её справке или на странице man.
kill a screen session
I’m trying to kill a screen session. I noticed a lot of other related questions, but none of those answers are working for me. I am trying to kill the following session:
Now I am in the session. According to the documentation:
I am supposed to press «control a» and then «control \». I do that and nothing happens.
10 Answers 10
This command will kill all screen sessions, if that is desired:
So with all those official suggestions, I have one here that i feel is easier, and just as effective, and kind of more straight forward:
Who wants to go into an unknown and un-needed screen just to press in a couple commands that most might barely remember? This avoids going into it at all, and kills it straight off.
Plus, if you have more than one, this will take them all in one fell swoop.
This will kill all the detached screens:
This will kill all screens, attached or detached
Like you, I wanted to kill my screen session and found the documentation unhelpful. Convinced that there must be a keyboard shortcut, I found that
ctrl + a then \
works
I then get the prompt: «Really quit and kill all your windows [y\n]»
(This is similar to Brian Thomas’s answer, but his will kill all running screen sessions, which may not be what you want if you have multiple screens open but only one misbehaving.)
we can also use the exit command to terminating screen
Press ctrl+d to kill screen window. Repeat this until you kill all screen windows. Once you ran out all windows screen will kill the session and terminating. Shortest solution if you not having many windows
You can just simply type exit while in a recording mode, I found out it to be most convenient as it directly exits the running screen.
Not the answer you’re looking for? Browse other questions tagged gnu-screen or ask your own question.
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.11.12.40742
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Как удалить screen linux
Screen — это полноэкранная программа, работающая в текстовом режиме, которая позволяет в одной консоли (или ssh-сессии) иметь несколько виртуальных экранов с независимо выполняющимися в них программами. Т.е. программа screen позволяет открыть несколько терминальных сеансов в одном окне терминала. Программа screen может быть очень полезной в том случае, если, например, вы работаете с несколькими программам в интерфейсе командной строки и вам необходимо чтобы они выполнялись одновременно, в независимых сессиях и требуется возможность переключения между ними. Также, программа screen дает возможность передать одну сессию другому пользователю.
Во многих дистрибутивах команда screen установлена по-умолчанию, однако, если в вашей системе это не так, вы можете установить её вручную достаточно просто (т.к. она есть в стандартных репозиториях большинства дистрибутивов).
Для rpm-based дистрибутивов (RedHat, CentOS, Fedora, итп) выполните:
Для deb-based дистрибутивов (Debian, Ubuntu, итп) выполните:
# apt-get install screen (On Debian based Systems)
Запуск screen в первый раз
Для запуска команды screen просто выполните:
Вывод информации о клавиатурных сокращениях
После запуска команды screen вы можете работать совершенно обычным образом в интерфейсе командной строки. Но, поскольку команда screen сама является программой, у неё есть свои команды и параметры.
Нажмите «Ctrl+A» и, затем, «?» (без кавычек). На экран будут выведены клавиатурные сокращения:
Для выхода нажмите «пробел» или «Enter»
Отключение экрана screen
Важнейшим преимуществом команды screen является функция отсоединения экрана с последующей возможностью подключения (при этом выполнение программ не прерывается).
Например, это может понадобится в том случае, если вы работаете по ssh на удаленной машине, и вам необходимо скачать объемный файл с помощью команды wget, на что потребуется, например, 2 часа. В том случае, если вы закроете ssh-сессию по собственному желанию или случайно по причине разрыва соединения процесс загрузки также прервется. Соответственно, вам придется вручную запускать загрузку заново. Избежать такой проблемы как раз поможет команда screen.
В первую очередь, запустите команду screen:
Затем запустите команду, которая занимает длительное время. Например, это может быть обновление системы или, как сказано выше, процесс загрузки большого файла:
Во время процесса загрузки нажмите комбинацию клавиш «Ctrl+A» и затем «d» (также можно «Ctrl+D»). При нажатии этих клавиш на экран ничего выведено не будет, только после того, как будет выполнено отключение экрана вы увидите подобное:
[detached from 7724.pts-0.howtoitru]
[istupak@howtoitru
Подключение отключенного экрана screen.
После того, как вы отключили экран screen вы закрыть сессию ssh. Подключившись позднее, например, удаленно из другого места вы можете подключить экран опять и проверить, была ли завершена загрузка. Для этого выполните команду:
Вы увидите, что процесс, который вы запустили все еще работает.
В том случае, если вы запустили и оставили отключенными более чем одну сессию screen вам будет необходимо указать ID этой сессии. Для того, чтобы посмотреть, сколько сессий было запущено выполните:
Вывод будет примерно таким:
There are screens on:
7938.pts-0.howtoitru (Detached)
7724.pts-0.howtoitru (Detached)
2 Sockets in /var/run/screen/S-howtoitru
Если вы хотите восстановить сессию 7724.pts-0.howtoitru выполните:
Использование нескольких сессий screen
Как уже стало понятно, вы можете работать с несколькими сессиями screen для выполнения множества задач одновременно. Переключение между экранами можно выполнить двумя способами:
Для второго способа необходимо запустить команду screen и нажать «Ctrl-A» и «c» для создания следующего вложенного экрана. Переключение между экранами производится командами «Ctrl-A» и «n»(следующий экран) и «Ctrl-A» и «p»(предыдущий экран).
Запись (логирование) выполняемых команд.
Иногда желательно производить запись того, что выполняется в консоли, например, если вы системный администратор, управляющий множеством различных серверов.
Для запуска функции логирования нажмите «Ctrl-A» и «H» (обратите внимание на регистр символа «H», т.к. если вы выполните команду «h» будет создан скриншот экрана вместо записи действий). Все ваши действия и выводы на экран будут записаны в файл screenlog.0 в вашей домашней директории.
Для прекращения записи опять выполните «Ctrl-A» и «H».
Блокировка экрана
Существует возможность блокировки экрана с помощью сочетания клавиш «Ctrl-A» и «x». При блокировке на экран будет выведено:
Screen used by howtoitru onhowtoitru.
Password:
Завершение сессии screen
Для завершения сессии (полного, а не отключения, выполняемого командой «Ctrl+A» и «d») выполните обычную команду выхода:
Также можно использовать сочетание клавиш «Ctrl+A» и «k» для завершения сесии.