LINUX.ORG.RU

profile, bashrc или inputrc


0

1

Да, я двоечник который shell освоить не может и маны не читает. Но, не спешите меня ругать и слать в маны, лучше ответьте.

При старте bash (sh) обрабатываются файлы profile, bashrc, inputrc, так? profile обрабатывается всегда, когда запускается новая копия bash,например при запуске любого скрипта или при отработке инициализационных скриптов, так? bashrc и inputrc обрабатываются в дополнении к profile когда bash запускается в интерактивном режиме (пользователь открывает консоль), так?

Если мне нужно, чтобы некие команды запустились при логине пользователя (любого пользователя), мне нужно записать их в bashrc или inputrc? В /etc есть только глобальный файл inputrc.

Если мне нужно присвоить глобальные переменные мне это нужно сделать в /etc/profile или в новом файле каталога /etc/profile.d? В какой форме их присваивать «переменная=значение» или «export переменная=значение»? Почему в /etc/profile встречаются обе формы?

★★★★★

Пасаны, я знаю, что нуб в этой вашей физике. Но вы мне по-простому объясните, молотком какого веса забивать транзистор, чтобы модулировать сигнал. А эти ваши книги читать времени нет.

anonymous ()
Ответ на: комментарий от aidaho

Бу, зануды! Найти и понять - это разные вещи. Сейчас снова заглянул в ман (вернее в его перевод), э... кажется я всё переврал: profile выполняется в интерактивном режиме, а bashrc в неинтерактивном. Но я реально не понимаю, в каких случаях редактируется profile, в каких bashrc.

sunny1983 ★★★★★ ()
Ответ на: комментарий от sunny1983

По-моему, всё предельно однозначно:

       /etc/profile
              The systemwide initialization file, executed for login shells
       /etc/bash.bashrc
              The systemwide per-interactive-shell startup file
       ~/.profile
              The personal initialization file, executed for login shells
       ~/.bashrc
              The individual per-interactive-shell startup file
Порядок выполнения детально описан в секции 'INVOCATION'.

Если переменную не экспортировать, она останется локальной для скрипта, в котором объявлена.

После экспорта новой переменной из глобального профиля, юзеру придётся перелогиниться, чтобы изменения вступили в действие.

aidaho ★★★★★ ()
Ответ на: комментарий от aidaho
/etc/bash.bashrc
       The systemwide per-interactive-shell startup file

Нет такого в man 1 bash. Может от дистриба к дистрибу маны отличаются, у меня Slackware.

Есть это:

/etc/profile
       The systemwide initialization file, executed for login shells
~/.bash_profile
       The personal initialization file, executed for login shells
~/.bashrc
       The individual per-interactive-shell startup file
~/.bash_logout
       The individual login shell cleanup file, executed when a login shell exits
~/.inputrc
       Individual readline initialization file

В INVOCATION написано, что в интерактивном режиме сначала выполняется /etc/profile, затем ~/.bash_profile, затем ~/.bash_login и, наконец, ~/.profile. Но мне непонятно какие скрипты в каких случаях редактируются. И какие файлы выполняются в неинтерактивном режиме.

sunny1983 ★★★★★ ()
Последнее исправление: sunny1983 (всего исправлений: 1)
Ответ на: комментарий от sunny1983

В INVOCATION написано
мне непонятно какие скрипты в каких случаях редактируются

Тут уже ничем не помочь.

какие файлы выполняются в неинтерактивном режиме

Из перечисленных? Никакие. Переменные окружения наследуются.

aidaho ★★★★★ ()
Ответ на: комментарий от aidaho

Продолжаем публичные чтения книги «99 мифов о bash» на ЛОРе.

То есть любой скрипт из имеющихся в linux запускается не просто так, а запускается через из-под другого скрипта, наследуя переменные. То есть, чтобы понять что тот или иной скрипт делает, мне нужно предварительно освоить другие, в которых произошло присваивание переменных?

А если некий скрипт запускается не из-под другого скрипта, а просто, например из-под cron, у него что окружение чистое будет, ну не считая UID, PID и прочих?

И ещё вопрос, скрипты из /etc/profile.d выполняются в какой последовательности? В алфавитной?

sunny1983 ★★★★★ ()
Ответ на: комментарий от sunny1983

И ещё вопрос, скрипты из /etc/profile.d выполняются в какой последовательности

Ответ в /etc/profile

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.