GNU/Linux >> Tutoriels Linux >  >> Linux

Les commandes shell sont écrites dans quel langage ?

Les programmes sont des exécutables ordinaires écrits dans n'importe quel langage (principalement C).

Le shell prend une commande entrée qui est juste une chaîne. Il recherche ensuite certaines séquences de caractères qui ont une signification particulière pour le shell, telles que les variables d'environnement qui sont $ suivi d'un mot ou de redirections qui sont > suivi d'un chemin. Une fois cette substitution effectuée, il a une chaîne qui est divisée en espaces pour générer un nom d'exécutable et des paramètres. Le shell recherchera alors l'exécutable dans la liste des répertoires de la variable d'environnement PATH. Le shell utilise ensuite des appels système pour créer un processus à partir de l'exécutable avec les paramètres.

Par exemple pour exécuter la commande ls $HOME le shell reconnaîtrait d'abord que $HOME est une variable d'environnement et remplacez-la par sa valeur dans ce cas /home/user en laissant la commande ls /home/user . Il divise ensuite la commande sur l'espace pour obtenir le nom de l'exécutable ls et paramètre /home/user . Le shell trouve le premier exécutable qui correspond à ls généralement /bin/ls . Il utilise ensuite les appels système spawn()/ posix_spawn() ou fork() et exec() pour créer le nouveau processus.


La plupart des utilitaires de base sous Linux sont écrits en C .Ceci vous pouvez vérifier dans busybox source code qui prend en charge la plupart des utilitaires de commande linux de base écrits en C .Donc les commandes comme ls,cd ...etc sont en c

Comment le shell interprétera le lien ci-dessous

dans un système d'exploitation, il existe un programme spécial appelé shell. Le shell accepte les commandes lisibles par l'homme et les traduit en quelque chose que le noyau peut lire et traiter.

http://www.math.iitb.ac.in/resources/manuals/Unix_Unleashed/Vol_1/ch08.htm


Ces programmes sont principalement écrits en langage de programmation C, tout comme le noyau Linux.


Linux
  1. Quelles commandes manquent dans votre fichier bashrc ?

  2. Quel shell est-ce que j'utilise ?

  3. Différence entre les variables Shell qui sont exportées et celles qui ne sont pas dans Bash ?

  4. Sur quel shell suis-je en cours d'exécution ?

  5. Que sont les scripts shell ? Comment créer des scripts shell ?

Qu'est-ce que le Shell sous Linux ?

Qu'est-ce que le sous-shell sous Linux ?

Qu'est-ce que le shell de connexion sous Linux ?

Qu'est-ce qu'un fichier .sh ?

Quelles commandes sont disponibles dans la section %pre d'un fichier Kickstart sur CentOS ?

Qu'est-ce qui détermine quelles commandes Linux nécessitent un accès root ?