web-dev-qa-db-fra.com

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

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.

76
Max Howell

Explorons un peu:

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

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

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

  • Voyons donc si c'était le premier. Les pages de manuel de la version 7 Unix sont toujours disponibles et la page de manuel sh donne la même description des invites. comme version 8.

  • Qu'en est-il de la version 6? La version 6 d'Unix n'était pas difficile à suivre. Mais , sa page de manuel sh ne mentionne aucune invite. 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! Parue en 1979.

Heureux? 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 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 $ sous la forme d’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 c’est la version qui a introduit Bourne Shell, remplaçant le shell Thompson utilisé dans les versions précédentes d’Unix (et le Massey Shell utilisé dans Programmer's Workbench Unix).

Une dernière pensée cependant:
Bien que l'idée de $ soit un indice pour le shell ou le script Word est attrayante et a tout son sens, ne vous attendez pas à ce que cela soit officiellement confirmé. 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 obtenir de la question "Quelle est l'origine du message d'erreur $ UNIX $ (dollar)?" est le nom du premier shell Unix qui l’a introduit.

55
A Dwarf

L'invite d'origine Bourne Shell é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.

8
Michael Dillon

Malheureusement, je ne peux pas répondre à la question, mais je peux vous donner quelques indications.

7
wfaulk

En fait, l'invite de ligne de commande standard sous Linux pour un compte utilisateur normal utilisant Bourne, Bash ou Korn Shell 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 celui de Word $ hell, ce qui explique probablement pourquoi il a été choisi.

6
Robert Harvey

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

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

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

1
Vikram Durai