La coque Bash a plus de 30 ans et va toujours fort. Que fait-il, d'où vient-il et pourquoi est-ce toujours la coquille la plus courante sur les systèmes Linux?
Qu'est-ce qu'une coquille?
Lorsque vous ouvrez une fenêtre de terminal et que vous tapez des commandes, quelque chose doit prendre ce que vous avez saisi, déterminez ce que vous avez voulu et exécutez les tâches que vous avez demandées. Le logiciel qui fait ceci est la coquille. Une coquille est un interprète de commande. Il analyse ce que vous avez saisi et choisit les commandes, les noms de répertoires, les noms de fichiers et les noms de programme afin de pouvoir déterminer ce que vous essayez d'atteindre.
Les gens utilisent souvent les phrases "Windows terminaux", "ligne de commande" et "shell" interchangeable, mais ils sont trois choses distinctes. Une fenêtre de terminal est une représentation logicielle d'un physique terminal TeleType . Cela vous donne une connexion à l'ordinateur. Afin de faire quelque chose d'utile, vous devez être capable de taper des instructions à une ligne de commande. La ligne de commande est fournie par la coque et la fenêtre du terminal vous permet d'accéder à la coque.
Les coquilles vous permettent également de coller une collection de commandes dans un fichier texte appelé script. Toutes les commandes du script sont exécutées pour vous chaque fois que vous exécutez le script. Les scripts fournissent une efficacité, une répétabilité et une commodité.
La première
Unix
Shell était le
Thompson Shell
, appelé
SH
. C'était écrit par
Ken Thompson
, qui est peut-être le membre le plus clé de l'original UNIX Founding Pères à
Bell Labs
. La coquille Thompson a été utilisée comme coquille UNIX par défaut jusqu'à et incluant UNIX Version 6. Elle a été remplacée par le
Coquille de Bourne
dans la version 7 de Unix en 1979.
EN RELATION: Qu'est-ce que UNIX, et pourquoi cela compte-import-il?
La coquille de Bourne
La coquille de Bourne, écrite par
Stephen Bourne
, était un remplacement amélioré pour la coquille Thompson. Il a même été commencé à utiliser la même commande que la coquille Thompson,
SH
, Pour maintenir la compatibilité rédaction avec les scripts existants. La compatibilité en arrière était importante, mais de nouvelles fonctionnalités ont été incluses qui ont fourni de nombreuses fonctionnalités que nous utilisons encore aujourd'hui.
La coque de Bourne était une coquille interactive et une langue de script. Il a soutenu l'exécution de la tâche et le contrôle élémentaire de la tâche de premier plan et de base. Des tuyaux et une redirection ont été ajoutés, ainsi que des améliorations des boucles de manutention.
La coquille contenait maintenant certaines commandes intégrées, ce qui signifie qu'il n'avait pas besoin de tout transmettre aux utilitaires externes, ce qui le rend plus efficace. La coquille de Bourne a même soutenu "Voici des documents", un moyen élégant d'automatiser l'envoi de données dans des commandes.
La coquille de Bourne leva la barre et est devenue la nouvelle norme.
EN RELATION: Comment utiliser "ici Documents" à Bash sur Linux
La naissance de bash
En 1984, quand le Projet GNU annoncé son intention de faire un cloné unix gratuit écrit de la terre et avec un Nouveau licenciement permissive -L'équipe avait besoin d'une coquille. Lorsqu'un volontaire qui travaillait sur une coquille pour le projet GNU n'a pas répété à plusieurs reprises quelque chose du tout, Renard brian était chargé d'écrire un clone de la coquille de Bourne.
Il a été surnommé le Bourne à nouveau shell , ou bash. C'était en partie en hommage à Stephen Bourne et en partie de jeu de mots pour le souci de celui-ci. Après sa sortie en 1989, Chet Ramey contribué à des corrections de bugs à Bash. Il est finalement devenu un co-mainteneur de la coquille bash. De nos jours, il est toujours le responsable du projet Bash.
Linus Torvalds
, le créateur du noyau Linux, a déclaré que les deux premiers programmes qu'il couraient sur son nouveau noyau en 1991 étaient bash et
gcc
,
Compilateur de GNU
. Le jumelage des utilitaires GNU avec le noyau Linux était mutuellement bénéfique. Le système d'exploitation GNU avait besoin d'un noyau et le noyau Linux avait besoin de tout ce qui constitue un clone Unix.
Étant donné que Bash est la coque GNU standard, elle est devenue la coque standard sur toutes les distributions GNU / Linux. Linux a prospéré au point qu'il sous-tend maintenant un quantité étonnante du monde moderne . La coque Bash a également surfé sur cette vague de succès.
Bash incorpore et s'améliore sur le jeu de caractéristiques de la coquille de Bourne, mais il a également pris l'inspiration des autres obus, tels que le
C Shell
(
csh
) et le
Kornshell
(
ksh
). Par exemple, l'expansion de la tilde "
~
"À la valeur tenue dans le
$ Home
la variable d'environnement provient de la coquille C, et le
fc
commande qui invoque l'éditeur par défaut sur les commandes dans
l'historique de commandement
vient du Kornshell.
Bash introduit des fichiers de configuration tels que les fichiers ".bashrc" et ".bash_profile" . L'édition de ligne de commande sur bash surpassait de loin les capacités des coquilles précédentes. La manipulation de commandes précédemment exécutées dans l'historique de commandement était une version améliorée de la fonctionnalité de "Historique Bang" de Coques C. L'expansion de BRACE était une caractéristique qui manquait de la coquille de Bourne mise en œuvre à Bash en tant que surlerque de la fonctionnalité trouvée dans la coquille C. Les tableaux ont été améliorés en supprimant leurs limites de taille. Le paramètre expansion dans l'invite de commande permet aux utilisateurs de personnaliser leur invite de bash.
Le shell bash vise à être conforme à la POSIX P1003.2 / ISO 9945.2 Shell et Utilitaires la norme.
EN RELATION: Linux a-t-il tué commercial Unix commercial?
Pourquoi Bash est toujours important
Bash n'aurait pas pu avoir duré cette longueur de 30 ans - comme la coque Linux par défaut si elle n'était pas au travail. En raison de sa longue durée de vie et de la base d'utilisateurs massive, Bash est mature et très stable. Il existe de nombreuses autres coquillages disponibles, des anciens combattants comme la coquille C et le Kornshell aux coquilles plus récentes comme le
Z Shell (
zsh
)
et le
Coquille interactive amicale
(
poisson
). La coquille Z et la coquille de poisson ont certaines caractéristiques qui bash ne sont pas ainsi que de meilleures façons de réaliser certaines des mêmes choses qui frappent. Alors pourquoi Bash est-il toujours la coquille dominante?
Sur toutes les machines Linux, je n'ai jamais été appelée à administrer, je ne me souviens pas d'un seul qui n'avait pas de bash comme shell. Machines Unix, oui, mais Boîtes Linux, no. C'est bash à chaque fois. Cette familiarité vous permet de travailler rapidement et d'être efficace tout de suite. Vous savez déjà bash, donc il n'y a pas de courbe d'apprentissage. Vous ne recevez pas la hamcrung de minuscules différences de syntaxe qui vous entourez dans des cercles essayant de comprendre pourquoi quelque chose ne fonctionne pas. Temps passé à déterminer ce que l'incantation devrait être sur cette Shell est une heure morte, il est donc dans l'intérêt de l'entreprise client d'utiliser une coquille bien connue et largement utilisée.
L'utilisation d'une coquille qui est ou essaie très difficile d'être des questions confidentielles de POSIX à de nombreuses distributions Linux, mais ce qui compte davantage est la compatibilité avec les versions précédentes. Faire des changements susceptibles de casser les scripts existants est évidemment peu attrayant. Attrayant ou non, parfois, il vous suffit de mordre la balle. Le 3 septembre 1967, la Suède a échangé de la conduite à gauche pour conduire à droite. À 4h50, tout le trafic devait s'arrêter, se dirigeant lentement de l'autre côté de la route et s'arrête une fois de plus. À 5 h 00, la circulation pourrait continuer, avec tout le monde conduisant à droite.
Bash sera-t-il jamais remplacé?
Ce qui pourrait sembler inconcevable maintenant peut réellement arriver plus tard. À moins que nous voulions nous accrocher à la conviction que nous allons tous utiliser Bash jusqu'à ce que Doomsday, la vérité est probablement celle d'un jour, Bash sera remplacé par la coquille Linux par défaut, qu'il s'agisse de la coque Standard GNU ou non. Ou peut-être que ce sera bash, mais sera amélioré bien au-delà de la coquille que nous utilisons aujourd'hui. Mais tout ce qui prend la place des bash d'aujourd'hui devra être complètement compatible avec l'arrière ou la valeur de la bouleversement, quels que soient les avantages.
Ce n'est pas sans précédent. Depuis version 10.15 de macos , Apple a chuté de bash et a adopté la coquille Z comme coquille par défaut. Apple a des problèmes avec la licence publique générale GNU (GPL) V.3. Malheureusement, c'est la licence que Bash utilise. La dernière version de Bash publiée sous GPL V.2 était la version 3.2 de 2007. La version actuelle est 5.1. La pomme était presque une décennie et une moitié derrière. La seule façon dont Apple pourrait inclure une coque à jour sans passer à GPL V.3 consistait à se déplacer vers une coque différente. Apple, cela valait le bouleversement. (Cependant, vous pouvez toujours retourner à bash sur macos Si vous le préférez!)
Il y a un monde de différence entre un poste de travail d'utilisateur d'alimentation et un serveur Linux de ligne de ligne que vous devez administrer à distance sur une connexion SSH . Sur près de 1,5 million de serveurs hébergés d'Amazon EC2, Plus de 93% fonctionnent Linux . Près de 75% des serveurs Web courent Linux . Des organisations telles que Red Hat, Amazon et Google utilisent Linux en interne.
Il est difficile d'imaginer ce qui profite à une nouvelle coquille pourrait offrir que cela justifierait ce type de bouleversement mondial. C'est pourquoi Bash est cimenté en place.
Même Microsoft offre maintenant un moyen de Exécutez une coque Bash basée sur Linux sur Windows 10 !