Каково происхождение приглашения UNIX $ (доллар)?


83

В приглашении UNIX используется $символ, указывающий, что ваш ввод ожидается.

Мне было интересно, почему этот символ был выбран - если есть причина. Доллар просто кажется немного неожиданным. >Символ был бы более наводит на мысль , на мой взгляд.


3
Хотя это и не связано с программированием, конечно, с компьютером, поэтому, я думаю, лучше в Super User.
Джои

Я тоже хочу знать ответ. Я поищу это на СУ.
Габриэль Херли

24
Это приглашение оболочки Bourne, а не приглашение Unix. Приглашение csh по умолчанию -%.
wfaulk

1
wfaulk, я хотел бы, чтобы я мог поднять ваш комментарий более одного раза.
Ричи Маркес

18
€ еще не было ...
mouviciel

Ответы:


59

Давайте рассмотрим немного:

  • Версия 8 Unix это просто. Все еще доступны справочные страницы. Перейдите на страницу man sh и найдите подсказку. Вы попадете в точку, где вы читаете:

    PS1 Основная строка приглашения, по умолчанию «$».

    PS2 Вторичная строка приглашения, по умолчанию «>».

  • Итак, давайте посмотрим, было ли это первым. Справочные страницы Unix версии 7 по-прежнему доступны, а на shсправочной странице приведено то же описание приглашений, что и в версии 8.

  • А как насчет версии 6? Версию 6 Unix было не сложно отследить. Но на его sh странице руководства вообще не упоминаются подсказки. Руководство «Начало работы» пригодится здесь; это упоминает :

    Кульминацией ваших попыток входа в систему является знак процента «%». Знак процента означает, что UNIX готов принимать команды от терминала.

Ага! Так что версия 6 не имела его. Версия 7 была первой! Освобожден в 1979 году.

Счастливый? Ненавижу дождь на вашем параде, но не надо :)

Проблема в том, что версия 6 была одним из вдохновляющих Unix. Посмотрите на варианты здесь . Может ли быть так, что знак $ как командная строка был запущен не в Версии 7, а в одном из этих вариантов, а затем в 7?

В этот момент я устал от поиска документации по операционной системе с того времени, когда мне было 6. Это, по крайней мере, значительно сужает ее. Мы знаем, что версия 7 была первым выпуском Bell Labs, в котором в качестве командной строки отображался знак $. Все, что мы должны быть уверены, это то, что ни один из этих вариантов Версии 6 не представил его. Имеет смысл, чтобы это изменение появилось в Версии 7, хотя, поскольку это релиз, который представил оболочку Bourne, заменил оболочку Thompson, использовавшуюся в предыдущих версиях Unix (и оболочку Massey, использовавшуюся в Unix программиста Workbench).

Впрочем, еще одна мысль:
хотя идея $, являющаяся намеком на слово shell или скрипт, привлекательна и имеет смысл, не ожидайте, что это когда-либо будет официально подтверждено. Разработкой Unix поделилась довольно большая группа людей, у которых в жизни гораздо больше проблем, чем отслеживание эволюции символа. И некоторых из этих выдающихся программистов уже нет среди нас.

Скорее всего, лучшее, что вы можете надеяться получить от вопроса "Каково происхождение приглашения UNIX $ (доллар)?" это имя первой оболочки Unix, представляющей его.


4
Версия 7 была первым Unix с оболочкой Bourne. Он заменил оболочку Томпсона в Версии 6. Таким образом, разграничение между приглашениями оболочки имеет смысл.
wfaulk

1
Ага. Мы в значительной степени можем проследить это до Shell Bourne. Что касается автора, в этом нет сомнений. Но он был сотрудником Bell Labs, как и все остальные.
Гном

1
Также были страницы руководства
wfaulk

2
В шестое издание и ранее UNIX распространялся с полным исходным кодом. Все университеты, которые получили его, как правило, делали локальные модификации (отсюда и появился BSD), так что, возможно, какой-то местный системный программист в Университете Ватерлоо, хотя подсказка «shell» должна выглядеть больше как улитка, и изменил% на @. , И, как вы говорите, было много вариантов, и когда они были собраны вместе в v7, без сомнения, происхождение изменений было уже нечетким.
Майкл Диллон

3
Возможный источник вдохновения для Bourne: руководство MTS FORTRAN-IV / WATFIV от 1978 года описывает ввод перфокарты: «контрольные карты» включают «команды ... которые всегда начинаются со знака доллара ($) в столбце 1».
cxw

9

Исходная подсказка оболочки Bourne представляла собой оболочку улитки "@". Я помню это в UNIX 6th edition, которая, я полагаю, еще до того, как UNIX была продана в коммерческих целях. Таким образом, переход на знак $ может быть связан с коммерциализацией UNIX, как предположил Роберт, $ hell.



2
Ну, мы просто назвали это «оболочкой», поэтому я не знаю, кто это написал. Я помню, как видел плакаты со всеми зафиксированными на них командами оболочки, расположенными по спирали, как улитка или знак. Может быть, это было от О'Рейли, но я не уверен.
Майкл Диллон

8

На самом деле, стандартное приглашение командной строки в Linux для обычной учетной записи пользователя, использующего оболочку Bourne, Bash или Korn, представляет собой знак доллара ($), а корневое приглашение - хеш-знак (#). В отличие от традиционного приглашения оболочки C является знак процента (%).

Если бы я догадался, $ напоминает слово $ ад, вероятно, поэтому оно было выбрано.


4
Он спрашивает об истинном происхождении, а не о том, что люди предполагают, что это может быть.
Davr

6
Не становись язвительным. Судя по другим ответам, опубликованным здесь, похоже, что никто не знает наверняка так или иначе.
Роберт Харви

1
Я предполагаю, что корневая подсказка # выбрана так, чтобы она совпадала с символом комментария, уменьшая вероятность случайного вставления опасных команд ... или, возможно, нет! Я не думаю, что у них было много способов вырезать и вставить назад в тот день.
Сэм Уоткинс

Для чего это стоит, это был ответ, который я искал, потому что я никогда не могу вспомнить, что есть что.
Джон Лейдгрен

7

К сожалению, я не могу ответить на вопрос, но я могу дать вам несколько советов.


2

Внимание: это не может быть правдой, это просто дикая догадка:

У меня такое чувство, что $это психологическое напоминание.

Мы должны помнить, что тогда не было цифровой подсказки, только бумажный «телетайп» ( tty). И, вероятно, доллар должен был сказать: «Вы тратите бумагу и деньги, поддерживая эту телефонную линию. Просто введите некоторые команды уже !!».

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.