Что означает ~ $?

27

Что означает ~$? Например:

user@ubuntu:~$

До сих пор я знаю, что $знак является символом для обычного пользователя. Если я не ошибаюсь, rootесть #в конце.

Я также нашел много команд на форумах, которые начинаются с $:

$ sudo apt-get update 

Так что же на $самом деле означает?

РЕДАКТИРОВАТЬ (28.01.2014):

Сегодня я наткнулся на это видео, которое полностью отвечает на мой вопрос 8 месяцев назад, и решил поделиться им здесь :)

Основы BASH - https://www.youtube.com/watch?v=x73WTEltyHU

FEarBG
источник

Ответы:

33

~И $являются элементами командной строки . Это указывает на то, что ваш компьютер (точнее, я полагаю, оболочка, которую вы используете) ожидает ввода данных пользователем. Он побуждает вас ввести команду.

Это $просто разделитель или разделитель. Он отделяет командную строку от команды, которая следует за ней. Когда люди пишут такие вещи, как $ sudo apt-get update(ваш пример), они просто говорят вам, что команда, в этом случае sudo apt-get update, должна быть введена в командной строке. Строго говоря, возможно, $в этом контексте избыточно.

Другие разделители могут использоваться в других ситуациях. Например, #используется для корневой оболочки.

~( Так называемый «тильда») является сокращением для вашего домашнего каталога. Когда он появляется в командной строке, например, user@hostame:~$он указывает, что текущий рабочий каталог является вашим домашним каталогом. Таким образом, если вы запустите команду list ls, без указания какого-либо конкретного каталога, он выведет список содержимого вашего домашнего каталога.

(Кстати $HOME, как вы предлагаете, это не команда, а скорее переменная окружения . Она определяет местоположение вашего домашнего каталога. Вы можете увидеть его значение, запустив его $ echo $HOME.)

camsolo
источник
10
@FEarBG Я думаю, что этот ответ потерпел неудачу в одном небольшом аспекте: приглашение полностью настраиваемо и является просто украшением; Вы можете выбрать пустое приглашение или использовать любые символы, которые вам нравятся (например, на моем компьютере я заменил $на `̃∴` в качестве символа приглашения). Вы можете изменить свое приглашение, установив PS1переменную среды по своему вкусу.
Бакуриу
@Bakuriu Предполагается, что Bash. Другие снаряды МОГУТ быть разными.
CVn
1
«Строго говоря, возможно, в этом контексте $ избыточен». - Да, именно поэтому мы обычно предпочитаем избегать, $если в этом нет необходимости (например, для копий журнала или примеров выходных данных).
user98085
12

Традиционно приглашение оболочки заканчивается на $,% или #. Если он заканчивается на $, это означает, что оболочка совместима с оболочкой Bourne (например, оболочка POSIX, оболочка Korn или Bash). Если он заканчивается на%, это указывает на оболочку C (csh или tcsh). Если он заканчивается на #, это означает, что оболочка работает от имени учетной записи суперпользователя системы (root).

Источник : здесь

Mukund
источник
в некоторых (старых, обычно) системах у вас есть «#» даже как обычный пользователь (возможно, чтобы держать вас в курсе ^^) ... то есть некоторые старые оболочки не меняют символ, если вы root - vs- обычный пользователь.
Оливье Дюлак
10
  • ~ обозначает ваш домашний каталог.
  • $это разделитель для вашей системы, он исходит из команды \$со страницы руководства .

Так что, если вы найдете команду, начинающуюся с $нее, просто говорит, что ничего не должно быть добавлено до этого.

user@ubuntu:~$

userимя пользователя, с которым вы вошли в систему.
@просто сказать, что это ссылка.
ubuntuэто имя системы, в которую вы вошли как.
:~говорит, что вы сейчас в userдомашнем каталоге.
$происходит от \$escape-последовательности в $PS1. справочная страница.

Но все это можно изменить, прочитав справочную страницу. Спасибо @demure за помощь.

Альвар
источник
2
Точнее говоря, это \$часть $ PS1, которая предназначена для показа, $если не root (иначе это будет #) страницы
руководства
@denure обновил мой ответ, если вы чувствуете, что можете улучшить его, сделайте это.
Алвар
6

Знак $ означает конец запроса в терминале, когда вы добавляете команду, подобную той, которую вы показывали, не вводите $, иначе она не будет работать.

Итак, $ sudo apt-get update

будет напечатано как:

sudo apt-get update 

Надеюсь, это поможет.

редактировать

~ Означает вашу домашнюю папку, поэтому name@pc_name:~/Desktop$будет показывать, что вы находитесь в папке Home> Desktop

SimplySimon
источник
3
Возможно, чтобы показать, что вы должны ввести команду в командной строке.
SimplySimon
4
А также провести различие между командой, запускаемой обычным пользователем (в приглашении $), и root (приглашение #).
Coneslayer
@FEarBG: Это произвольное соглашение, не связанное (насколько я знаю) с использованием $для обозначения имени переменной. На клавиатуре доступно очень много печатных символов. DOS и Windows используют >в приглашениях, Unix обычно использует $или %. Он говорит вам «это подсказка», не теряя места на экране (или, в старые времена, чернила и бумага).
Кит Томпсон
И конечно же, в DOS и Windows переменные среды используют %. Как вы говорите, это в значительной степени произвольно; там должно быть что-то , но оно не должно быть везде одинаковым (хотя было бы неплохо, если бы это было).
CVn