¿Cómo enumero todos los comandos incorporados de shell disponibles?

23

Sabemos que bash admite varios comandos buitin como:

$ 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

Quiero obtener una lista de todos los comandos incorporados de shell disponibles . ¿Cómo hago eso por línea de comandos?

Pandya
fuente
Relacionado (para las palabras clave en lugar de las incorporadas): ¿Cómo enumerar todas las palabras clave de shell?
Eliah Kagan

Respuestas:

20

Desde el tipo de terminal:

help

De help help:

Display information about builtin commands.
karel
fuente
Tenga en cuenta que helpenumera las palabras clave de shell , así como los builtins de shell (y no establece explícitamente cuál es cuál).
Eliah Kagan
17

Puede usar compgen -bdesde un shell bash para obtener una lista de los comandos incorporados del shell.

conductor de acero
fuente
13

Alternativamente, puede mostrar con el enablecomando: (La respuesta de @ karel y @ steeldriver funciona bien).

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

Si alguna de las funciones está deshabilitada, se muestra con la -nsalida puesta.

Salida de ejemplo:

$ 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
fuente
1

Para aquellos que odian bifurcar binarios externos simplemente para formatear / extraer datos:

while read -r _ cmd ; do echo $cmd ; done < <(enable -a)
Nicola Worthington
fuente
¿Por qué no simplemente una tubería en lugar de una redirección FIFO? enable -a | while read ...
David Foerster
Eso también funcionaría. Este es solo un hábito en el que estoy, para que cualquier manipulación de variables que me interese hacer dentro del ciclo while no se ejecute dentro de un sub-shell. (La manipulación de variables dentro de un sub-shell significaría que los cambios no persisten fuera del otro extremo del bucle).
Nicola Worthington
1

Simplemente escriba en la Terminal:

man bash

Esto abrirá el manual de bash. Desplácese hacia abajo y encontrará SHELL BUILTIN COMMANDS . Aquí puede conocer todos los comandos incorporados y lo que hacen. Si quiere el manual en formato txt, use este comando

man bash > FILENAME.txt

Ahora tienes el archivo de texto del manual bash.

Ujjwal Gupta
fuente
1

De otra manera: man builtins

Muestra la lista de componentes integrados en la parte superior, luego tiene todos los detalles para cada comando a continuación.

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
fuente