Lorsque l’on parle de « système Linux » il s’agit d’un abus de langage. En effet, nous devrions parler de système « GNU/Linux » car il s’agit généralement de l’association de « Linux » et de « GNU ».
« Linux » est un Kernel (noyaux), c’est-à-dire la couche la plus basse qui permet d’effectuer la gestion de la mémoire, l'accès aux périphériques (disque dur, lecteur de CD-Rom, clavier, souris, carte graphique...), la gestion du réseau, le partage du temps microprocesseur entre les programmes (multi-tâche), etc et fût développé par Linus Torvalds à partir de Minix en 1991.
« GNU », dont le nom est un acronyme récursif pour « GNU's Not Unix », est un système d'exploitation de type Unix.
Cela signifie qu'il s'agit d'un ensemble de nombreux programmes tels que des applications, bibliothèques, outils de développement, même des jeux.
Il fut fondé en 1983 par Richard Stallman dans le but de fournir un équivalent libre à Unix. À cette date, « GNU » est quasiment prêt à l'exception de son noyau, le « Hurd ».
L’association des deux projets « GNU » et « Linux » a donné un système d’exploitation appelé « GNU/Linux ».
Ce système d’exploitation a ensuite donné naissance à de nombreuses distributions différentes de « GNU/Linux »
Ce système est libre et Open source mais également incontournable de nos jours.
A titre d’exemple, nous le retrouvons dans environ 65% des serveurs Web d’Internet, la quasi-totalité des DNS, la quasi-totalité des systèmes embarqués et majoritaire dans les supercalculateurs.
Ce qu’il faut savoir c’est qu’il existe plusieurs environnements sous « Linux » :
La majeur partie du temps on a tendance à utiliser l'environnement graphique sur une machine car elle est plus « user friendly » et plus intuitive. Toutefois, la console est également très puissant et permet de réaliser des tâches ou des actions qui sont généralement difficiles à réaliser dans un environnement graphique.
Tout comme pour l’environnement graphique, il existe plusieurs environnements console, appelés les « Shells ».
Les différences sont moins « visibles » que dans le mode graphique pour lequel on peut remarquer une nette différence de menus, d’icônes, etc.
Généralement la console possède un fond noir et du texte blanc même s’il est possible de les personnaliser, cependant les fonctionnalités qu’offre l’invite de commande sont variable en fonction du « shell » utilisé.
Parmi les différents « shells » existants, voici une liste de quelques-uns des principaux :
L'ancêtre de tous les shells existant à ce jour est le « sh », il est installé sur tous les OS basés sur Unix mais est cependant assez pauvre en fonctionnalités par rapport aux autres shells.
Le « bash » est le shell par défaut de la plupart des distributions Linux mais aussi celui du terminal de Mac OS X. Il est également une amélioration du sh.
Il permet également d’exécuter les commandes de :
Voici un résumé de la manière dont ont évolué les shells, chacun d’entre eux héritant de la plupart des fonctionnalités du shell parent :
Le shell est le programme qui gère l'invite de commandes.
Grâce à lui il est possible de créer des programmes simples ou complexes à l’aide de scripts qui utiliseront des commandes internes de scripting, permettant ainsi une automatisation de tâches.
C'est donc le programme qui attend que vous entriez des commandes pour les exécuter.
Un shell est donc un interpréteur de commandes avec interaction depuis un terminal ou alors séquentiel via du Scripting.
Il lui est également possible d’effectuer les parmi tant d’autres les actions suivantes :
Attention : Le fichier « .bashrc » est le fichier de configuration du bash que Linux utilise par défaut. Il est possible de le configurer pour que chacun puisse personnaliser son invite de commandes, ses alias, etc.