Em termos simples, um comando é uma instrução (ou um conjunto de instruções) a ser executada por um computador.
Comandos independentes
Os utilitários fundamentais do Unix, como ls
, ln
, etc., são (geralmente) gravados em C e compilados para serem executáveis independentes programs que não exigem que um intérprete seja executado; eles geralmente exigem que certos arquivos biblioteca sejam instalados no sistema, mas isso é uma resposta para outra pergunta.
Scripts
Um script é uma coleção de comandos e, de fato, os próprios scripts são considerados um comando.
Um script Perl é uma sequência de instruções Perl e requer um programa perl
executável (independente e compilado) para interpretar as declarações Perl.
Às vezes, scripts interpretativos grandes e complexos (em linguagens como Perl, Python e Ruby) também são referidos como programas interpretados enquanto o termo script é reservado para curtas e scripts mais simples.
Um script de shell é uma sequência de outros comandos (qualquer tipo de comando) e requer um shell Unix, como o Bash, para interpretar o script. Na página do manual do Bash:
Bash is an sh-compatible command language interpreter that executes commands read from the standard input or from a file.
Built-ins da shell
Os shells geralmente têm comandos integrados que não são programas independentes nem scripts. Em vez disso, eles fazem parte do próprio shell e são executados diretamente pelo shell. cd
é um exemplo de um comando interno.
Algumas vezes existem comandos que existem como internos do shell e como
comandos independentes ao mesmo tempo, por exemplo, o comando echo
.
$ type -a echo
echo is a shell builtin
echo is /usr/bin/echo
echo
por conta própria executa o shell integrado enquanto o comando independente pode ser executado fornecendo seu caminho completo.
Execute a versão incorporada do echo:
$ echo --version
--version
Executar o programa echo
autônomo:
$ /usr/bin/echo --version
echo (GNU coreutils) 8.23
Packaged by Cygwin (8.23-4)
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Observação: os detalhes acima se referem a um ambiente Unix, mas os mesmos princípios se aplicam a um ambiente Windows.