Bashrc не загружается до запуска команды bash

Я запускаю недавно установленную Arch Linux. Когда я вхожу в систему с пользователем (работает bash) и пытаюсь использовать псевдоним из .bashrc, он дает мне ошибку "команда не найдена". Но если я вернусь bash с помощью команды bash, команда будет работать нормально.

Да, я уже в bash.

env изначально:

SHELL=/usr/bin/bash

env после запуска bash, он остается:

SHELL=/usr/bin/bash

Поэтому я не совсем уверен, где проблема.

Ответ 1

Прочтите раздел INVOCATION от "bash (1)" для получения полной информации (для страницы руководства для bash; используйте man bash). Ваша первая оболочка при входе в систему является "оболочкой входа", что означает, что файл .bashrc не найден. Второй вызов создает интерактивную оболочку, в которой .bashrc используется источник.

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

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

На странице своего руководства bash "[...] ищет ~/.bash_profile, ~/.bash_login и ~/.profile в этом порядке, а также читает и выполняет команды из первого, который существует и доступен для чтения". Соглашения и политики вашей локальной системы будут определять, какие из этих файлов уже существуют.

Предупреждение: помните, что создание нового .bash_profile в вашем домашнем каталоге может иметь непреднамеренный побочный эффект, препятствующий чтению и выполнению команд в файле .bash_login или .profile, уже присутствующем, изменяя далее поведение последующих логинов.

Ответ 2

Вы просматривали файлы ~/.profile, ~/.bash_login и ~/.bash_profile?