Qual é a diferença entre os recursos internos do shell (como cd
ou echo
) e os atalhos de teclado do shell (como ctrl+u
ou ctrl+l
)?
Ambos me parecem "builtins", qual a principal diferença em termos de arquitetura do sistema?
Eu pessoalmente uso o Bash, mas acredito que esta questão seja relevante para muitos outros sh
shells.
Responder1
A maioria dos builtins altera o status/comportamento do shell ("permanentemente"). echo
e printf
são exceções.
^U
e ^L
são combinações de teclas. Eles apenas cuidam da edição da linha de entrada. Você poderia fazer o mesmo sem essas funções. Eles apenas economizam tempo. Depois de executar um comando, não faz diferença se uma função de ligação de teclas foi usada anteriormente.
A diferença talvez mais óbvia é que as combinações de teclas não são um comando que você pode executar na linha de comando. Você precisa de um builtin ( bind
) para configurá-los (shell "mudança de estado").