Как мне перечислить все доступные команды встроенной оболочки?

23

Мы знаем, что bash поддерживает несколько таких команд, как:

$ type type cd help command
type is a shell builtin
cd is a shell builtin
help is a shell builtin
command is a shell builtin

Я хочу получить список всех доступных команд встроенной оболочки . Как мне это сделать с помощью командной строки?

Pandya
источник
Связанный (для ключевых слов вместо встроенных): как перечислить все ключевые слова оболочки?
Элия ​​Каган

Ответы:

20

Из типа терминала:

help

От help help:

Display information about builtin commands.
Карел
источник
Обратите внимание, что helpперечислены ключевые слова оболочки, а также встроенные функции оболочки (и не указано явно, какой именно).
Элия ​​Каган
17

Вы можете использовать compgen -bоболочку bash для получения списка встроенных команд оболочки.

steeldriver
источник
13

В качестве альтернативы вы можете отобразить с помощью enableкоманды: (Ответ @ karel's и @ steeldriver работает отлично.)

enable -a | cut -d " " -f 2,3

Если какая-либо встроенная функция отключена, она отображается с -nвыходом.

Пример вывода:

$ enable -a | cut -d " " -f 2,3
.
:
[
alias
bg
bind
break
builtin
caller
cd
command
compgen
complete
compopt
continue
declare
dirs
disown
echo
enable
eval
exec
exit
export
false
fc
fg
getopts
hash
help
history
jobs
kill
let
local
logout
mapfile
popd
printf
pushd
pwd
read
readarray
readonly
return
set
shift
shopt
source
suspend
test
times
trap
true
type
typeset
ulimit
umask
unalias
unset
wait
Pandya
источник
1

Для тех, кто ненавидит разветвление внешних двоичных файлов просто для форматирования / извлечения данных:

while read -r _ cmd ; do echo $cmd ; done < <(enable -a)
Никола Уортингтон
источник
Почему бы просто не труба вместо перенаправления FIFO? enable -a | while read ...
Дэвид Фёрстер
Это также будет работать. Это обычная привычка, так что любые манипуляции с переменными, которые я собираюсь сделать внутри цикла while, не выполняются внутри под-оболочки. (Манипулирование переменными внутри вложенной оболочки будет означать, что изменения не сохраняются за пределами другого конца цикла).
Никола Уортингтон,
1

Просто введите в Терминале:

man bash

Это откроет руководство по bash. Прокрутите вниз, и вы найдете ВСТРОЕННЫЕ КОМАНДЫ . Здесь вы можете узнать обо всех встроенных командах и о том, что они делают. Если вы хотите руководство в формате TXT, используйте эту команду

man bash > FILENAME.txt

Теперь у вас есть текстовый файл руководства по bash.

Уджвал Гупта
источник
1

По-другому: man builtins

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

SYNOPSIS
       bash defines the following built-in commands: :, ., [, alias, bg, bind,
       break,  builtin,  case,  cd,  command,  compgen,  complete,   continue,
       declare,  dirs, disown, echo, enable, eval, exec, exit, export, fc, fg,
       getopts, hash, help, history, if, jobs, kill, let, local, logout, popd,
       printf,  pushd, pwd, read, readonly, return, set, shift, shopt, source,
       suspend, test, times, trap,  type,  typeset,  ulimit,  umask,  unalias,
       unset, until, wait, while.
wisbucky
источник