Вопрос или проблема
По моим тестам, похоже, что 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
, а не наоборот, но в этом случае, похоже, что у меня нет возможности добавить файл в домашнюю директорию, который будет использован только один раз, а не при каждом новом сеансе оболочки.
Итак, у меня есть следующие вопросы:
- Моя оценка верна или это может быть какой-то изъян SteamOS / Arch Linux?
- Должен ли я использовать свои алиасы и экспорт в этом
~/.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.
-
Правильность вашего вывода: Судя по всему, SteamOS в данном случае ведет себя слегка иначе, чем стандартные дистрибутивы Linux. В традиционной настройке Bash, файл
.bash_profile
загружается только для входных оболочек, в то время как.bashrc
используется для интерактивных оболочек. Иногда в кастомизированных системах, таких как SteamOS, может быть нарушен этот обычный порядок, и ваше заключение о том, что.bash_profile
не загружается, возможно, вызвано этими кастомизациями. Однако, если на вашем устройстве нет настроек, которые бы загружали.bash_profile
, это вряд ли изменит поведение системы. -
Где размещать ваши конфигурации: Рекомендуется использовать файл
.bashrc
для хранения ваших алиасов, переменных окружения и других настроек, так как он загружается при каждой новой интерактивной оболочке. Если вы хотите, чтобы конфигурации применялись только при запуске входной оболочки, вам действительно следует использовать.bash_profile
. Однако, в текущей конфигурации SteamOS может потребоваться вручную добавить строку для загрузки.bash_profile
в.bashrc
, чтобы избежать модификации системных файлов, которые могут быть перезаписаны при обновлениях системы.
Рекомендуемая стратегия:
- Поместите все ваши алиасы и экспорты в
~/.bashrc
, так как это проще и обеспечивает более надежное поведение. - Если вы хотите, чтобы эти настройки также подгружались при запуске входной оболочки, добавьте строку для того, чтобы вручную загружать
~/.bash_profile
из .bashrc:
if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
fi
Таким образом, вы сможете управлять вашими конфигурациями более эффективно, не опасаясь, что ваши изменения будут потеряны после обновления системы.
Если у вас есть более специфические требования или вопросы, не стесняйтесь задавать!