Lupo_Alberto |
|
Темы:
10
Сообщения:
110
Участник с: 08 сентября 2013
|
Есть ли возможность узнать, где именно определена та или иная переменная окружения? |
vasek |
|
Темы:
48
Сообщения:
11340
Участник с: 17 февраля 2013
|
Lupo_Alberto, не совсем понятен вопрос - переменные окружения определены на разных уровнях, наверное, точнее сказать имеют несколько типов, а значит и определены в разных файлах - системные - определены всем пользователям в системе и загружаются при старте системы из системных конфигурационных файлов (/etc/environment, /etc/profile, /etc/profile.d/, /etc/bash.bashrc) - пользовательские - определены конкретному пользователю и загружаются при его входе в систему из конфигурационных файлов, размещенных в директории пользователя (это, как правило, .bashrc, .bash_profile, .bash_login, .profile и другие, редко применяемые) - локальные - определены только для текущей сессии - нигде не хранятся, а создаются с помощью специальных команд (после завершения сессии безвозвратно удаляются .… хотя теми же командами можно в текущей сессии удалить и созданные ранее в этой сессии) Это описано в Wiki, но есть и неплохие статейки на эту тему с подробным описанием и назначением каждого конфигурационного файла.
Ошибки не исчезают с опытом - они просто умнеют
|
indeviral |
|
Темы:
38
Сообщения:
3196
Участник с: 10 августа 2013
|
У каждого процесса своё окружение, окружение по факту это массив. Просмотреть можно с помощью env p.s. как формируется уже расписали)
Ошибки в тексте-неповторимый стиль автора©
|
red |
|
Темы:
30
Сообщения:
1517
Участник с: 31 августа 2011
|
есть еще статья в нашей вики |
Lupo_Alberto |
|
Темы:
10
Сообщения:
110
Участник с: 08 сентября 2013
|
Я, возможно, неправильно задал вопрос. Что такое системные, пользовательские, локальные переменные и как их назначить я знаю. Команда env выводит лишь список ИМЯ_ПЕРЕМЕННОЙ=значение. Меня интересует, в каком именно файле присваивается значение каждой из этих переменных. Так, к своему стыду, я не могу найти тот файл, где присваивается значение системной переменной TERM. Точнее, даже так: я знаю, где и как присвоить, но не могу найти, откуда оно берётся по-умолчанию. P.S. На вновь установленной системе, где происходит присваивание переменной TERM? |
Lupo_Alberto |
|
Темы:
10
Сообщения:
110
Участник с: 08 сентября 2013
|
red«Читал, много думал...» © Спасибо, но там я не нашёл ответа на свой вопрос. |
red |
|
Темы:
30
Сообщения:
1517
Участник с: 31 августа 2011
|
Lupo_Albertoкак предположение раз уже есть список мест где прописаны данные переменные то может просто погрепать на наличие нужной |
Lupo_Alberto |
|
Темы:
10
Сообщения:
110
Участник с: 08 сентября 2013
|
Так, например, видно, где присваивается переменная EDITOR ...но с TERM ничего подобного не видно.Возможно, «виноват» Леннарт Пёттеринг, точнее systemd, который, может быть, занимается и настройками окружения. |
Lupo_Alberto |
|
Темы:
10
Сообщения:
110
Участник с: 08 сентября 2013
|
redЧто-то мне подсказывает, что и этот «велосипед» уже изобретён. Должна быть команда с подобным функционалом. |
akorop |
|
Темы:
111
Сообщения:
1755
Участник с: 29 февраля 2012
|
Lupo_AlbertoКонкретно $TERM ни в каком файле не присваивается, эту переменную создаёт сама программа терминала, и видят её значение программы, вызванные из этого терминала. Поучительно ввести echo $TERM в разных терминалах и в голой консоли. |