Команда bg в Linux

Linux 命令大全Справочник команд Linux

bgявляется одной из основных команд управления заданиями в системах Linux/Unix, полное название — "background". Её основная функция — переводить приостановленные в данный момент задания в фоновый режим для продолжения выполнения.

Базовые понятия

  • Задание переднего плана: процесс, который выполняется в терминале и занимает ввод/вывод
  • Фоновое задание: процесс, который выполняется в фоновом режиме терминала, не занимая ввод/вывод
  • Управление заданиями: возможность управлять процессами переднего плана и фоновыми процессами

Синтаксис команды

bg [作业号]

Описание параметра

Параметр Описание
Без параметра Действует на текущее задание (т.е. на последнее приостановленное задание)
Номер задания Укажите номер задания, с которым нужно работать (можно посмотреть с помощьюjobsкоманды)

Сценарии использования

1. Возобновление приостановленных заданий

Когда вы используетеCtrl+Zчтобы приостановить задание переднего плана, можно использоватьbgкоманду, чтобы продолжить его выполнение в фоновом режиме:

Пример

$ sleep 100  # Запустите долго выполняющуюся команду
^Z           # Нажмите Ctrl+Z, чтобы приостановить
[1]+ Остановлено        sleep 100
$ bg         # Пусть продолжит работу в фоновом режиме
[1]+ sleep 100 &

2. Возобновление с указанием номера задания

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

Пример

$ jobs
[1]- Остановлено        vim file1.txt
[2]+ Остановлено python script.py
$ bg 2  # Пусть второе задание продолжит работу в фоновом режиме

3. Использование с командой fg

bgиfg(передний план) — это пара взаимодополняющих команд:

  • bg: Поместите задание в фоновый режим для выполнения
  • fg: Верните задание на передний план для выполнения

Примеры практического применения

Сценарий: типичный рабочий процесс в разработке

Пример

# 1. Запустите редактор
$ vim app.py

# 2. Нужно временно запустить тесты (нажмите Ctrl+Z, чтобы приостановить vim)
^Z
[1]+ Остановлен        vim app.py

# 3. Запустите тестовый скрипт
$ python test.py

# 4. После завершения теста верните редактор в фон, чтобы продолжить работу
$ bg 1
[1]+ vim app.py &

# 5. Просмотр фоновых заданий
$ jobs
[1]+ Выполняется        vim app.py &

ЧАВО

Q1: Как проверить, какие задания сейчас выполняются?

Используйтеjobsкоманда:

Пример

$ jobs
[1]- Выполняется        sleep 100 &
[2]+ Остановлено        vim notes.txt

Вопрос 2: В чём разница между bg и &?

  • &: Помещает сразу в фоновый режим при запуске команды
  • bg: Помещает уже приостановленные задания в фоновый режим

Вопрос 3: Что происходит с фоновыми заданиями bg после закрытия терминала?

По умолчанию фоновые задания будут завершены при закрытии терминала. Чтобы сохранить их, можно использовать:

Пример

nohup command &  # Или используйте tmux/screen

Дополнительные советы

1. Использование вместе с disown

Отвяжите задание от терминала, чтобы оно не завершалось, даже если терминал будет закрыт:

Пример

$ sleep 1000
^Z
$ bg
$ disown %1

2. Использование сокращений номеров заданий

  • %n: Номер задания n
  • %str: Задание, начинающееся с str
  • %?str: Задание, содержащее str

Пример

$ bg %sleep  # Возобновить задание, содержащее "sleep"

Сводная блок-схема

Освоениеbgкоманда может значительно повысить эффективность вашей работы в Linux, особенно когда вам нужно одновременно обрабатывать несколько задач. В сочетании сjobs、fgиkillи другими командами, вы можете достичь мощных возможностей управления заданиями.

Linux 命令大全Справочник команд Linux

Другие расширения