O que ~ ~ representa?

27

O que ~$significa? Por exemplo:

user@ubuntu:~$

Até agora eu sei que o $sinal é um símbolo para um usuário comum. Se não me engano, roottenho #no final.

Eu também encontrei muitos comandos nos fóruns que começam com $:

$ sudo apt-get update 

Então, o que $realmente significa?

EDIT (28.01.2014):

Hoje me deparei com este vídeo que responde totalmente à minha pergunta de 8 meses atrás e decidiu compartilhá-la aqui :)

Noções básicas do BASH - https://www.youtube.com/watch?v=x73WTEltyHU

FEarBG
fonte

Respostas:

33

Os elementos ~e $são do prompt da linha de comandos . Isso indica que seu computador (ou mais exatamente, eu acho, o shell que você está executando) está aguardando a entrada do usuário. Ele está solicitando que você insira um comando.

O $é apenas um separador ou divisor. Ele separa o prompt de comando do comando a seguir. Quando as pessoas escrevem coisas como $ sudo apt-get update(seu exemplo), estão simplesmente dizendo que o comando, nesse caso sudo apt-get update, precisa ser digitado em um prompt de comando. A rigor, talvez, o $seja redundante nesse contexto.

Outros separadores podem ser usados ​​em outras situações. Por exemplo, #é usado para um shell raiz.

O ~(chamado 'til') é uma abreviação para o seu diretório pessoal. Quando aparece em um prompt de comando, por exemplo, user@hostame:~$indica que o diretório de trabalho atual é o diretório inicial. Portanto, se você executar o comando list ls, sem especificar nenhum diretório específico, ele listará o conteúdo do diretório inicial.

(A propósito $HOME,, não é um comando, como você sugere, mas uma variável de ambiente . Determina a localização do seu diretório pessoal. Você pode ver seu valor executando $ echo $HOME.)

camsolo
fonte
10
@FEarBG Acho que essa resposta falha em um pequeno aspecto: o prompt é completamente personalizável e é apenas uma decoração; você pode optar por ter um prompt vazio ou usar quaisquer símbolos que desejar (por exemplo, no meu computador, substituí $por `` 'como símbolo de prompt). Você pode alterar seu prompt, definindo a PS1variável de ambiente ao seu gosto.
Bakuriu
@Bakuriu Assumindo festança, é claro. Outras conchas podem ser diferentes.
a CVn 05/06
1
"A rigor, talvez, o dólar seja redundante nesse contexto." - Sim, é por isso que geralmente preferimos evitar a $necessidade (se houver cópias de log ou saídas de exemplo, por exemplo).
user98085
12

Tradicionalmente, um prompt de shell termina com $,% ou #. Se terminar com $, isso indica um shell compatível com o shell Bourne (como um shell POSIX, um shell Korn ou Bash). Se terminar com%, isso indica um shell C (csh ou tcsh). Se terminar com #, isso indica que o shell está sendo executado como a conta de superusuário do sistema (root).

Fonte : aqui

Mukund
fonte
em alguns sistemas (antigos, geralmente), você tem "#" até um usuário comum (talvez para mantê-lo em alerta ^^) ... ou seja, algumas conchas mais antigas não mudam o símbolo se você é root - vs- usuário regular.
precisa
10
  • ~ significa seu diretório inicial.
  • $é um separador para o seu sistema, vem do comando \$da página de manual.

Portanto, se você encontrar um comando que começa com $ele, apenas diz que nada deve ser adicionado antes disso.

user@ubuntu:~$

useré o nome de usuário com o qual você está conectado.
@é só dizer aqui está um link.
ubuntué o nome do sistema no qual você está conectado.
:~diz que você está no userdiretório inicial agora.
$vem da \$sequência de escape no $PS1. página de manual.

Mas tudo isso pode ser alterado lendo a página de manual. Obrigado @demure pela ajuda.

Alvar
fonte
2
Para ser mais específico, é a \$porção do $ PS1, que é projetado para mostrar $se não for root (caso contrário, será #) página homem exercem
recatada
@denure atualizou minha resposta, se você acha que pode melhorá-lo, faça-o.
Alvar
6

O $ assina o final do prompt no terminal quando você adiciona um comando como o que você mostrou, não digite o $ else, ele não funcionará.

Então, $ sudo apt-get update

seria digitado como:

sudo apt-get update 

Espero que ajude.

Editar

O ~ significa sua pasta Home, portanto name@pc_name:~/Desktop$mostraria que você está na pasta Home> Desktop.

SimplySimon
fonte
3
Talvez para mostrar que você deve inserir o comando no prompt.
precisa saber é o seguinte
4
E também para distinguir entre um comando executado por um usuário normal (no prompt $) vs. root (o prompt #).
coneslayer
@FEarBG: É uma convenção arbitrária, não relacionada (até onde eu saiba) ao uso de $para indicar um nome de variável. Existem apenas tantos caracteres imprimíveis disponíveis em um teclado. DOS e Windows usam >em prompts, o Unix geralmente usa $ou %. Ele diz "este é um aviso" sem desperdiçar espaço na tela (ou, antigamente, tinta e papel).
Keith Thompson
E, é claro, nas variáveis ​​de ambiente DOS e Windows, use %. Como você diz, é amplamente arbitrário; precisa haver algo , mas não precisa ser o mesmo em todos os lugares (embora seria bom se fosse).
a CVn