GNU/Linux >> Tutoriels Linux >  >> Linux

La différence entre une commande intégrée et une qui ne l'est pas ?

Existe-t-il une différence intrinsèque entre une commande intégrée et une autre commande qui peut théoriquement faire la même chose ?

par exemple. Les builtins bénéficient-ils d'un traitement "spécial" ? … y a-t-il moins de frais généraux pour les faire fonctionner ? .. ou sont-ils simplement « intégrés » ; comme le tableau de bord de votre voiture ?

…et existe-t-il une liste définitive (actuelle) de ces fonctions intégrées ?

Réponse acceptée :

D'après vos commentaires, vous semblez confus quant à ce qu'est exactement un shell est. Le noyau est responsable de la gestion du système. C'est la partie qui charge et exécute les programmes, accède aux fichiers, alloue de la mémoire, etc. Mais le noyau n'a pas d'interface utilisateur; vous ne pouvez communiquer avec lui qu'en utilisant un autre programme comme intermédiaire.

Un shell est un programme qui imprime une invite, lit une ligne d'entrée de votre part, puis l'interprète comme une ou plusieurs commandes pour manipuler des fichiers ou exécuter d'autres programmes. Avant l'invention de l'interface graphique, le shell était la principale interface utilisateur d'un système d'exploitation. Sous MS-DOS, le shell s'appelait command.com et peu de gens ont essayé d'en utiliser un autre. Sous Unix, cependant, il existe depuis longtemps plusieurs shells parmi lesquels les utilisateurs peuvent choisir.

Ils peuvent être divisés en 3 types. Les shells compatibles Bourne utilisent la syntaxe dérivée du shell Bourne d'origine. Les shells C utilisent la syntaxe du shell C d'origine. Ensuite, il existe des shells non traditionnels qui inventent leur propre syntaxe, ou en empruntent une à un langage de programmation, et sont généralement beaucoup moins populaires que les deux premiers types.

Une commande intégrée est simplement une commande que le shell exécute lui-même, au lieu de l'interpréter comme une demande de chargement et d'exécution d'un autre programme. Cela a deux effets principaux. Premièrement, c'est généralement plus rapide, car le chargement et l'exécution d'un programme prennent du temps. Bien sûr, plus la commande met du temps à s'exécuter, moins le temps de chargement est important par rapport au temps d'exécution global (car le temps de chargement est assez constant).

Deuxièmement, une commande intégrée peut affecter l'état interne du shell. C'est pourquoi des commandes comme cd doit être intégré, car un programme externe ne peut pas modifier le répertoire courant du shell. D'autres commandes, comme echo , peuvent être intégrés pour plus d'efficacité, mais il n'y a aucune raison intrinsèque pour qu'ils ne puissent pas être des commandes externes.

Les commandes intégrées dépendent du shell que vous utilisez. Vous devrez consulter sa documentation pour une liste (par exemple, bash Les commandes intégrées de sont répertoriées dans le chapitre 4 de son manuel). Le type La commande peut vous dire si une commande est intégrée (si votre shell est compatible POSIX), car POSIX nécessite ce type être un intégré. Si which n'est pas intégré à votre shell, il ne connaîtra probablement pas les éléments intégrés de votre shell, mais recherchera simplement des programmes externes.

Connexe :exclure certaines commandes du stockage dans l'historique bash ?
Linux
  1. Différence entre le shell de connexion et le shell sans connexion ?

  2. La différence d'utilisation entre les variables shell et les variables d'environnement ?

  3. Quelle est la différence entre Sudo Su - et Sudo Su - ?

  4. La Différence Entre Nss Et Pam?

  5. Quelle est la différence entre nohup et esperluette

La différence entre plus, moins et la plupart des commandes

Quelle est la différence entre le chat et la commande tactile

Quelle est la différence entre la connexion et le shell sans connexion

Quelle est la différence entre la commande apt et apt-get ?

Quelle est la différence entre les commandes kill et killall ?

Quelle est la différence entre une console, un terminal et un shell ?