В Linux команда fg
переводит указанное задание в интерактивный режим, делая его текущим заданием. Если задание не указано, используется текущее задание.
Содержание
Синтаксис
$ fg [задание]
Состояние выхода
Возвращает состояние команды, переведённой в интерактивный режим, или ошибку, если возникла ошибка
Примеры использования в Linux команды fg
Запуск демонстрационного задания
Перед началом использования утилиты запускаем в системе задание в демонстрационных целях. Для этого вводим, например, следующую команду, запустив её на переднем плане:
oleg@mobile:~:$ ping 139.162.132.20
PING 139.162.132.20 (139.162.132.20) 56(84) bytes of data.
64 bytes from 139.162.132.20: icmp_seq=1 ttl=53 time=40.4 ms
64 bytes from 139.162.132.20: icmp_seq=2 ttl=53 time=46.1 ms
64 bytes from 139.162.132.20: icmp_seq=3 ttl=53 time=37.8 ms
64 bytes from 139.162.132.20: icmp_seq=4 ttl=53 time=45.3 ms
64 bytes from 139.162.132.20: icmp_seq=5 ttl=53 time=49.2 ms
64 bytes from 139.162.132.20: icmp_seq=6 ttl=53 time=38.1 ms
^C
--- 139.162.132.20 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5007ms
rtt min/avg/max/mdev = 37.842/42.837/49.203/4.284 ms
oleg@mobile:~:$
Приостановка задания
Для приостановки задания команды ping
, нажимаем клавиши Ctrl-Z.
Поиск приостановленных заданий
Для поиска приостановленных заданий вводим следующую команду:
oleg@mobile:~:$ jobs -l
[1]- 141825 Остановлено ping 139.162.132.20
[2]+ 144468 Остановлено ping 139.162.132.20
oleg@mobile:~:$
Вывод команды jobs -l
показывает задание, выполняющееся в фоновом режиме.
Выведение задания на передний план
Задание из фонового режима можно вывести на передний план вводом запуском команды fg
с указанием идентификатора:
oleg@mobile:~:$ fg %2
ping 139.162.132.20
64 bytes from 139.162.132.20: icmp_seq=3 ttl=53 time=37.8 ms
64 bytes from 139.162.132.20: icmp_seq=4 ttl=53 time=40.9 ms
64 bytes from 139.162.132.20: icmp_seq=5 ttl=53 time=44.0 ms
64 bytes from 139.162.132.20: icmp_seq=6 ttl=53 time=49.2 ms
^C
--- 139.162.132.20 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 542143ms
rtt min/avg/max/mdev = 37.758/43.150/49.161/4.653 ms
oleg@mobile:~:$
Можно выполнить это и без указания идентификатора:
oleg@mobile:~:$ fg %ping
ping 139.162.132.20
64 bytes from 139.162.132.20: icmp_seq=13 ttl=53 time=48.0 ms
64 bytes from 139.162.132.20: icmp_seq=15 ttl=53 time=39.9 ms
64 bytes from 139.162.132.20: icmp_seq=16 ttl=53 time=42.6 ms
64 bytes from 139.162.132.20: icmp_seq=17 ttl=53 time=35.3 ms
64 bytes from 139.162.132.20: icmp_seq=18 ttl=53 time=37.6 ms
^Z
[1]+ Остановлен ping 139.162.132.20
oleg@mobile:~:$
Важное дополнение
Почти во всех случаях необходимо использовать команду fg
, реализованную в качестве встроенной команды оболочки BASH/KSH/POSIX.
Команду /usr/bin/fg
нельзя использовать в текущем сеансе оболочки. Она работает в другой среде и не разделяет понимание заданий родительской оболочки bash
.
Для того, чтобы выяснить, является ли fg
частью оболочки, внешней командой или и тем, и другим, следует ввести следующую команду:
oleg@mobile:~:$ type -a fg
fg — это встроенная команда bash
oleg@mobile:~:$
Примеры выходных данных:
fg
— это встроенная команда оболочкиbash
;fg
— это/usr/bin/fg
.
Заключение
В этой короткой статье было показано на примере использование в Linux команды fg
. Эта очень полезная утилита позволяет убрать с переднего плана целый ряд заданий, переведя их в фоновый режим.