O que são comandos internos do shell e como identificá-los?

No Linux, vários comandos são carregados na memória sempre que um usuário inicia o shell. Esses comandos fazem parte do shell, também conhecidos como comandos internos do shell.

Neste artigo, discutiremos os componentes internos do shell em detalhes, junto com um guia sobre como você pode verificar se um comando do Linux é integrado ao shell.

O que são Shell Builtins?

Os builtins do shell são, como o nome sugere, comandos integrados ao shell. Isso ocorre porque é mais rápido executar comandos comumente usados ​​na RAM, em vez de procurá-los no disco rígido. Os desenvolvedores do Shell acham que essa é uma boa troca, pois o carregamento de dados da memória é mais rápido em comparação com os discos.

Um exemplo comum em muitos shells modernos é o comando cd para alterar os diretórios. Como você usará esse comando muitas vezes em uma única sessão, faz sentido carregá-lo na memória para uma execução mais rápida.

Relacionado: RAM mais rápida versus mais RAM: o que é melhor para o desempenho?

Como identificar um comando interno do shell?

Para determinar se um comando é um comando regular ou um shell embutido, use o comando type . A sintaxe básica para verificar se um comando do Linux é um shell integrado é:

 type -t commandname

… onde commandname é o nome do comando que você deseja verificar.

Por exemplo, para verificar se o comando cd é um shell embutido:

 type -t cd

Resultado:

 builtin

Se a saída exibir algo diferente de interno , como arquivo ou alias , o comando não é um comando interno de shell.

No Bash, você também pode usar o comando -v para identificar se um comando é um shell embutido. A saída exibirá o nome do comando se for embutido. Por exemplo, para verificar se o comando cd é um shell embutido:

 command -v cd

Como alternativa, você também pode usar o comando which . Este comando informará o nome do caminho absoluto de um comando ou se é um shell embutido ou um alias. O comando which pode ser um shell embutido, dependendo do shell que você usa.

A página de manual de um shell também listará os comandos embutidos do shell. Zsh dedica uma página inteira aos builtins. Isso não é surpreendente, considerando como o zsh é repleto de recursos, que é o que o atrai tantos usuários avançados.

Como diferentes shells têm diferentes embutidos, um utilitário comum que pode ser um shell embutido também pode existir como um executável autônomo em um sistema. Se você quiser usar um comando normal, apenas use seu nome de caminho absoluto.

Agora você conhece a diferença entre comandos regulares e shell builtins

Mesmo com computadores modernos de baixo custo muito mais poderosos do que os minicomputadores da era Unix original, os desenvolvedores de shell podem usar mais recursos integrados para acelerar o sistema. Você pode aproveitar as vantagens dos recursos internos do shell enquanto usa comandos regulares se precisar de certas opções.

Diferentes shells têm diferentes recursos e, portanto, diferentes componentes internos. Escolher o shell certo é uma questão de quais recursos são importantes para você.