¿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?



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.

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.


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

1

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

while read -r _ cmd ; do echo $cmd ; done < <(enable -a)

¿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.


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.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.