Я объявил псевдоним в .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
.