~ является $HOME, но иногда?

RC обозначает предвыпускную версию. Это - вид предварительной версии после того, как процесс тестирования бета-версии будет закончен для проверки на последние ошибки. Иногда все проверяет, и в версии RC превращаются версии выпуска, как, иногда небольшие вещи неожиданно возникают, и маленькие меры сделаны перед финальной версией.

LXDE является настольной средой, часто упаковываемой как альтернативная версия некоторых дистрибутивов.

14
29.01.2019, 13:00
3 ответа

~ псевдоним для $HOME если многими оболочками, но $HOME более универсально. $HOME на самом деле просит, чтобы оболочка для вставки (заменила) переменной окружения ДОМОЙ здесь. Существует множество другой переменной окружения, которой можно заменить, попытаться работать env для списка. Отметьте это ~ не всегда распознается, когда это не в начале слова. Попробуйте эти две команды за сравнение:

ls /~
ls /$HOME

Первое передается ls исполняемому файлу как /~ который затем пытается посмотреть на названный файл ~ в корневом каталоге расширяется второе $HOME и становится //home/user который затем передается ls исполняемому файлу как параметр командной строки. Все системы POSIX (POSIX является стандартом для того, как UNIX и системы Linux работают) позволяют нескольким наклонным чертам рассматриваться то же как одну наклонную черту так //home/user совпадает с высказыванием /home/user. ~username ярлык для сообщения оболочки искать имя пользователя в passwd файле и возвратить их корневой каталог. Нет никакой эквивалентной переменной среды. Все они замена сделана оболочкой и поддерживается большинством из них, но только переменными среды как $HOME как гарантируют, будут поддерживаться всеми оболочками. Кроме того, cd на самом деле встроенная команда. Это - специальная директива, которая говорит самой оболочке изменять каталоги. Это не похоже на другую оболочку, созданную-ins, который может быть реализован как отдельный исполняемый файл как echo то, потому что это используется для изменения фундаментального атрибута процесса оболочки. echo просто оболочка, встроенная по причинам производительности, но в добрые старые времена UNIX, была только доступна как свой собственный исполняемый файл /bin/echo.

18
27.01.2020, 19:50

~foo означает 'корневой каталог пользовательского нечто'.

Это не сделано ядром, оно интерпретируется оболочкой. Каждый раз, когда оболочка видит ~foo как аргумент, это прозрачно заменяет его корневым каталогом пользователя foo и передачи это в его месте. Таким образом, когда Вы работаете cd ~tandu, оболочка на самом деле работает cd /home/tandu.

17
27.01.2020, 19:50
  • 1
    Что конкретно делает эту замену и с какой алгоритм? Это cd или оболочка? Что, если Вы не выполняете оболочку? Действительно ли это - простое, "если ~ сопровождается чем-то, расширьтесь по-другому?" или есть ли некоторая другая специальная обработка для этого уникального условия? –  Explosion Pills 17.03.2012, 07:29
  • 2
    См. руководство Bash по Расширению Тильды. (Много других оболочек и программ следуют подобным правилам.) –  cjm 17.03.2012, 08:17
  • 3
    @tandu: оболочка делает cd, нет внешнего исполняемого файла, чтобы сделать это (это не было бы возможно) –  Mat 17.03.2012, 08:40
  • 4
    @tandu: если Вы не выполняете оболочку (например, пробуете это использование exec(2)), расширение оболочки не происходит. Без расширения оболочки, ~ не становится замененным ничем — это - просто другой совершенно допустимый символ. Это укусило меня в мои ранние дни SunOS потому что /bin/sh не сделал grok ~. –  Alexios 17.03.2012, 15:16

~ сопровождаемый именем пользователя расширяется до корневого каталога того пользователя.

5
27.01.2020, 19:50

Теги

Похожие вопросы