Qual é a origem do prompt do UNIX $ (dólar)?

83

O prompt do UNIX usa um $símbolo para indicar que sua entrada é esperada.

Fiquei me perguntando por que esse símbolo foi escolhido - se há uma razão. O dólar parece um pouco inesperado. Um >símbolo teria sido mais sugestivo na minha opinião.

Max Howell
fonte
3
Embora não relacionado à programação, certamente relacionado ao computador, portanto melhor no Super Usuário, eu acho.
194 Joey
Também quero saber a resposta. Vou procurá-lo no SU.
22715 Gabriel Hurley
24
É o prompt do shell Bourne, não o prompt do Unix. O prompt csh padrão é%.
Wfaulk 20/10/09
1
wfaulk, gostaria de poder votar seu comentário mais de uma vez.
22615 Richie Marquez
18
€ ainda não existia ...
mouviciel 20/10/2009

Respostas:

59

Vamos explorar um pouco:

  • Versão 8 Unix é fácil. Ainda há páginas de manual disponíveis. Vá para a página sh man e procure por prompt. Você chegará a um ponto em que você lê:

    Sequência de prompt primário do PS1, por padrão "$".

    Sequência de prompt secundário do PS2, por padrão “>”.

  • Então, vamos ver se esse foi o primeiro. As páginas de manual do Unix da versão 7 ainda estão disponíveis, e a shpágina de manual fornece a mesma descrição de avisos da Versão 8.

  • E a versão 6? Versão 6 Unix não era difícil de rastrear. Mas sua sh página de manual não menciona avisos. O guia "Introdução" é útil aqui; ele menciona :

    O ponto culminante dos seus esforços de login é um sinal de porcentagem "%". O sinal de porcentagem significa que o UNIX está pronto para aceitar comandos do terminal.

Aha! Portanto, a versão 6 não tinha. A versão 7 foi a primeira! Lançado em 1979.

Feliz? Odeie chover em seu desfile, mas não fique :)

O problema é que a versão 6 foi um Unix inspirador. Veja as variantes aqui . Pode ser que o sinal $ como um prompt de comando não tenha sido iniciado na Versão 7, mas em uma dessas variantes e depois a ideia tenha sido incorporada à 7?

Neste ponto, eu me cansei de procurar documentação de sistemas operacionais a partir de um momento em que eu tinha 6 anos. Isso pelo menos a reduz consideravelmente. Sabemos que a versão 7 foi o primeiro lançamento do Bell Labs a mostrar o sinal $ como um prompt de comando. Tudo o que precisamos ter certeza é que nenhuma dessas variantes da versão 6 o introduziu. Faz sentido que essa alteração tenha aparecido na versão 7, já que esse foi o lançamento que introduziu o shell Bourne, substituindo o shell Thompson usado nas versões anteriores do Unix (e o shell Massey usado no Workbench Unix do Programmer).

Porém, um último pensamento:
embora a idéia de $ ser uma dica para a palavra shell ou script seja atraente e faça todo o sentido, não espere que isso seja oficialmente confirmado. O desenvolvimento do Unix foi compartilhado por um grupo bastante grande de pessoas com preocupações muito maiores na vida do que acompanhar como um símbolo evoluiu. E alguns desses programadores extraordinários não estão mais entre nós.

Muito provavelmente, o melhor que você pode esperar da pergunta "Qual é a origem do prompt do UNIX $ (dólar)?" é o nome do primeiro shell Unix que o introduziu.

Um anão
fonte
4
A versão 7 foi o primeiro Unix com o shell Bourne. Ele substituiu o shell Thompson na versão 6. Portanto, esse delineamento entre os prompts do shell faz sentido.
Wfaulk 20/10/09
1
Sim. Nós podemos rastrear isso até o Bourne Shell. Quanto ao autor, não há dúvida sobre isso. Mas ele era funcionário da Bell Labs, como todo mundo.
Um anão
1
Além disso, havia páginas man, pelo menos, já em versão 3: minnie.tuhs.org/UnixTree/V3/usr/man/man1
wfaulk
2
Nos dias da sexta edição e antes, o UNIX era distribuído com o código fonte completo incluído. Todas as universidades que obtiveram a tendência tendiam a fazer modificações locais (é daí que o BSD veio), então talvez um programador de sistemas local da Universidade de Waterloo tenha em mente que um prompt "shell" deva parecer mais um caracol e altere o% para @ . E, como você diz, havia muitas variantes e, quando elas foram reunidas novamente na v7, sem dúvida as origens das mudanças já eram imprecisas.
22715 Michael Dillon
3
Uma possível fonte de inspiração para Bourne: o manual MTS FORTRAN-IV / WATFIV de 1978 descreve a entrada do cartão perfurado: "cartões de controle" incluem "comandos ... que sempre começam com um sinal de dólar ($) na coluna 1."
Cxw #
9

O prompt original do shell Bourne era um shell de caracol, "@". Lembro-me disso na 6ª edição do UNIX, que acredito, antes do UNIX ser vendido comercialmente. Portanto, a mudança para um sinal $ pode estar relacionada à comercialização do UNIX, como Robert sugeriu, $ hell.

Michael Dillon
fonte
3
O shell Bourne não existia até versão 7.
wfaulk
2
Bem, nós apenas chamamos de "casca", então eu realmente não sei quem a escreveu. Lembro-me de ver cartazes com todos os comandos de concha documentados, dispostos em espiral como uma concha de caracol ou em sinalização. Talvez fosse de O'Reilly, mas não tenho certeza.
22711 Michael Dillon
8

Na verdade, o prompt de linha de comando padrão no Linux para uma conta de usuário normal usando shell Bourne, Bash ou Korn é o cifrão ($) enquanto o prompt raiz é uma marca de hash (#). Por outro lado, o prompt do shell C tradicional é um sinal de porcentagem (%).

Se eu fosse adivinhar, o $ é uma reminiscência da palavra $ hell, provavelmente a razão pela qual foi escolhida.

Robert Harvey
fonte
4
Ele está pedindo a origem real, não o que as pessoas acham que pode ser.
davr
6
Não fique irritado. A julgar pelas outras respostas postadas aqui, parece que ninguém realmente sabe ao certo de qualquer maneira.
21711 Robert Harvey
1
Eu acho que o prompt raiz # foi escolhido para coincidir com o caractere de comentário, reduzindo as chances de colar acidentalmente comandos perigosos ... ou talvez não! Eu não acho que eles tinham muito como recortar e colar naquele dia.
Sam Watkins
Pelo que vale, essa foi a resposta que eu estava procurando, porque nunca me lembro qual é qual.
John Leidegren
2

Atenção: isso pode não ser verdade, é apenas um palpite:

Eu tenho um sentimento que $é um lembrete psicológico.

Temos que lembrar que naquela época não havia um aviso digital, apenas um "teletipo" de papel ( tty). E provavelmente o dólar dizia "você está desperdiçando papel e dinheiro mantendo essa linha telefônica. Basta digitar alguns comandos já !!".

Vikram Durai
fonte