En termes simples, une commande est une instruction (ou un ensemble d'instructions) à exécuter par un ordinateur.
Commandes autonomes
Utilitaires Unix fondamentaux tels que ls
, ln
, etc. sont (généralement) en C et compilé pour être exécutables autonomes des programmes qui ne nécessitent pas un interprète à exécuter; ils nécessitent généralement l' installation de certains fichiers de bibliothèque sur le système, mais c'est une réponse à une autre question.
Scripts
Un script est une collection de commandes et en fait, les scripts eux-mêmes sont considérés comme une commande.
Un script Perl est une séquence d'instructions Perl et nécessite un perl
exécutable (autonome et compilé) programme pour interpréter les instructions Perl.
Parfois, des scripts interprétatifs volumineux et complexes (dans des langages tels que Perl, Python et Ruby) sont également appelés programmes interprétés tandis que le terme script est réservé à des scripts plus courts et plus simples.
Un script shell est une séquence d'autres commandes (tout type de commande) et il nécessite un shell Unix tel que Bash pour interpréter le script. Depuis la page de manuel de Bash:
Bash est un interpréteur de langage de commande compatible sh qui exécute les commandes lues à partir de l'entrée standard ou d'un fichier.
Coques intégrées
Les shells ont généralement des commandes intégrées qui ne sont ni des programmes autonomes ni des scripts. Au lieu de cela, ils font partie du shell lui-même et sont exécutés directement par le shell. cd
est un exemple d'une telle commande intégrée.
Parfois, il existe des commandes qui existent en tant que commandes intégrées au shell et en tant que commandes autonomes en même temps, par exemple, la echo
commande.
$ type -a echo
echo is a shell builtin
echo is /usr/bin/echo
echo
exécute de lui-même le shell intégré tandis que la commande autonome peut être exécutée en fournissant son chemin complet.
Exécutez la version intégrée d'écho:
$ echo --version
--version
Exécutez un echo
programme autonome :
$ /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.
Remarque: Les détails ci-dessus se réfèrent à un environnement Unix mais les mêmes principes s'appliquent à un environnement Windows.