Где установлены команды `fg`,` bg` и `jobs`? [duplicate]

fg , bg и job используются для управления заданиями. И по какой-то причине (возможно, это только я) я не могу найти ни их двоичные файлы, ни их страницы руководства ( whereis не выводит информации). , который не дает вывода. Однако сами команды работают нормально.

Я выполнил такие команды, как find / bin bg , но без совпадений. Я также запустил find / bg , чтобы забросить широкую сеть.

16
задан 27 April 2015 в 02:30

5 ответов

Вы не получаете файлов против тех команд, потому что они - оболочка (bash) созданный-ins, не отдельные исполняемые файлы (например, двоичные файлы, сценарии). На самом деле созданная-ins оболочка компилируется в исполняемый файл оболочки; если Вы хотите Вас, может проверить исходный код, чтобы быть уверенным в нем. Как which или whereis только ищет внешние исполняемые файлы, Вы не получаете вывода для созданного-ins.

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

$ type fg
fg is a shell builtin

$ type bg
bg is a shell builtin

$ type jobs
jobs is a shell builtin

Также обратите внимание что Ваш find команда не синтаксически корректна. Корректный (самый простой) синтаксис find /where/to/search -name 'name_to_search'.

Также обратите внимание, что немного команд реализованы и как встроенная оболочка и как отдельный автономный исполняемый файл. Для таких команд всегда помните, что встроенная команда будет иметь приоритет по внешней. Так, когда Вы работаете echo something, встроенное echo выполняется. Если Вы хотите выполнить двоичный исполняемый файл echo необходимо назвать его по-другому. Один путь состоит в том, чтобы использовать полный путь для исполняемого файла: /bin/echo something.

Для отображения всех доступных версий команды работать type с -a опция:

$ type -a echo
echo is a shell builtin
echo is /bin/echo

Для получения документации для созданной-ins оболочки можно проверить manстраница bash или используйте help команда (который является встроенной командой):

help jobs

Также, поскольку @terdon указал, что необходимо использовать type вместо which.

35
ответ дан 27 April 2015 в 12:30

Они - созданная-ins оболочка - можно получить основную информацию использования путем ввода help fg или help jobs при приглашении оболочки удара или более подробной информации из страницы справочника удара.

6
ответ дан 27 April 2015 в 12:30

Это - оболочка встроенные команды. Нет никакого двоичного файла для них, поскольку они - часть Bash (или безотносительно оболочки, которую Вы используете).

Они документируются, например, в страница справочника Bash (см. раздел "SHELL BUILTIN COMMANDS")

2
ответ дан 27 April 2015 в 12:30

Добавляя к ответу heemayl, стоит указать на это fg, bg, и jobs должны быть встроены в оболочку, потому что они управляют структурами данных в памяти оболочки и/или состоянии ядра, связанном с процессом оболочки. Не было бы возможно записать внешнюю команду, которая делает что fg делает.

Другие команды, которые должны быть встроены, включают cd, eval, exec, exit, export, history, read, set, source (иначе .), shift, trap, ulimit, umask, и wait. Ваша оболочка может иметь более длинный список, в зависимости от того, сколько расширенной функциональности она реализует. POSIX имеет другое, но наложение, список "специальных встроенных утилит" - я не уверен почему вещи как break и continue рассчитайте как команды, а не ключевые слова управляющей структуры, или почему POSIX не рассматривает вещи как umask must-build-in, когда они не могут быть реализованы никакой другой путь. (Вы могли записать названную программу /bin/umask названный umask(2), но это только изменило бы настройки для себя, не для последующих процессов, созданных оболочкой, таким образом, это не выполнит свою спецификацию.)

5
ответ дан 27 April 2015 в 12:30

fg, bg и jobs не отдельные утилиты, но они - часть bash (окружите встроенные команды).

можно найти больше о них в руководстве удара использованием команды

man bash
2
ответ дан 27 April 2015 в 12:30

Другие вопросы по тегам:

Похожие вопросы: