Que signifie ~ $?

27

Qu'est - ce que ~$veut dire? Par exemple:

user@ubuntu:~$

Jusqu'à présent, je sais que le $signe est un symbole pour un utilisateur régulier. Si je ne me trompe rootpas #à la fin.

J'ai également trouvé beaucoup de commandes dans les forums qui commencent par $:

$ sudo apt-get update 

Alors, qu'est-ce que cela signifie $réellement?

EDIT (28.01.2014):

Aujourd'hui, je suis tombé sur cette vidéo qui répond totalement à ma question d'il y a 8 mois et j'ai décidé de la partager ici :)

BASH Basics - https://www.youtube.com/watch?v=x73WTEltyHU

FEarBG
la source

Réponses:

33

Le ~et $sont des éléments de l' invite de ligne de commande . Cela indique que votre ordinateur (ou plus exactement, je suppose, le shell que vous exécutez) attend la saisie de l'utilisateur. Il vous invite à saisir une commande.

Le $est simplement un séparateur ou un séparateur. Il sépare l'invite de commande de la commande qui la suit. Lorsque les gens écrivent des choses comme $ sudo apt-get update(votre exemple), ils vous disent simplement que la commande, dans ce cas sudo apt-get update, doit être entrée à l'invite de commande. À strictement parler, peut-être, le $est redondant dans ce contexte.

D'autres séparateurs peuvent être utilisés dans d'autres situations. Par exemple, #est utilisé pour un shell racine.

Le ~(appelé «tilde») est un raccourci pour votre répertoire personnel. Lorsqu'il apparaît dans une invite de commande, par exemple, user@hostame:~$il indique que le répertoire de travail actuel est votre répertoire personnel. Ainsi, si vous exécutez la commande list ls, sans spécifier de répertoire particulier, elle listera le contenu de votre répertoire personnel.

(Soit dit en passant, $HOMEn'est pas une commande, comme vous le suggérez, mais plutôt une variable d'environnement . Elle détermine l'emplacement de votre répertoire personnel. Vous pouvez voir sa valeur en exécutant $ echo $HOME.)

camsolo
la source
10
@FEarBG Je pense que cette réponse échoue dans un petit aspect: l'invite est entièrement personnalisable et n'est qu'une décoration; vous pouvez décider d'avoir une invite vide, ou utiliser les symboles que vous aimez (par exemple, sur mon ordinateur, j'ai remplacé $par «̃∴» comme symbole d'invite). Vous pouvez modifier votre invite en définissant la PS1variable d'environnement à votre convenance.
Bakuriu
@Bakuriu En supposant que bash, bien sûr. D'autres coquilles PEUVENT être différentes.
un CVn du
1
"À strictement parler, peut-être, le $ est redondant dans ce contexte." - Oui, c'est pourquoi nous préférons généralement éviter $s'il n'y en a pas besoin (ce qui est le cas pour les copies de journaux ou les sorties d'exemple, par exemple).
user98085
12

Traditionnellement, une invite shell se termine par $,% ou #. S'il se termine par $, cela indique un shell compatible avec le shell Bourne (tel qu'un shell POSIX, ou un Korn, ou Bash). S'il se termine par%, cela indique un shell C (csh ou tcsh). S'il se termine par #, cela indique que le shell s'exécute en tant que compte superutilisateur du système (root).

Source : ici

Mukund
la source
sur certains (anciens, généralement) systèmes, vous avez "#" même en tant qu'utilisateur régulier (peut-être pour vous garder sur vos gardes ^^) ... c'est-à-dire que certains shells plus anciens ne changent pas le symbole si vous êtes root - vs- utilisateur régulier.
Olivier Dulac
10
  • ~ représente votre répertoire personnel.
  • $c'est un séparateur pour votre système, il vient de la commande \$de la page de manuel.

Donc, si vous trouvez une commande commençant par $elle, vous dites simplement que rien ne doit être ajouté avant cela.

user@ubuntu:~$

userest le nom d'utilisateur avec lequel vous êtes connecté.
@c'est juste pour dire voici un lien.
ubuntuest le nom du système sous lequel vous êtes connecté.
:~indique que vous êtes maintenant dans le userrépertoire personnel.
$provient de la \$séquence d'échappement dans le $PS1. page de manuel.

Mais tout cela peut être changé en lisant la page de manuel. Merci @demure pour l'aide.

Alvar
la source
2
Pour être précis, c'est la \$partie de la $ PS1, qui est conçue pour montrer $sinon la racine (sinon ce sera #) la page de manuel
exercée
@denure a mis à jour ma réponse, si vous pensez pouvoir l'améliorer, faites-le.
Alvar
6

Le $ le signe à la fin de l'invite dans le terminal lorsque vous ajoutez une commande comme celle que vous avez montrée, ne tapez pas le $ else, cela ne fonctionnera pas.

Donc $ sudo apt-get update

serait tapé comme suit:

sudo apt-get update 

J'espère que ça t'as aidé.

modifier

Le ~ représente votre dossier de départ et name@pc_name:~/Desktop$indiquerait que vous vous trouvez dans le dossier Accueil> Bureau.

SimplySimon
la source
3
Peut-être pour montrer que vous devez entrer la commande à l'invite.
SimplySimon
4
Et aussi pour faire la distinction entre une commande exécutée par un utilisateur normal (à l'invite $) et root (l'invite #).
coneslayer
@FEarBG: C'est une convention arbitraire, sans rapport (pour autant que je sache) avec l'utilisation de $pour désigner un nom de variable. Il n'y a que tant de caractères imprimables disponibles sur un clavier. DOS et Windows utilisent >dans les invites, Unix utilise généralement $ou %. Il vous dit "c'est une invite" sans gaspiller d'espace sur votre écran (ou, autrefois, de l'encre et du papier).
Keith Thompson
Et bien sûr, dans les variables d'environnement DOS et Windows, utilisez %. Comme vous le dites, c'est largement arbitraire; il doit à peu près y avoir quelque chose , mais il n'a pas besoin d'être le même partout (bien que ce serait plutôt bien si c'était le cas).
un CVn du