Was ist der Unterschied zwischen Shell-Builtins (wie cd
oder echo
) und Shell-Tastaturkürzeln (wie ctrl+u
oder ctrl+l
)?
Beides scheint mir „eingebaut“ zu sein. Was ist der Hauptunterschied hinsichtlich der Systemarchitektur?
Ich persönlich verwende Bash, aber ich glaube, dass diese Frage auch für viele andere sh
Shells relevant ist.
Antwort1
Die meisten Builtins ändern den Status/das Verhalten der Shell („dauerhaft“) echo
und printf
sind Ausnahmen.
^U
und ^L
sind Tastenkombinationen. Sie übernehmen lediglich die Bearbeitung der Eingabezeile. Sie könnten dasselbe auch ohne diese Funktionen tun. Sie sparen lediglich Zeit. Nach der Ausführung eines Befehls macht es keinen Unterschied, ob zuvor eine Tastenkombinationsfunktion verwendet wurde.
Der vielleicht offensichtlichste Unterschied ist, dass Tastenkombinationen kein Befehl sind, den Sie von der Kommandozeile aus ausführen können. Sie benötigen ein integriertes ( bind
), um sie zu konfigurieren (Shell „Statusänderung“).