Quelle est l'origine de l'invite UNIX $ (dollar)?

83

L'invite UNIX utilise un $symbole pour indiquer que votre entrée est attendue.

Je me demandais pourquoi ce symbole avait été choisi - s'il y avait une raison. Le dollar semble juste un peu inattendu. Un >symbole aurait été plus suggestif à mon avis.

Max Howell
la source
3
Bien que ce ne soit pas lié à la programmation, certainement à l’informatique, donc meilleur chez Super User, je pense.
Joey
Je veux aussi connaître la réponse. Je vais le chercher sur SU.
Gabriel Hurley
24
C'est l'invite du shell Bourne, pas l'invite Unix. L'invite csh par défaut est%.
wfaulk
1
wfaulk, j'aimerais pouvoir inverser votre commentaire plus d'une fois.
Richie Marquez
18
€ n'existait pas encore ...
mouviciel

Réponses:

59

Explorons un peu:

  • La version 8 Unix est facile. Il y a encore des pages de manuel disponibles. Accédez à la page de manuel sh et recherchez prompt. Vous arriverez à un point où vous lisez:

    PS1 Chaîne d'invite principale, par défaut «$».

    PS2 Chaîne d'invite secondaire, par défaut “>”.

  • Voyons donc si c'était le premier. Les pages de manuel Unix de la version 7 sont toujours disponibles et la shpage de manuel décrit les invites de la même façon que la version 8.

  • Qu'en est-il de la version 6? La version 6 d'Unix n'était pas difficile à suivre. Mais sa sh page de manuel ne mentionne pas du tout les invites. Le guide «Pour commencer» est très utile ici; il mentionne :

    Le point culminant de vos efforts de connexion est un signe de pourcentage «%». Le signe de pourcentage signifie que UNIX est prêt à accepter les commandes du terminal.

Aha! Donc, la version 6 ne l'avait pas. La version 7 était la première! Sorti en 1979.

Content? La haine de pleuvoir sur votre parade, mais ne soyez pas :)

Le problème est que la version 6 était un Unix inspirant. Regardez les variantes ici . Est-il possible que le signe $ en tant qu'invite de commande n'ait pas été démarré dans la version 7, mais plutôt dans l'une de ces variantes, puis dans l'idée 7?

À ce stade, j'étais fatigué de chercher de la documentation sur les systèmes d'exploitation à une époque où j'avais 6 ans. Cela permet au moins de la réduire considérablement. Nous savons que la version 7 a été la première version de Bell Labs à afficher le signe $ comme une invite de commande. Tout ce dont nous avons besoin pour être sûr, c'est qu'aucune de ces variantes de la version 6 ne l'a introduite. Il est logique que ce changement soit apparu dans la version 7, car il s'agit de la version qui introduit le shell Bourne, qui remplace le shell Thompson utilisé dans les versions précédentes d'Unix (et le shell Massey utilisé dans Programmer's Workbench Unix).

Une dernière pensée cependant: bien
que l’idée que $ soit un indice pour le mot shell ou le script est séduisante et a tout son sens, ne vous attendez pas à ce que cela soit confirmé officiellement. Le développement Unix était partagé par un groupe assez important de personnes ayant des préoccupations bien plus grandes dans la vie que de suivre l'évolution d'un symbole. Et certains de ces programmeurs extraordinaires ne sont même plus parmi nous.

Très probablement, le mieux que vous puissiez espérer de la question "Quelle est l'origine de l'invite UNIX $ (dollar)?" est le nom du premier shell Unix l’ayant introduit.

Un nain
la source
4
La version 7 était le premier Unix avec le shell Bourne. Il a remplacé le shell Thompson dans la version 6. Il est donc logique qu’il soit délimité entre les invites du shell.
wfaulk
1
Ouaip. Nous pouvons à peu près le retrouver dans le Bourne Shell. Quant à l'auteur, pas de doute. Mais il était un employé des Bell Labs comme tout le monde.
Un nain
1
En outre, il y avait des pages de manuel au moins aussi anciennes
wfaulk
2
À l'époque de la sixième édition et avant, UNIX était distribué avec le code source complet. Toutes les universités qui l’ont obtenu ont tendance à faire des modifications locales (c’est d’où BSD). Alors peut-être un programmeur système local de l’Université de Waterloo alors qu’une invite «shell» devrait plutôt ressembler à un escargot et a changé le%. . Et comme vous le dites, il y avait beaucoup de variantes, et quand elles ont été rassemblées dans la v7, il ne fait aucun doute que l'origine des changements était déjà floue.
Michael Dillon
3
Une source d’inspiration possible pour Bourne: le manuel de MTS FORTRAN-IV / WATFIV de 1978 décrit l’entrée avec une carte perforée: les "cartes de contrôle" incluent des "commandes ... commençant toujours par un signe dollar ($) dans la colonne 1."
cxw
9

L'invite d'origine du shell Bourne était un shell escargot, "@". Je me souviens de cette sixième édition d'UNIX qui, je crois, est antérieure à la vente commerciale d'UNIX. Le passage à un signe $ pourrait donc être lié à la commercialisation d'UNIX, comme l'a suggéré Robert, $ hell.

Michael Dillon
la source
3
Le shell Bourne n'existait pas avant la version 7.
wfaulk
2
Eh bien, nous venons d'appeler ça "la coquille", donc je ne sais pas vraiment qui l'a écrit. Je me souviens avoir vu des affiches avec toutes les commandes de coquillages documentées, disposées en spirale comme une coquille d’escargot ou un signe. C'était peut-être de O'Reilly mais je ne peux pas en être sûr.
Michael Dillon
8

En fait, l’invite standard de ligne de commande sous Linux pour un compte utilisateur normal utilisant un shell Bourne, Bash ou Korn est le signe dollar ($), tandis que l’invite racine est un signe dièse (#). En revanche, l'invite traditionnelle du shell C est un signe de pourcentage (%).

Si je devais deviner, le $ rappelle le mot $ enfer, ce qui explique probablement pourquoi il a été choisi.

Robert Harvey
la source
4
Il demande quelle est l'origine réelle et non ce que les gens pourraient deviner.
davr
6
Ne sois pas sarcastique. À en juger par les autres réponses publiées ici, il semble que personne ne le sache vraiment de toute façon.
Robert Harvey
1
Je suppose que l'invite racine # est tellement choisie pour coïncider avec le caractère de commentaire, ce qui réduit les risques de coller accidentellement des commandes dangereuses ... ou peut-être pas! Je ne pense pas qu'ils avaient beaucoup de couper-coller dans la journée.
Sam Watkins
Pour ce qu’elle vaut, c’était la réponse que je cherchais car je ne me souviens jamais laquelle est laquelle.
John Leidegren
2

Attention: cela peut ne pas être vrai, c'est juste une supposition sauvage:

J'ai l'impression que $c'est un rappel psychologique.

Nous devons nous rappeler qu’à l’époque, il n’y avait pas d’invite numérique, il n’y avait qu’un «télétype» papier ( tty). Et probablement le dollar disait: "vous gaspillez du papier et de l'argent en gardant ce téléphone en ligne. Il vous suffit d'entrer des commandes déjà !!".

Vikram Durai
la source