Wie liste ich alle verfügbaren eingebauten Shell-Befehle auf?

23

Wir wissen, dass bash die folgenden Buitin-Befehle unterstützt :

$ 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

Ich möchte eine Liste aller verfügbaren eingebauten Shell-Befehle erhalten . Wie mache ich das per Kommandozeile?

Pandya
quelle
Related (für Schlüsselwörter anstelle von Builtins): Wie liste
Eliah Kagan

Antworten:

20

Vom Terminaltyp:

help

Von help help:

Display information about builtin commands.
karel
quelle
Beachten Sie, dass helpListen Schlüsselwörter Shell sowie Shell builtins (und sagt nicht ausdrücklich , was was ist).
Eliah Kagan
17

Sie können compgen -beine Bash-Shell verwenden, um eine Liste der in der Shell integrierten Befehle abzurufen.

Stahlfahrer
quelle
13

Alternativ können Sie mit dem enableBefehl anzeigen : (Die Antwort von @ karel und @ steeldriver funktioniert einwandfrei.)

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

Wenn ein eingebautes Gerät deaktiviert ist, wird es mit dem Eingang angezeigt -n.

Beispielausgabe:

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

Für diejenigen, die es hassen, externe Binärdateien einfach zum Formatieren / Extrahieren von Daten zu fälschen:

while read -r _ cmd ; do echo $cmd ; done < <(enable -a)
Nicola Worthington
quelle
Warum nicht einfach eine Pipe anstelle einer FIFO-Umleitung? enable -a | while read ...
David Foerster
Das würde auch funktionieren. Dies ist nur eine Angewohnheit, in der ich bin, so dass jede variable Manipulation, die ich in der while-Schleife machen möchte, nicht in einer Sub-Shell ausgeführt wird. (Das Manipulieren von Variablen innerhalb einer Sub-Shell würde bedeuten, dass die Änderungen nicht außerhalb des anderen Endes der Schleife beibehalten werden.)
Nicola Worthington
1

Tippen Sie einfach das Terminal ein:

man bash

Dies öffnet das Handbuch von bash. Scrollen Sie nach unten, um SHELL BUILTIN COMMANDS zu finden . Hier erfahren Sie alles über die eingebauten Befehle und deren Funktion. Wenn Sie das Handbuch im TXT-Format haben möchten, verwenden Sie diesen Befehl

man bash > FILENAME.txt

Jetzt haben Sie die Textdatei des Bash-Handbuchs.

Ujjwal Gupta
quelle
1

Ein anderer Weg: man builtins

Es zeigt die Liste der eingebauten Funktionen oben an und enthält dann alle Details für jeden Befehl unten.

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.
weises Glück
quelle