Как возобновить процесс в linux
Перейти к содержимому

Как возобновить процесс в linux

  • автор:

Ctrl + C, Ctrl + D, Ctrl + Z

Комбинации клавиш Ctrl + C, Ctrl + D и Ctrl + Z часто используются в терминале для выхода из программы, работающей на переднем плане (foreground), и передачи управления Bash.

Ctrl + C выполняет прерывание процесса. По-сути убивает его. Результат действия Ctrl + D такой же. Однако разница между этими двумя способами выхода есть, и заключается она во внутреннем механизме.

Нажатие Ctrl + C заставляет терминал послать сигнал SIGINT процессу, который на данный момент его контролирует. Когда foreground-программа получает сигнал SIGINT , она обязана прервать свою работу.

Нажатие Ctrl + D говорит терминалу, что надо зарегистрировать так называемый EOF (end of file – конец файла), то есть поток ввода окончен. Bash интерпретирует это как желание выйти из программы.

При работе в конкретной программе могут срабатывать оба способа, но может только один. Так команда cat без параметров запускается в интерактивном режиме, в котором то, что вы ввели, будет тут же выводиться на экран после нажатия Enter . Выйти из программы можно как с помощью Ctrl + С , так и Ctrl + D .

Прерывание команды cat

Выйти из интерпретатора Питона с помощью Ctrl + C нельзя.

Выход из интерпретатора Python в терминале

Комбинация клавиш Ctrl + Z посылает процессу сигнал, который приказывает ему остановиться. Это значит, что процесс остается в системе, но как бы замораживается. Само собой разумеется он уходит в бэкграунд (background) – в фоновый режим. С помощью команды bg его можно снова запустить, оставив при этом в фоновом режиме. Команда fg не только возобновляет ранее приостановленный процесс, но и выводит его из фона на передний план.

Остановка процесса и возврат его в foreground

На скриншоте сначала запускается интерпретатор Питона. Далее его работа останавливается с помощью Ctrl + Z . Командой fg python3 мы возобновляем работу приложения и делаем его текущим. То, что мы вернулись в тот же самый процесс, видно по переменной a , значение которой остается доступным.

С помощью команды ps можно посмотреть процессы текущего сеанса Bash (используя ключи можно просматривать и другие процессы). А команда kill позволяет удалять ненужные.

Удаление процесса с помощью команды kill

Здесь запускается cat и приостанавливается. Далее смотрим список процессов. Ключ -9 команды kill обозначает, что мы хотим полностью избавиться от процесса. В качестве аргумента передается идентификационный номер процесса (PID).

Отметим, что во многих консольных программах управляющие комбинации с клавишей Ctrl обычно обозначаются как ^C , ^Z и т. п. То есть вместо Ctrl используется знак ^ .

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

При необходимости системный администратор может запускать процессы, требующие длительного выполнения, в бэкграунде, а на «переднем плане» выполнять другие команды. Запустить процесс в фоне можно с помощью знака амперсанда & , который записывается в конце команды.

Использование амперсанда для запуска программы в фоновом режиме

Если в текущем терминале было запущено и переведено в фон несколько одноименных процессов, то сделать один из них текущим с помощью команды fg имя_программы не получится. PID также не используется как аргумент для fg . Здесь используется идентификатор процесса, который возвращает команда jobs . Причем для fg его надо использовать в формате %ID .

Выполните команды sleep 10m и sleep 10s , каждую остановите с помощью Ctrl + Z . Посмотрите идентификаторы процессов с помощью jobs . Выведите из бэкграунда десятисекундный слип. Учитывалось ли время, когда процесс был остановлен? После этого сделайте текущим десятиминутный слип и прервите его.

Курс с ответами к заданиям и дополнительными уроками в PDF

X Скрыть Наверх

Введение в Linux и Bash. Курс

Команды kill и killall в Linux

Инструкция о том, как команд правильно использовать команды kill и killall.

Эта инструкция — часть курса «Linux: горячие клавиши и команды».

Смотреть весь курс

Введение

Мы привыкли, что Linux — семейство Unix-подобных операционных систем на базе одного ядра — отличается устойчивостью и стабильностью. Но даже в таких ОС в повседневной жизни можно столкнуться с ситуацией, когда программы начинают зависать, нестабильно отвечать или просто перестают работать. Например, они настолько медленно реагируют, что их нельзя закрыть обычным способом. Также не отвечающие приложения нельзя перезапустить, потому что исходный процесс приложения не завершается окончательно.

Первым решением, к которому обычно прибегают,— перезагрузка системы. Но еще в таких случаях можно «убить» запущенную программу при помощи команд kill и killall. Дальше мы подробно рассмотрим, как их правильно использовать.

Процессом мы называем любую выполняющуюся программу. Иначе еще его можно назвать функционирующим экземпляром программы. Если вы запустили два окна с одним и тем же приложением — это будет два процесса, а не один.

PID процесса

В Linux у процесса есть уникальный идентификатор Process ID или сокращенно PID. При создании каждого процесса ему автоматически присваивается PID.

Отношения между процессами в системе

Родителем называется процесс, который отвечает за создание дочернего процесса. Если родительский процесс завершится раньше, чем дочерний, то тогда «потомок» привяжется к init, который был создан первый при загрузке (но также есть опция переназначить дочерний процесс другому).

Если же дочерний процесс прекратит свою работу раньше, он останется без родителя до тех пор, пока «предок» не получит информацию про него или не сообщит ядру, что такая информация не требуется. Тогда ресурсы, используемые дочерним процессом, освобождаются.

Возможные значения PID

В зависимости от значения PID, который мы в дальнейшем будем передавать kill, сигнал будет отправляться разной группе процессов. Разберем, как именно значение PID влияет на отправку сигнала:

  • PID > 0. Сигнал будет послан процессу, чей идентификатор соответствует введенному значению.
  • PID = 0. Все процессы, входящие в текущую группу, получают этот сигнал.
  • PID = −1. В этом случае сигнал будет послан всем пользовательским процессам (если команду вызывает root, то сигнал идет всем процессам кроме init и самого kill). Для этого существует специальный идентификатор пользователя (UID).
  • PID < −1. Сигнал отправляется процессам, включенным в группу с GID (идентификатор группы), соответствующим абсолютному значению PID.

Как убить зависший процесс

Чтобы завершить конкретный процесс, мы должны понять, какой у него номер. Для этого обратимся к вспомогательным командам. Если мы хотим посмотреть работающие процессы, можно запустить удобный интерфейс командой top. Сначала она отобразит всю статистику по системе (нагрузку и общее количество задач), а после покажет все процессы, отсортированные в реальном времени по их нагрузке на процессор. Но такой способ неудобен для поиска конкретного PID.

  • ps — команда, выводящая перечень действующих процессов с дополнительными сведениями о них.
  • grep выполняется вместе с ps и ищет по списку, полученному от ps.

Чтобы извлечь все процессы, нужно написать в терминале:

ps axu

Зачастую этот список достаточно длинный и найти PID заданного процесса затруднительно. Тогда стоит обратиться к команде grep. Для поиска процесса, имеющего конкретное имя, нужно выполнить:

ps axu | grep bash

Команда осуществит поиск по результату, выданному командой ps, и на экране мы увидим только строки, содержащие bash.

Если такого процесса не найдется, то в качестве ответа мы получим сам grep: это происходит из-за того, что параметром указано слово bash и grep находит сам себя.

Если же такой процесс существует, то мы увидим подобный вывод:

root 447 0.0 0.4 7932 4708 tty1 S 11:26 0:00 -bash root 477 0.0 0.0 6268 640 tty1 S+ 11:27 0:00 grep bash

Нам здесь важна первая строчка. Число после имени пользователя и будет являться уникальным идентификатором.

Для нахождения PID еще можно попробовать команду pgrep — утилиту, которая просматривает активные процессы и выдает PID тех, чьи атрибуты удовлетворяют запросу:

pgrep firefox

Еще один вспомогательный способ определения PID: pidof — команда, принимающая на вход название:

pidof gcalctool

Если исполняемая программа задействует не один процесс, то команда в результате выведет все идентификаторы.

Команда kill

Теперь, зная PID, процесс можно принудительно остановить. Применим команду kill, передав вместе с ней номер:

kill 279

kill шлет сигнал: не указывая аргументом, какой именно сигнал мы хотим отправить, по умолчанию идет SIGTERM. Сигнал сообщает потребность в завершении процесса. Кроме того, процессу предоставляется возможность потенциально остановиться без ошибок, освободив ресурсы. Сложность заключается в том, что сигнал может быть проигнорирован. У всех сигналов есть номер, у SIGTERM, например, 15. Чтобы узнать список всех возможных сигналов и их номеров, нужно ввести следующее:

kill -l

Но все-таки SIGTERM не гарантирует остановку процесса в случае блокировки сигнала или его перехвате. Чтобы наверняка прервать работу процесса без угрозы игнорирования, нужно послать SIGKILL (номер 9) — он немедленно прерывает процесс:

kill −9 279

После выполнения несохраненный прогресс будет утерян. Тут обратим внимание, что команда kill может быть внутренней (часть встроенной функции оболочки) или внешней (находящейся по адресу /bin/kill). Независимо от этого синтаксис остается одинаковым. Чтобы найти все упоминания kill в системе, выполните следующее:

type -a kill

Примечание: с помощью kill можно убивать сразу несколько процессов. Для этого указываем их PID подряд через пробел:

kill −9 267 315 442

Либо если вы не хотите указывать каждый PID по отдельности вручную, можно сделать так:

kill −9 $(pidof gcalctool)

Утилита pkill

pkill — оболочка для kill. Она позволяет применять регулярные выражений или другие критерии для нахождения процессов. У нее такой же синтаксис, как и у команды kill, но в качестве PID можно передать имя процесса (или часть его имени). Утилита работает следующим образом: она просматривает директорию proc и находит идентификатор первого процесса с подходящим именем. После этого отправляет этому процессу SIGTERM.

pkill ping

Аналогично мы можем задать тип сигнала:

pkill -TERM ping

Еще раз нужно отметить, что эта утилита убивает только первый найденный процесс. Поэтому если у вас открыто несколько вкладок в браузере, то pkill закроет только одну из них.
Также у команды pkill есть и другая опция: если ввести флаг -u, то после мы можем написать имя пользователя (или его ID).

pkill -u user

Так мы остановим первый процесс, заданный этим пользователем.

Команда killall

killall — команда, которая прерывает процессы с одним и тем же названием. Если у вас будет запущено несколько окон с одинаковыми приложениями (а мы уже знаем, что это будут разные процессы), killall уничтожит все. Еще одно отличие заключается в том, что здесь нет необходимости знать PID (команда ищет все подходящие в папке /proc). Если мы аналогично одному из примеров, хотим закрыть окна калькулятора, нужно написать:

killall gcalctool

Без аргументов killall также отправляет сигнал SIGTERM. Для отправки другого сигнала нужно явно это прописать:

killall -s 1 gcalctool

Не всегда удается помнить правила использований всех команд. Чтобы получить справку по их применению, можно применить команду man — она выдаст информацию про любую команду:

man killall

Как проверить, что процесс убит

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

ps aux | grep
pidof 
pgrep 

При успешном окончании эти команды ничего не выведут.

Подробности о завершении процессов

Права пользователя root

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

Чтобы прервать любой процесс (неважно, был ли он запущен пользователем root или любым другим пользователем), kill и killall должны быть выполнены от суперпользователя. Например, в Ubuntu это делается добавлением слова sudo:

sudo kill 279

Также только у root есть права на отмену процесса системного уровня.

Использование виртуальной консоли

Допустим, вам необходимо остановить зависнувший процесс, но у вас не получается открыть терминал. Тогда стоит зайти в виртуальную консоль, нажав клавиши Ctrl + Alt + F1, авторизоваться (ввести логин и пароль) и исполнить скрипт из нее. Чтобы перейти обратно, нужно применить Ctrl + Alt + F7.

Отправка сигналов в Linux

Теперь подробнее разберем, что такое сигналы и как они работают. В Linux взаимодействие с процессами осуществляется через программные прерывания — сигналы. Система или сам пользователь передают их, вводя команды. После того как процесс получил сигнал об окончании, ему желательно осуществить некоторые подготовительные шаги.

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

  • SIGINT (2) — самый безопасный сигнал для отмены процесса. После этого процесс правильно завершается, и управление возвращается. Также его можно отправить с помощью клавиш Ctrl + C.
  • SIGQUIT (3) — этот сигнал также сообщает программе об окончании. Программа либо выполняет корректное завершение, либо игнорирует сигнал. В отличие от SIGINT, этот сигнал генерирует содержимое рабочей памяти одного процесса. Можно послать с помощью клавиатуры, используя сочетание Ctrl + /.
  • SIGHUP (1) перезагружает процесс, а также используется для перезагрузки файлов конфигурации и открытия или закрытия файлов журнала. Чаще посылается системой при потере соединения с интернетом и сообщает процессу об отсутствии связи с управляющим терминалом.

Чтобы процесс завершился верно, порты и сокеты освобождаются и закрываются, а также удаляются временные файлы. Поэтому не стоит использовать сразу радикальные меры — передавать SIGKILL. Сначала пытаемся завершить процесс в следующем рекомендуемом порядке:

  1. SIGINT (Ctrl + C).
  2. SIGTERM — аккуратно останавливает процесс.
  3. SIGKILL — последнее средство для завершения.

До этого мы уже привели несколько примеров, как можно задать тип сигнала. Подведем итоги:

  1. Номер (-1 или -s 1).
  2. Полное название (-SIGHUP или -s SIGHUP).
  3. Сокращенное название, без префикса «SIG» (-HUP или -s HUP).

Настройка процессов

Перезагрузка процессов с помощью kill

Мы уже знаем, что команда kill и сигнал SIGHUP объявляют, что требуется обновить настройки. Чтобы подробнее разобрать, как это происходит, рассмотрим Nginx. Чтобы перезапустить сервер, нужно послать сигнал главному процессу. Идентификатор ведущего процесса находится в файле nginx.pid, который обычно расположен в каталоге /var/run.

Теперь воспользуемся командой cat, которая последовательно считывает содержимое файла и записывает его в стандартный поток вывода:

cat /var/run/nginx.pid

После этого мы увидим искомый PID. Теперь осталось обновить настройки, написав:

sudo kill −1 740

Эту команду можно запустить от root или с привилегиями sudo.

Управление приоритетами процессов

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

Для контроля приоритетов у Linux есть понятие вежливости. Самые приоритетные задачи считаются менее вежливыми, потому что они не делятся ресурсами. Тогда процессы с низким приоритетом считаются более вежливыми, потому им требуется минимум ресурсов.

В выводе команды top есть столбец NI, целью которого является отобразить значение вежливости. Вежливость может варьироваться от −20 (наибольший приоритет) до 20 (соответственно, наименьший).

Если по каким-то причинам мы хотим посмотреть на программу с определенным значением вежливости, то мы воспользуемся nice:

nice -n 10

А для того чтобы изменить значение вежливости у уже выполняемой программы, воспользуемся инструментом renice, которому передаем PID:

renice 11

Заключение

Команды kill и killall — мощные инструменты в Linux. Они позволяют прекратить выполнение запущенных процессов. Они представляют собой неотъемлемую частью администрирования Linux и применяются в различных сценариях, таких как прекращение работы процессов, вызов перезапуска служб и многих других.

Несмотря на их эффективность, необходимо быть осторожным при написании команд kill и killall, так как неправильное обращение может привести к удалению данных и неожиданным последствиям. Рекомендуем ознакомиться с руководством по применению этих команд, чтобы убедиться, что они используются правильно и безопасно.

Перенаправление ввода/вывода в Linux

Команда ifconfig в Linux: установка, синтаксис и примеры использования

Зарегистрируйтесь в панели управления

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

Горячие клавиши в терминале Linux

Давным-давно, такие слова как «hot keys» и «keyboard shortcuts» мне не всегда удавалось перевести на русский без потери лица. Как-то раз, я написал «клавиатурные сокращения», чем сразу же привлёк косые взгляды и вызвал смелые медицинские фантазии. Но вроде бы сейчас принято везде говорить и писать «горячие клавиши». О них и поговорим.

Данная заметка — шпаргалка по линуксовой оболочке Bash и смежным компонентам. Часть приводимых ниже команд относится к библиотеке Readline, часть — к сигналам Linux, однако такие подробности нам здесь не важны. Если вам приходится часто иметь дело с терминалом в Linux (и вы не меняли Bash на другой шелл), то будет очень полезно использовать эти самые «сокращения» на благо себе и в мирных целях. Текст написан для начинающих пользователей, но кто знает — может быть и вы найдёте в нём что-то новое и полезное для себя.

Для удобства будем считать, что по умолчанию под терминалом мы понимаем стандартную в настольной редакции Ubuntu программу «Терминал Gnome».

Вкладки

В программе “Терминал Gnome” предусмотрены вкладки, и работают они аналогично вкладкам в веб-браузере или файловом менеджере. Иными словами, если вам нужно несколько терминалов, вовсе не обязательно открывать несколько окон. Достаточно одного окна с несколькими вкладками. Ниже приведены горячие клавиши, относящиеся ко вкладкам:

Ctrl+Shift+T — открыть новую вкладку;

Ctrl+Shift+W или Ctrl+D — закрыть текущую вкладку (или весь терминал, если вкладка одна);

Ctrl+Shift+N — открыть новое окно терминала из текущего.

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

Ctrl+PgDn — перейти на следующую (справа) вкладку;

Ctrl+PgDn — перейти на предыдущую (слева) вкладку;

Ctrl+Shift+PgDn — сдвинуть вкладку вправо;

Ctrl+Shift+PgUp — сдвинуть вкладку влево.

Alt+1 — перейти на первую по счёту вкладку. Подставьте другую цифру для нужной вам вкладки. Данный способ позволяет «дотянуться» максимум до десятой по счёту вкладки.

Навигация

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

Ctrl+Shift+С — копирование в буфер обмена;

Ctrl+Shift+V — вставка из буфера обмена;

Ctrl+C — прерывание выполняющейся команды или очистка текущей строки.

Для того чтобы выделить нужный текст в терминале, вам потребуется воспользоваться мышью. Тем не менее, в программе “Терминал Gnome” имеется встроенное средство поиска текста, которое позволяет искать как по обычному фрагменту, так и по регулярному выражению:

Ctrl+Shift+F — вызов встроенного поиска по любому тексту в терминале.

Если команда в терминале слишком длинная, или вы сделали опечатку в начале и не сразу это заметили, вы можете вернуться в начало строки. А затем — снова в конец. Вот как это сделать:

Ctrl+A — переместиться в начало строки;

Ctrl+E — переместиться в конец строки.

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

Ctrl+F — переместиться на 1 символ вперед;

Ctrl+B — переместиться на 1 символ назад;

Alt+F — переместиться к следующему слову;

Alt+B — переместиться в начало предыдущего слова.

Управление командами и процессами

Предыдущие команды касались навигации по терминалу и строке ввода команды. Далее стоит рассмотреть управляющие команды Bash, с помощью которых можно запускать, останавливать, ставить на паузу и возобновлять команды и процессы. Вы уже знаете, что запущенный в терминале процесс можно прервать по Ctrl+C, но полезно также знать и некоторые нюансы.

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

Ctrl+Z — приостановка процесса;

команда bg — возобновление процесса с возвратом командной строки (процесс продолжает выполнение в фоне);

команда fg — возобновление процесса, при котором он удерживает командную строку за собой (процесс выполняется на «переднем плане»).

Процессы также можно приостанавливать и возобновлять. Запустите какую-либо команду, например htop , и нажмите Ctrl+Z. Сначала будет казаться, будто команда завершилась, но она будет числиться в списке запущенных процессов ( ps -a ) и появится вновь после ввода команды fg.

Если повторить эксперимент с графическим приложением, например, введя команду firefox , то можно будет использовать для его «оживления» как fg , так и bg . При любом варианте приложение останется «закреплённым» за текущим терминалом: если вы закроете его, то оно тоже завершится.

После приостановки процесса firefox в терминале рабочая среда Gnome будет считать, что приложение «не отвечает».

Существует и другой тип «приостановки»: временное прекращение вывода выполняющейся команды. Как консольное, так и графическое приложение может быть запущено в терминале, в который будет выводиться текущая диагностическая информация. Иногда бывает очень удобно временно прекратить постоянный вывод сообщений без завершения самого приложения. Для этого пригодятся следующие сочетания клавиш:

Ctrl+S — прекратить обновление вывода команды;

Ctrl+Q — возобновить вывод команды.

История команд

Bash умеет запоминать все введённые вами команды. Пока терминал запущен, они хранятся в оперативной памяти компьютера, а при выходе из терминала записываются в долговременное хранилище в файле ~/.bash_history .

Если вы точно знаете, что вводили нужную вам команду раньше, поищите её в истории:

history — вывод истории команд;

Если вы помните хотя бы часть команды, поиск можно уточнить:

history | grep — пример уточняющего поиска по истории командам.

У каждой команды в истории есть номер. Введите этот номер, поставив вначале восклицательный знак, и Bash выполнит соответствующую команду:

!151 — выполнить команду под номером 151 из истории;

!151: — показать команду номер 151, но не выполнять её;

!! — повторно выполнить последнюю введенную команду.

В Bash имеется интерактивный режим поиска по истории команд. Нажмите Ctrl+R и начните набирать часть команды. Bash сам предложит вам первый совпадающий вариант. Если он не подходит, нажимайте Ctrl+R дальше для перебора вариантов. Когда нужный вариант будет найден, нажмите Enter.

Интересно, что у этой клавиши ввода есть два аналога — вместо Enter можно нажать Ctrl+M или Ctrl+J.

Самый простой способ перемещаться по истории команд — стрелки «вверх» и «вниз» на клавиатуре. Они тоже имеют дубликаты:

Ctrl+P — вывести предыдущую команду;

Ctrl+N — вывести следующую команду.

Редактирование команд

Самое время рассмотреть средства редактирования команд — они в Bash весьма продвинутые. Удобное перемещение в начало и конец строки, выборочное удаление символов и слов — это лишь часть возможностей, которые могут пригодиться пользователю. За редактирование команд отвечают следующие сочетания клавиш:

Ctrl+U — удалить весь текст слева от курсора;

Ctrl+K — удалить весь текст справа от курсора;

Ctrl+W — удалить 1 слово или параметр слева от курсора;

Ctrl+D — удаление текущего символа (аналогично Del);

Ctrl+H — удаление предыдущего символа (аналогично Backspace);

Alt+D — удалить всё справа от курсора до ближайшего пробела;

Alt+Backspace — удалить всё слева от курсора до ближайшего пробела;

Alt+T — поменять местами текущее слово с предыдущем;

Esc+T — поменять местами два предыдущих слова;

Tab — автодополнение команды после ввода её первых символов.

Ещё одна любопытная деталь: у Bash имеется собственный буфер обмена, который работает независимо от стандартного буфера (как мы помним, копирование по Ctrl+Shift+C, вставка по Ctrl+Shift+V). Это важно, поскольку у первых трёх команд из предыдущего списка есть дополнительные функции: они не просто удаляют часть текста, но и копируют его в тот самый отдельный буфер обмена Bash. Поэтому, будет справедливо уточнить:

Ctrl+U — вырезать и поместить в буфер обмена весь текст слева от курсора;

Ctrl+K — вырезать и поместить в буфер обмена весь текст справа от курсора;

Ctrl+W — вырезать и поместить в буфер обмена 1 слово или параметр слева от курсора;

Кстати, для вставки скопированного текста обратно сработает комбинация Ctrl+Y.

Напоследок

Конечно, выше я описал не все горячие клавиши: их гораздо больше, и полное описание содержало бы в себе кучу бородатой экзотики, унаследованной из древних университетских времён UNIX. В любом случае, не забывайте про man bash (например, там есть замечательный раздел Commands for Moving) и про bind -P .

  • bash
  • командная строка
  • горячие клавиши
  • сочетания клавиш
  • Настройка Linux
  • *nix
  • Серверное администрирование

Запуск команд в фоновом режиме

Консультация по продукту 1cloud

Как запустить команду Linux в фоновом режиме, чтобы сразу получить доступ к интерфейсу командной строки?Ответ на этот вопрос Вы узнаете в данном видео. T2M44S

  • Запуск команд в фоновом режиме 2016-01-14 true 640 360

    Синтаксис

    Задачу (например, команду или скрипт) можно перевести в фоновый режим, добавив символ «&» в конец командной строки. Этот оператор переводит команду в фоновый режим и освобождает место в терминале. Команда, выполняемая в фоновом режиме, называется заданием. Во время работы фоновой команды можно выполнять любые другие команды. Синтаксис выглядит следующим образом: command & script-name & /path/to/command arg1 arg2 & command-1 | command-2 arg1 & command-1 | command-2 -arg1 -arg2 >/path/to/output &

    Примеры

    Чтобы перевести команду ls в фоновый режим, введите:
    $ ls *.py > output.txt & Чтобы перевести следующую команду поиска в фоновый режим, добавьте символ «&» в конец командной строки:
    find . -iname «*.mp3» > myplaylist.txt &

    Как найти задания, работающие в фоновом режиме?

    Выполните следующую команду:
    jobs Пример вывода данных:

    [1]- Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt & [2]+ Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &

    Где
    [1] и [2] идентификаторы заданий.
    Чтобы отобразить идентификаторы процессов для идентификаторов заданий помимо стандартных сведений, передайте параметр -l: jobs –l Пример вывода данных:

    [1]- 7307 Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt & [2]+ 7324 Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &

    Чтобы отобразить только идентификаторы процессов, введите:
    jobs -p Пример вывода данных:

    7307 7324

    Как прекратить выполнение заданий, работающих в фоновом режиме?

    Для принудительного или постепенного завершения процесса следует использовать команду kill. Синтаксис выглядит следующим образом:

    kill PID kill -15 PID kill -9 PID killall process-Name-Here killall -15 process-Name-Here killall -9 process-Name-Here

    Как переместить процесс из фонового режима в приоритетный?

    Синтаксис: %JOB-ID ИЛИ fg JOB-ID Сначала следует вывести список текущих заданий с помощью команды jobs. Для этого введите: jobs -l Пример вывода данных:

    [1]- 7307 Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt & [2]+ 7324 Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &

    Чтобы перевести задание job id #2 в приоритетный режим, введите: %2 ИЛИ используйте команду: fg 2 Пример вывода данных:

    grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt

    Чтобы перевести это задание обратно в фоновый режим, нажмите клавишу Z, удерживая клавишу CTRL. При этом выполнение текущего приоритетного задания будет приостановлено. Введите следующую команду, чтобы перевести задание в фоновый режим:
    %2 &
    ИЛИ используйте команду: bg
    Теперь командное задание grep будет работать в фоновом режиме.

    Краткое описание всех полезных команд

    Описание Команда
    Идентификация выполняемых заданий. jobs
    jobs -l
    ps aux
    Перевод команды или скрипта в приоритетный режим. command &
    /path/to/command &
    /path/to/script arg1 &
    Перевод фонового задания в приоритетный режим. fg n
    %n
    Перевод задания в фоновый режим без его отмены bg n
    %n &

    Примечание: n — это id задания (id задания можно узнать, выполнив команду jobs).

    Тестирование сервера

    • Чек-лист параметров безопасности сервера Windows/Linux
    • Настройка Linux-файрвола iptables: Руководство для начинающих
    • Вывод всех встроенных команд
    • Как настроить vsftpd на Ubuntu

    Ознакомиться с другими инструкциями вы можете на нашем сайте. А чтобы попробовать услугу — кликните на кнопку ниже.

    Поделиться в соцсетях:

    Средняя оценка: 5,0, всего оценок: 22 Спасибо за Вашу оценку! К сожалению, проголосовать не получилось. Попробуйте позже

    191014 Санкт-Петербург ул. Кирочная, 9

    235 70

    1cloud ltd
    2023-05-28 Запуск команд в фоновом режиме
    191014 Санкт-Петербург ул. Кирочная, 9

    235 70

    1cloud ltd

    600 auto

  • Добавить комментарий

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