Jakie jest pochodzenie zachęty UNIX $ (dolar)?


77

Monit UNIX używa $symbolu, aby wskazać, że dane wejściowe są oczekiwane.

Zastanawiałem się, dlaczego ten symbol został wybrany - jeśli jest ku temu powód. Dolar wydaje się trochę nieoczekiwany. >Symbol byłby bardziej sugestywny moim zdaniem.


3
Chociaż nie związane z programowaniem, z pewnością związane z komputerem, dlatego myślę, że lepiej w Super User.
Joey,

Ja też chcę znać odpowiedź. Poszukam tego na SU.
Gabriel Hurley,

23
To monit powłoki Bourne'a, a nie Unix. Domyślny monit csh to%.
wfaulk

1
wfaulk, chciałbym móc wypowiedzieć się na temat twojego komentarza więcej niż raz.
Richie Marquez,

17
€ jeszcze nie istniało ...
mouviciel

Odpowiedzi:


54

Zobaczmy trochę:

  • Wersja 8 Unix jest łatwa. Wciąż dostępne są strony podręcznika man. Przejdź na stronę podręcznika użytkownika i wyszukaj monit. Dojdziesz do punktu, w którym przeczytasz:

    PS1 Podstawowy ciąg monitów, domyślnie „$”.

    PS2 Drugi ciąg monitów, domyślnie „>”.

  • Zobaczmy więc, czy to był pierwszy. Strony podręcznika uniksowego w wersji 7 są nadal dostępne, a strona podręcznika zawiera taki sam opis monitów jak wersja 8.sh

  • Co z wersją 6? Wersja 6 Unix nie była trudna do wyśledzenia. Ale jego sh strona podręcznika w ogóle nie wspomina o podpowiedziach. Przydaje się przewodnik „Pierwsze kroki” ; to wspomina :

    Kulminacją wysiłków związanych z logowaniem jest znak procentu „%”. Znak procentu oznacza, że ​​UNIX jest gotowy do przyjmowania poleceń z terminala.

Aha! Więc wersja 6 tego nie miała. Wersja 7 była pierwsza! Wydany w 1979 roku.

Szczęśliwy? Nienawidzę padać na twojej paradzie, ale nie bądź :)

Problem w tym, że wersja 6 była jednym z inspirujących Uniksów. Spójrz na warianty tutaj . Czy to możliwe, że znak $ jako wiersz polecenia nie został uruchomiony w wersji 7, ale zamiast tego w jednym z tych wariantów, a następnie pomysł został włączony do 7?

W tym momencie miałem już dość polowania na dokumentację systemów operacyjnych od czasu, gdy miałem 6 lat. To przynajmniej znacznie ją zawęża. Wiemy, że wersja 7 była pierwszą wersją Bell Labs, która wyświetlała znak $ jako wiersz polecenia. Musimy tylko upewnić się, że żaden z tych wariantów wersji 6 go nie wprowadził. Sensowne jest, aby ta zmiana pojawiła się w wersji 7, ponieważ jest to wydanie, które wprowadziło powłokę Bourne'a, zastępując powłokę Thompson używaną we wcześniejszych wersjach Uniksa (i powłokę Massey używaną w Programmer's Workbench Unix).

Ostatnia myśl:
Chociaż pomysł, by $ był wskazówką dla słowa shell lub skrypt, jest atrakcyjny i ma sens, nie oczekuj, że zostanie to kiedykolwiek potwierdzone. Rozwój uniksowy był podzielany przez dość dużą grupę ludzi o znacznie większych obawach życiowych niż śledzenie ewolucji symbolu. A niektórych z tych niezwykłych programistów już nie ma wśród nas.

Najprawdopodobniej najlepsze, co możesz mieć na pytanie „Jakie jest pochodzenie zachęty UNIX $ (dolar)?” to nazwa pierwszej powłoki uniksowej, która go wprowadza.


4
Wersja 7 była pierwszym Uniksem z powłoką Bourne'a. Zastąpił on powłokę Thompson w wersji 6. Zatem jest to podział między podpowiedziami powłoki.
wfaulk

1
Tak. Prawie możemy prześledzić to do powłoki Bourne'a. Co do autora, nie ma co do tego wątpliwości. Ale był pracownikiem Bell Labs, tak jak wszyscy inni.
Dwarf

1
Były też strony podręcznika
wfaulk,

2
Jeszcze w dniach szóstej edycji UNIX był rozpowszechniany z pełnym kodem źródłowym. Wszystkie uniwersytety, które go dostały, miały tendencję do dokonywania lokalnych modyfikacji (stąd pochodzi BSD), więc być może jakiś programista systemów lokalnych na University of Waterloo, chociaż monit „powłoki” powinien wyglądać bardziej jak ślimak i zmienił% na @ . I jak mówisz, było wiele wariantów, a kiedy zostały one zestawione razem w wersji 7, bez wątpienia początki zmian były już rozmyte.
Michael Dillon,

3
Możliwe źródło inspiracji dla Bourne'a: ​​w podręczniku MTS FORTRAN-IV / WATFIV z 1978 r. Opisano wprowadzanie kart dziurkacza: „karty kontrolne” obejmują „polecenia…, które zawsze zaczynają się od znaku dolara ($) w kolumnie 1.”
cxw

8

Pierwotna zachęta powłoki Bourne'a była skorupą ślimaka „@”. Pamiętam to w 6. edycji UNIX, która, jak sądzę, jest zanim UNIX został sprzedany na rynku. Tak więc przejście na znak $ może być związane z komercjalizacją systemu UNIX, jak sugerował Robert, $ hell.


3
Powłoka Bourne'a istniała dopiero w wersji 7.
wfaulk,

2
Właśnie nazwaliśmy to „powłoką”, więc tak naprawdę nie wiem, kto to napisał. Pamiętam, jak widziałem plakaty z udokumentowanymi wszystkimi poleceniami powłoki ułożonymi spiralnie jak skorupa ślimaka lub znak. Może to od O'Reilly, ale nie jestem pewien.
Michael Dillon,


6

W rzeczywistości standardowym wierszem poleceń w systemie Linux dla zwykłego konta użytkownika używającego powłoki Bourne, Bash lub Korna jest znak dolara ($), podczas gdy wiersz root to znak krzyżyka (#). Natomiast tradycyjny monit powłoki C to znak procentu (%).

Jeśli miałbym zgadywać, $ przypomina słowo $ hell, i prawdopodobnie dlatego zostało wybrane.


4
Pyta o rzeczywiste pochodzenie, a nie o to, jak sądzą ludzie.
davr,

6
Nie denerwuj się. Sądząc z innych opublikowanych tutaj odpowiedzi, wydaje się, że nikt tak naprawdę nie ma pewności.
Robert Harvey,

1
Wydaje mi się, że podpowiedź root # została tak wybrana, aby pokrywała się z postacią komentarza, zmniejszając ryzyko przypadkowego wklejenia niebezpiecznych poleceń ... a może nie! Nie sądzę, żeby mieli wiele na drodze do wycinania i wklejania w ciągu dnia.
Sam Watkins

O ile warto, to była odpowiedź, której szukałem, ponieważ nigdy nie pamiętam, która jest która.
John Leidegren,

1

Uwaga: to może nie być prawda, to tylko dzikie przypuszczenie:

Mam wrażenie, że $jest to przypomnienie psychologiczne.

Musimy pamiętać, że wtedy nie było monitu cyfrowego, tylko papierowy „typ teletechniczny” ( tty). I prawdopodobnie dolar miał powiedzieć „marnujesz papier i pieniądze utrzymując tę ​​linię telefoniczną. Po prostu wpisz kilka poleceń już !!”.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.