Co oznacza ~ $?

27

Co oznacza ~$skrót Na przykład:

user@ubuntu:~$

Jak dotąd wiem, że $znak jest symbolem dla zwykłego użytkownika. Jeśli się nie mylę, rootto #na końcu.

Znalazłem też wiele poleceń na forach, które zaczynają się od $:

$ sudo apt-get update 

Więc po co to $właściwie oznacza?

EDYCJA (28.01.2014):

Dzisiaj natknąłem się na ten film, który całkowicie odpowiada na moje pytanie sprzed 8 miesięcy i postanowiłem udostępnić go tutaj :)

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

FEARBG
źródło

Odpowiedzi:

33

~I $są elementami wiersza poleceń . Oznacza to, że Twój komputer (a dokładniej, jak sądzę, uruchomiona powłoka) czeka na dane wejściowe użytkownika. To skłoniło cię do wejścia do komendy.

Jest $to jedynie separator lub dzielnik. Oddziela wiersz polecenia od następującego po nim polecenia. Kiedy ludzie piszą takie rzeczy jak $ sudo apt-get update(twój przykład), po prostu mówią ci, że w tym przypadku sudo apt-get updatepolecenie należy wprowadzić w wierszu polecenia. Ściśle mówiąc, być może $zbędne jest w tym kontekście.

Inne separatory mogą być używane w innych sytuacjach. Na przykład #służy do powłoki roota.

~(Zwany „tyldy”) jest skrótem dla katalogu domowego. Kiedy pojawia się w wierszu polecenia, np., user@hostame:~$Wskazuje, że bieżącym katalogiem roboczym jest katalog domowy. Zatem jeśli uruchomisz polecenie list ls, bez określania konkretnego katalogu, wyświetli on zawartość twojego katalogu domowego.

(Nawiasem mówiąc $HOME,, nie jest poleceniem, jak sugerujesz, ale zmienną środowiskową . Określa lokalizację twojego katalogu domowego. Możesz zobaczyć jego wartość, uruchamiając $ echo $HOME.)

Camsolo
źródło
10
@FEarBG Myślę, że ta odpowiedź zawodzi w jednym małym aspekcie: monit można całkowicie dostosować i jest tylko dekoracją; możesz zdecydować o wyświetleniu pustego monitu lub użyć dowolnych symboli, które Ci się podobają (np. na moim komputerze zastąpiłem $symbol ̃∴ jako symbol monitu). Możesz zmienić monit, ustawiając PS1zmienną środowiskową według własnych upodobań.
Bakuriu
@Bakuriu Oczywiście zakładając bash. Inne muszle MOGĄ być inne.
CVn
1
„Ściśle mówiąc, być może $ jest zbędne w tym kontekście”. - Tak, dlatego zazwyczaj wolimy unikać sytuacji $, w której nie ma takiej potrzeby (na przykład w przypadku kopii dziennika lub przykładowych danych wyjściowych).
user98085
12

Tradycyjnie monit powłoki kończy się na $,% lub #. Jeśli kończy się na $, oznacza to powłokę zgodną z powłoką Bourne'a (taką jak powłoka POSIX, skorupa Korna lub Bash). Jeśli kończy się na%, oznacza to powłokę C (csh lub tcsh). Jeśli kończy się na #, oznacza to, że powłoka działa jako konto administratora systemu (root).

Źródło : tutaj

Mukund
źródło
w niektórych (starych, zwykle) systemach masz „#” nawet jako zwykły użytkownik (być może, aby utrzymać cię na palcach ^^) ... tj. niektóre starsze powłoki nie zmieniają symbolu, jeśli jesteś rootem - kontra zwykły użytkownik.
Olivier Dulac
10
  • ~ oznacza katalog domowy.
  • $jest separatorem dla twojego systemu, pochodzi z polecenia \$ze strony man.

Więc jeśli znajdziesz polecenie zaczynające się od $niego, po prostu powie, że nic nie powinno być wcześniej dodane.

user@ubuntu:~$

userto nazwa użytkownika, na którą jesteś zalogowany.
@to po prostu powiedzieć, że tutaj jest link.
ubuntuto nazwa systemu, na który jesteś zalogowany.
:~mówi, że jesteś teraz w userkatalogu domowym.
$pochodzi z \$sekwencji ucieczki w $PS1. strona man.

Ale to wszystko można zmienić, czytając na stronie podręcznika . Dziękuję @demure za pomoc.

Alvar
źródło
2
Mówiąc konkretnie, to \$część $ PS1, który został zaprojektowany, aby pokazać $, jeśli nie root (w przeciwnym razie będzie #) strona człowiek wywierają
skromny
@denure zaktualizował moją odpowiedź, jeśli uważasz, że możesz ją poprawić, zrób to.
Alvar
6

Znak $ to koniec znaku zachęty w terminalu, gdy dodajesz polecenie takie jak to, które pokazałeś, nie wpisuj $, inaczej to nie zadziała.

Więc $ sudo apt-get update

zostanie wpisany jako:

sudo apt-get update 

Mam nadzieję, że to pomaga.

Edytować

~ Oznacza folder domowy, więc name@pc_name:~/Desktop$pokazuje, że jesteś w folderze domowym> na pulpicie.

SimplySimon
źródło
3
Być może, aby pokazać, że należy wpisać polecenie w wierszu polecenia.
SimplySimon
4
A także w celu odróżnienia polecenia uruchamianego przez normalnego użytkownika (w wierszu $) od roota (wiersz #).
coneslayer
@FEarBG: Jest to arbitralna konwencja, niepowiązana (o ile wiem) z użyciem $do oznaczenia nazwy zmiennej. Na klawiaturze jest tylko tyle znaków do wydrukowania. DOS i Windows używają >podpowiedzi, Unix zwykle używa $lub %. Mówi ci „to jest monit” bez marnowania miejsca na ekranie (lub, w dawnych czasach, na atrament i papier).
Keith Thompson
I oczywiście w DOS i Windows używamy zmiennych środowiskowych %. Jak mówisz, jest to w dużej mierze arbitralne; właściwie musi być coś , ale nie musi być tak samo wszędzie (choć byłoby miło, gdyby tak było).
CVn