Jak wyświetlić listę wszystkich dostępnych poleceń wbudowanych w powłokę?

23

Wiemy, że bash obsługuje wiele poleceń buitin, takich jak:

$ 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

Chcę uzyskać listę wszystkich dostępnych poleceń wbudowanych w powłokę . Jak to zrobić za pomocą wiersza polecenia?

Pandya
źródło
Powiązane (dla słów kluczowych zamiast wbudowanych): Jak wyświetlić listę wszystkich słów kluczowych powłoki?
Eliah Kagan

Odpowiedzi:

20

Z rodzaju terminala:

help

Od help help:

Display information about builtin commands.
Karel
źródło
Zauważ, że helpzawiera listę słów kluczowych powłoki, a także wbudowane powłoki (i nie określa wprost, który jest który).
Eliah Kagan
17

Możesz użyć compgen -bz powłoki bash, aby uzyskać listę wbudowanych poleceń powłoki.

steeldriver
źródło
13

Alternatywnie możesz wyświetlić za pomocą enablepolecenia: (Odpowiedź zarówno @ karel, jak i @ steeldriver działa dobrze.)

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

Jeśli jakiekolwiek wbudowane narzędzie jest wyłączone, jest ono pokazywane -nbez wprowadzania.

Przykładowe dane wyjściowe:

$ 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
źródło
1

Dla tych, którzy nie lubią rozwiązywać zewnętrznych plików binarnych po prostu do formatowania / ekstrakcji danych:

while read -r _ cmd ; do echo $cmd ; done < <(enable -a)
Nicola Worthington
źródło
Dlaczego nie po prostu potok zamiast przekierowania FIFO? enable -a | while read ...
David Foerster,
To też by działało. To tylko nawyk, w którym się posługuję, więc wszelkie operacje na zmiennych, które chcę wykonywać w pętli while, nie są wykonywane wewnątrz podpowłoki. (Manipulowanie zmiennymi wewnątrz podpowłoki oznaczałoby, że zmiany nie byłyby utrwalane poza drugim końcem pętli).
Nicola Worthington
1

Po prostu wpisz w Terminalu:

man bash

Spowoduje to otwarcie instrukcji bash. Przewiń w dół, znajdziesz SZUKAJ WBUDOWANE POLECENIA . Tutaj możesz dowiedzieć się o wszystkich wbudowanych poleceniach i ich działaniu. Jeśli chcesz instrukcji w formacie txt, użyj tego polecenia

man bash > FILENAME.txt

Teraz masz plik tekstowy instrukcji bash.

Ujjwal Gupta
źródło
1

Inny sposób: man builtins

Wyświetla listę wbudowanych u góry, a następnie zawiera wszystkie szczegóły dla każdego polecenia poniżej.

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
źródło