Есть ли способ узнать, какие вещи встроены?
help
даст вам полный список.Вы можете запустить help
со встроенной командой в качестве аргумента, чтобы получить более подробную информацию.info "(bash) Shell Builtin Commands"
отобразит руководство по Bash для всех встроенных функций.
Является ли pwd
в папке bin
(сверху) тем же pwd
, что встроено?
Нет, они совершенно разные:
$ builtin pwd --help
bash: pwd: --: invalid option
pwd: usage: pwd [-LP]
$ /bin/pwd --help
Usage: /bin/pwd [OPTION]...
Print the full filename of the current working directory.
-L, --logical use PWD from environment, even if it contains symlinks
-P, --physical avoid all symlinks
--help display this help and exit
--version output version information and exit
NOTE: your shell may have its own version of pwd, which usually supersedes
the version described here. Please refer to your shell's documentation
for details about the options it supports.
Report bugs to <bug-coreutils@gnu.org>.
Почему вещи встроены в первую очередь?Они специально настроены для соответствия оболочке, или это просто для того, чтобы их можно было вызывать внутри, чтобы они не требовали нового процесса?
Из руководства: «Для реализации необходимы встроенные командыфункциональность, которую невозможно или неудобно получить с помощью отдельных утилит ".Было бы трудно заставить команду, подобную cd
, работать внешне, потому что она влияет на состояние оболочки.Конечно, легко повторить поведение pwd
или true
, но стандарт POSIX требует, чтобы они были встроенными .
Мне удалось пойматьpwd
с pwd &
и ps
.Это обходной путь или это отдельные процессы?
Запуск встроенный &
заставит Bash запустить подоболочку в фоновом режиме.Вы можете легко увидеть это, выполнив read &
, так как read
ждет, пока он не введет данные.