Ich mag Listen. Sie vermitteln mir ein Gefühl der Vollständigkeit, der Übersicht. Vor ein paar Tagen habe ich über Linux-Befehle geschrieben, die in der Bash-Shell eingebaut sind, die Builtins. Ich hätte gerne eine Liste aller dieser eingebauten Befehle.

Die obligatorische Internet-Recherche ergibt verschiedene Ansätze, so eine Liste zu bekommen. Ich entscheide mich für den Builtin-Befehl enable. enable dient dazu, Builtins zu aktivieren und zu deaktiveren. Das ist nützlich, wenn man ein ohne volle Pfadangabe ein externes Programm verwenden will, dass den Namen eines Builtins hat. Tippe ich einfach nur enable, bekomme ich eine Liste aller Builtin-Befehle:

$ enable
enable .
enable :
enable [
enable alias
[..]

Das “enable “ am Anfang jeder Zeile brauche ich nicht, also filtere ich es mit einer Pipe und habe alle meine Builtins:

$ enable -a | cut -d " " -f 2
.
:
[
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

Wie viele Befehle sind das?

$ enable -a | cut -d " " -f 2 | wc -l
61