Назад | Перейти на главную страницу

.bash_profile не создается во время входа в систему

Я объявил псевдоним в .bashrc файл, расположенный в моем домашнем каталоге. Экспорт PS1 в этот файл также была добавлена ​​переменная окружения.

# /etc/skel/.bashrc
#
# This file is sourced by all *interactive* bash shells on startup,
# including some apparently interactive shells such as scp and rcp
# that can't tolerate any output.  So make sure this doesn't display
# anything or bad things will happen !


# Test for an interactive shell.  There is no need to set anything
# past this point for scp and rcp, and it's important to refrain from
# outputting anything in those cases.
if [[ $- != *i* ]] ; then
        # Shell is non-interactive.  Be done now!
        return
fi


# Put your fun stuff here.
alias ll='ls -l'
export PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \W \$\[\033[00m\] '

Однако эти изменения не имеют никакого эффекта. У меня нет псевдонима, указанного в файле после входа в систему. $PS1 тоже не влияет. AFAIK пользователя .bashrc сценарий получен .bash_profile сценарий, расположенный в домашнем каталоге пользователя. Поэтому для тестирования я добавил в свой .bash_profile следующую строку:

echo hello > ~/test.txt

Вот полное содержание моего .bash_profile файл:

# /etc/skel/.bash_profile

# This file is sourced by bash for login shells.  The following line
# runs your .bashrc and is recommended by the bash info pages.
echo hello > ~/test.txt
[[ -f ~/.bashrc ]] && . ~/.bashrc

test.txt не появляется в моем домашнем каталоге после входа в систему. Похоже, что .bash_profile не вызывается при входе в систему.

Как настроить систему на прием пользователя .bash_profile в учетную запись?

Не могли бы вы попробовать запустить bash вручную? Просто

bash

для интерактивной оболочки, которая будет использовать .bashrc файл и

bash -l

для оболочки входа для тестирования /etc/profile и ~/.bash_profile файлы.

Кроме того, вы можете попытаться отследить системные вызовы процесса bash с помощью утилиты strace и проверить файлы конфигурации, открытые как минимум

strace -f -e open bash
strace -f -e open bash -l

Спасибо, Дсумский, за ваш ответ.

На самом деле, .bashrc определенно происходит, когда я бегу bash вручную. Это напомнило мне вопрос «Какая оболочка установлена ​​в качестве оболочки для входа в систему для моего пользователя?». это было /bin/sh. Проблема исчезла после того, как я заменил его на /bin/bash несмотря на то, что /bin/sh символическая ссылка нацелена на /bin/bash.