Steam Deck не загружает .bash_profile

Вопрос или проблема

По моим тестам, похоже, что Steam Deck не использует файл .bash_profile или .profile в директории ~ (по умолчанию /home/deck)

После некоторых исследований я нашел файл bash profile глубоко в ОС, который содержит следующее:

───────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
       │ Файл: /home/.steamos/offload/root/.bash_profile
───────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ #  SPDX-License-Identifier: MIT
   2   │ #
   3   │ #  Авторские права © 2020 Collabora Ltd.
   4   │ #  Авторские права © 2020 Valve Corporation.
   5   │ #
   6   │ #  Этот файл является частью steamos-image-recipes.
   7   │ #
   8   │ #  steamos-image-recipes является свободным программным обеспечением; вы можете перераспределять его и/или модифицировать
   9   │ #  его в соответствии с условиями GNU Lesser General Public License, как опубликовано
  10   │ #  Фондом свободного программного обеспечения; либо версии 2.1 Лицензии, или
  11   │ #  (по вашему выбору) любой более поздней версии.
  12   │ 
  13   │ #
  14   │ # ~/.bash_profile
  15   │ #
  16   │ 
  17   │ [[ -f ~/.bashrc ]] && . ~/.bashrc
───────┴──────────────────────────────────

Также есть копия этого файла в /etc/skel/.bash_profile

Я понимаю, что .bash_profile должен использовать .bashrc, а не наоборот, но в этом случае, похоже, что у меня нет возможности добавить файл в домашнюю директорию, который будет использован только один раз, а не при каждом новом сеансе оболочки.

Итак, у меня есть следующие вопросы:

  1. Моя оценка верна или это может быть какой-то изъян SteamOS / Arch Linux?
  2. Должен ли я использовать свои алиасы и экспорт в этом ~/.bashrc или модифицировать системные файлы, чтобы также использовать мой ~/.bash_profile?

Заранее спасибо!


bash --version      5.01.16
konsole --version  23.04.2

Модель Steam LCD, версия: Linux steamdeck 6.1.52-valve16-1-neptune-61

Моя оценка верна или это может быть какой-то изъян SteamOS / Arch Linux?

Ваша оценка в основном верна. В случае Steam Deck, ваши наблюдения могут быть вызваны специфическими системными настройками в SteamOS.

Если вам нужны конфигурации, которые должны применяться только к входным оболочкам, рассмотрите возможность использования .bash_profile, но вам, возможно, придется вручную подключить его в существующей системе.

Это подразумевает редактирование системных файлов, которые могут быть перезаписаны обновлениями, и требует осторожности.

Должен ли я использовать свои алиасы и экспорт в этом ~/.bashrc или модифицировать системные файлы, чтобы также использовать мой ~/.bash_profile?

Для простоты и совместимости поместите вашу конфигурацию в .bashrc.

Возможно, будет проще разместить ваши алиасы, экспорт и другие конфигурации непосредственно в .bashrc

Ответ или решение

Ваши наблюдения по поводу того, что Steam Deck не загружает файлы .bash_profile или .profile, в основном верны. Это может быть связано с специфическими настройками SteamOS, который базируется на Arch Linux.

  1. Правильность вашего вывода: Судя по всему, SteamOS в данном случае ведет себя слегка иначе, чем стандартные дистрибутивы Linux. В традиционной настройке Bash, файл .bash_profile загружается только для входных оболочек, в то время как .bashrc используется для интерактивных оболочек. Иногда в кастомизированных системах, таких как SteamOS, может быть нарушен этот обычный порядок, и ваше заключение о том, что .bash_profile не загружается, возможно, вызвано этими кастомизациями. Однако, если на вашем устройстве нет настроек, которые бы загружали .bash_profile, это вряд ли изменит поведение системы.

  2. Где размещать ваши конфигурации: Рекомендуется использовать файл .bashrc для хранения ваших алиасов, переменных окружения и других настроек, так как он загружается при каждой новой интерактивной оболочке. Если вы хотите, чтобы конфигурации применялись только при запуске входной оболочки, вам действительно следует использовать .bash_profile. Однако, в текущей конфигурации SteamOS может потребоваться вручную добавить строку для загрузки .bash_profile в .bashrc, чтобы избежать модификации системных файлов, которые могут быть перезаписаны при обновлениях системы.

Рекомендуемая стратегия:

  • Поместите все ваши алиасы и экспорты в ~/.bashrc, так как это проще и обеспечивает более надежное поведение.
  • Если вы хотите, чтобы эти настройки также подгружались при запуске входной оболочки, добавьте строку для того, чтобы вручную загружать ~/.bash_profile из .bashrc:
if [ -f ~/.bash_profile ]; then
    . ~/.bash_profile
fi

Таким образом, вы сможете управлять вашими конфигурациями более эффективно, не опасаясь, что ваши изменения будут потеряны после обновления системы.

Если у вас есть более специфические требования или вопросы, не стесняйтесь задавать!

Оцените материал
Добавить комментарий

Капча загружается...