Я пытаюсь определить файлы, запускаемые при входе в систему, по порядку. Я имею в виду такие файлы, как ~/.*shrc (.bashrc , .tcshrc и т.д.), ~/.profile или /etc/profile .

Я работаю в системе, отличной от той, к которой привык, и обнаружил, что ряд базовых вариантов поведения отличается (например, клавиша Home на моей клавиатуре теперь вставляет тильду вместо перехода к началу строки, псевдонимы разные). , другая оболочка по умолчанию). Итак, я собираюсь узнать больше о том, как работают все сценарии запуска, какие настройки следует выполнять, где и т.д. До сих пор я много читал по этим темам, однако ссылки на соответствующие обсуждения приветствуются.

РЕДАКТИРОВАТЬ: измененный заголовок, чтобы точно отразить остальную часть вышеуказанного текста.

2 ответа2

0

Файлы, запускаемые при запуске, зависят от вашей среды и интерпретатора команд. Вы должны решить это, прочитав соответствующие справочные страницы. В качестве примера для Bash:

  • определите, какую ОБОЛОЧКУ вы используете. login(1) и getusershell(3) помогут вам.
  • определить тип сеанса - логин / интерактив?

когда вы это знаете, прочитайте справочную страницу оболочки и посмотрите, как она запускается. В качестве примера для bash(1):

INVOCATION The following paragraphs describe how bash executes its startup files. :-)

У bash (как и у большинства других оболочек) есть опция --verbose . Если вы хотите получить фантазию, сделайте так, чтобы оболочка входа в систему выполняла оболочку с ее подробными настройками, например

shiny:bin root# cat vbash 
exec /bin/bash -v

и установите /bin/vbash качестве оболочки для входа. Он даже не должен быть в белом списке в /etc/shells чтобы он работал ...

затем, после того, как у вас есть файлы, исправьте настройки терминала ...

0

Когда мне нужно проверить порядок выполнения для каждого файла запуска, я просто добавляю echo "{filename}" в начало каждого файла запуска. Просто замените {filename} на имя этого файла запуска. Когда вы входите в систему, эта команда echo выполняется и выводит имя файла, к которому был получен доступ. /etc/profile , вероятно, защищен root, поэтому вы не сможете редактировать этот файл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .