В чем разница между переменными оболочки и среды? Где хранятся эти переменные?Разница между оболочкой и переменными окружения
ответ
Приводя this source,
Стандартные UNIX переменные разделены на переменных две категории, переменные окружения и оболочки. В широком смысле переменные оболочки применяются только к текущему экземпляру оболочки и являются , используемыми для установки краткосрочных рабочих условий ; переменные окружения имеют более значимое значение, и те, которые установлены при входе в систему, действительны для продолжительности сеанса. По значению переменные окружения имеют . Верхние переменные CASE и оболочки имеют имена нижних регистров.
Чтобы перечислить все переменные среды, используйте printenv
и перечислите все переменные оболочки, используйте set
.
Вы заметите, что переменные среды хранения более постоянное значение, например:
HOME=/home/adam
Какие изменения довольно редко, в то время как переменные оболочки хранит локальные временные, оболочки конкретные значения, например:
PWD=/tmp
который изменяется при каждом изменении текущего каталога.
Для большинства практических задач задайте значения среды, добавив export VARIABLE_NAME=VALUE
в файл ~/.bashrc.
Переменная оболочки - это особый случай переменной окружения. оболочка переменные наследуются из среды и, возможно, скопированы в среду детей оболочки в зависимости от синтаксиса, используемой: http://www.pixelbeat.org/docs/env.html
Неправильное использование. В основном вы меняете условия. Очевидно, есть много путаницы в этой теме, даже ветеранскими пользователями и разработчиком coreutils? : -/ – deltaray
Я не думаю, что я изменил условия. Я подразумевал, что список окружения является более фундаментальным и присутствует для всех процессов, включая оболочки. переменные оболочки - это особый случай, который инициализируется _from_ в списке окружения – pixelbeat
Их разница подобна разнице между частными полями и защищенными полей в классе Java.
Закрытые поля класса Java доступны только из этого класса Java. Защищенные поля класса Java доступны как из этого класса Java, так и из его подклассов.
Переменные оболочки оболочки доступны только из этого процесса оболочки. Переменные среды, экспортируемые из этой оболочки, доступны как из этого процесса оболочки, так и из подпроцессов, созданных из этой оболочки.
Для оболочки Bash:
Переменные оболочки отличаются от переменных среды по-разному:
♦ Переменная оболочка является специфичным для самой оболочки и не наследуется дочерними процессами.Например, предположу, что вы запускаете другое приложение из оболочки, что приложение не будет наследовать переменные оболочки:
$ SHELL_VAR=xyz
$ firefox
SHELL_VAR
не будет доступен в среде ребенка процесса (FireFox).
♦ В отличие от переменных окружения родительского процесса (оболочка здесь) наследуются всеми дочерними процессами:
$ export SHELL_VAR=xyz
$ firefox
♦ Обе оболочки и переменные окружения являются локальными для оболочки/процесса, который определил их:
Переменные окружения может быть постоянным, тогда как для переменных оболочки после выхода из сеанса они все исчезли.
Примечание: приведенные выше примеры только изменяют оболочку, над которой вы работаете, другими словами, если вы выходите из системы или запускаете новую оболочку/терминал, вы не увидите переменные, которые вы определили, это за Принцип определения местоположения процесса.
Как сделать переменные presistent оболочки:
Один из способов сделать это путем изменения ~/.profile файл:
export SHELL_VAR=xyz
Этот параметр является для конкретного пользователя и не для всей системы, для общесистемных переменных среды вы можете добавить указанную выше строку в файл .sh в /etc/profile.d
Я настоятельно рекомендую прочитать эту страницу: EnvironmentVariables
- 1. Разница между оболочкой Схемы и оболочкой Bash
- 2. В чем разница между оболочкой входа и интерактивной оболочкой?
- 3. Разница между переменными привязками и переменными?
- 4. Разница между постоянными переменными и глобальными переменными
- 5. Разница между оболочкой korn и bash
- 6. Разница между оболочкой Bash и терминалом Bash?
- 7. В чем разница между ОС и оболочкой?
- 8. Разница между переменными окружения загружается при использовании sudo linux
- 9. Разница между свойствами и переменными
- 10. Разница между объявляющими переменными
- 11. разница между переменными заданий
- 12. Разница между внешними и глобальными переменными?
- 13. Разница между переменными завершения и семафорами
- 14. Разница между методами и переменными-членами?
- 15. Разница между статическими и константными переменными
- 16. Разница между локальными переменными и аргументами
- 17. Разница между переменными AUTH_USER и REMOTE_USER cgi
- 18. TypeScript - разница между частными и защищенными переменными
- 19. Разница между конечными переменными и статическими конечными переменными
- 20. Разница между переменными класса и переменными экземпляра класса?
- 21. В чем разница между переменными?
- 22. Разница между переменными в jQuery
- 23. Разница между полями/переменными объявлены
- 24. Разница между двумя переменными указателя
- 25. разница между двумя переменными SYSTEMTIME
- 26. Проблемы с переменными окружения
- 27. разница между интерактивной консолью Python и «manage.py оболочкой» Джанго
- 28. В чем разница между графической оболочкой и окружением рабочего стола
- 29. В чем разница между оболочкой и eshell в emacs?
- 30. Есть ли разница между искровой оболочкой и клиентом CLI Scala?
переменная окружения являются опред.польз.имя? & переменная оболочки s определяет систему? Также вы упомянули команды, а не местоположение i означает, где находится переменная? – sunil
Что вы подразумеваете под «Где находятся переменные»? Где вы устанавливаете их значение или где (технически) хранится в памяти компьютера? –
любой файл находится там, где они хранятся && они определены пользователем или предопределено – sunil