Cosa significa ~ $?


27

Cosa significa ~$? Per esempio:

user@ubuntu:~$

Finora so che il $segno è un simbolo per un utente normale. Se non sbaglio roothanno #alla fine.

Ho anche trovato molti comandi nei forum che iniziano con $:

$ sudo apt-get update 

Quindi per cosa rappresenta $effettivamente?

MODIFICA (28.01.2014):

Oggi mi sono imbattuto in questo video che risponde totalmente alla mia domanda di 8 mesi fa e ho deciso di condividerlo qui :)

Nozioni di base di BASH - https://www.youtube.com/watch?v=x73WTEltyHU

Risposte:


33

Gli elementi ~e $sono del prompt della riga di comando . Ciò indica che il tuo computer (o più esattamente, immagino, la shell che stai eseguendo) è in attesa di input da parte dell'utente. Ti sta chiedendo di inserire un comando.

L' $è solo un separatore o divisore. Separa il prompt dei comandi dal comando che lo segue. Quando le persone scrivono cose come $ sudo apt-get update(il tuo esempio), ti stanno semplicemente dicendo che il comando, in questo caso sudo apt-get update, deve essere inserito al prompt dei comandi. A rigor di termini, forse, $è ridondante in questo contesto.

Altri separatori possono essere utilizzati in altre situazioni. Ad esempio, #viene utilizzato per una shell di root.

La ~(chiamata 'tilde') è una scorciatoia per la tua directory home. Quando appare in un prompt dei comandi, ad esempio, user@hostame:~$indica che la directory di lavoro corrente è la directory principale. Pertanto, se si esegue il comando list ls, senza specificare alcuna directory particolare, verranno elencati i contenuti della directory home.

(A proposito, $HOMEnon è un comando, come suggerisci, ma piuttosto una variabile d'ambiente . Determina la posizione della tua home directory. Puoi vederne il valore eseguendo $ echo $HOME.)


10
@FEarBG Penso che questa risposta fallisca in un piccolo aspetto: il prompt è completamente personalizzabile ed è solo una decorazione; potresti decidere di avere un prompt vuoto o utilizzare qualsiasi simbolo ti piaccia (ad es. sul mio computer ho sostituito $con `̃∴` come simbolo di prompt). È possibile modificare la richiesta impostando la PS1variabile di ambiente a proprio piacimento.
Bakuriu,

@Bakuriu Supponendo bash, ovviamente. Altre conchiglie POSSONO essere diverse.
un CVn

1
"A rigor di termini, forse, $ è ridondante in questo contesto." - Sì, è per questo che generalmente preferiamo evitare il $caso in cui non ce n'è bisogno (ad esempio per copie di log o output di esempio).
user98085

12

Tradizionalmente, un prompt della shell termina con $,% o #. Se termina con $, questo indica una shell compatibile con la shell Bourne (come una shell POSIX, una shell Korn o Bash). Se termina con%, questo indica una shell C (csh o tcsh). Se termina con #, ciò indica che la shell è in esecuzione come account superutente del sistema (root).

Fonte : qui


su alcuni sistemi (vecchi, di solito), hai "#" anche come utente normale (forse per tenerti in punta di piedi ^^) ... cioè, alcune shell più vecchie non cambiano il simbolo se sei root - vs- utente normale.
Olivier Dulac il


10
  • ~ sta per home directory.
  • $è un separatore per il tuo sistema, viene dal comando \$dalla pagina man.

Quindi, se trovi un comando che inizia con $questo, dice semplicemente che non dovrebbe essere aggiunto nulla prima di quello.

user@ubuntu:~$

userè il nome utente con cui hai effettuato l'accesso.
@è solo per dire che qui è un link.
ubuntuè il nome del sistema con cui si è effettuato l'accesso.
:~dice che ora sei nella userhome directory.
$deriva dalla \$sequenza di escape in $PS1. pagina man.

Ma tutto ciò può essere cambiato leggendo nella pagina man. Grazie @demure per l'aiuto.


2
Per essere precisi, è la \$porzione di $ PS1, che è progettata per mostrare $se non root (altrimenti sarà #) man page esercita
demure

@denure ha aggiornato la mia risposta, se ritieni di poterlo migliorare, per favore fallo.
Alvar,

6

$ Lo indica alla fine del prompt nel terminale quando aggiungi un comando come quello che hai mostrato, non digita $ altrimenti non funzionerà.

Quindi $ sudo apt-get update

verrebbe inserito come:

sudo apt-get update 

Spero che sia d'aiuto.

modificare

Il ~ sta per la tua cartella Home quindi name@pc_name:~/Desktop$mostrerebbe che sei nella cartella Home> Desktop.


3
Forse per mostrare che è necessario immettere il comando al prompt.
SimplySimon

4
E anche per distinguere tra un comando eseguito da un normale utente (al prompt $ prompt) rispetto a root (il prompt #).
Coneslayer

@FEarBG: è una convenzione arbitraria, non correlata (per quanto ne so) all'uso di $per indicare un nome di variabile. Ci sono solo tanti caratteri stampabili disponibili su una tastiera. DOS e Windows usano >nei prompt, Unix di solito usa $o %. Ti dice "questo è un prompt" senza sprecare spazio sullo schermo (o, ai vecchi tempi, inchiostro e carta).
Keith Thompson,

E, naturalmente, in DOS e Windows usano le variabili d'ambiente %. Come dici tu, è in gran parte arbitrario; c'è praticamente bisogno di essere qualcosa , ma non deve essere lo stesso ovunque (anche se sarebbe carino se fosse).
un CVn
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.