~/.profile não está sendo executado quando o Terminal é aberto?

~/.profile não está sendo executado quando o Terminal é aberto?

De alguma forma, meu prompt do bash foi alterado para "elementary:~ steven$" e quero alterá-lo de volta para o prompt padrão. Adicionei o seguinte primeiro a ~/.bashrc e depois a ~/.profile:

export PS1="\s-\v\$ "

Nenhum dos dois é executado quando abro o Terminal. Se eu executar o comando sourceem qualquer arquivo, ele funcionará bem pelo restante da sessão.

Há algo que estou ignorando aqui?

EDIT: Aqui está o resultado do que Ian sugeriu:

elementary:~ steven$ bash --login --verbose
# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi
/usr/libexec/path_helper -s
PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/local/AVRMacPack/bin"; export PATH;

if [ "${BASH-no}" != "no" ]; then
    [ -r /etc/bashrc ] && . /etc/bashrc
fi
# System-wide .bashrc file for interactive bash(1) shells.
if [ -z "$PS1" ]; then
   return
fi

PS1='\h:\W \u\$ '
# Make bash check its window size after a process completes
shopt -s checkwinsize
if [ -e "/usr/local/AVRMacPack" ]; then
PATH="$PATH:/usr/local/AVRMacPack/bin"
export PATH
fi

# Setting PATH for Python 3.2
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.2/bin:${PATH}"
export PATH
elementary:~ steven$ which bash
which bash
/bin/bash

Responder1

.bashrcé executado apenas para shells não interativos de acordo com a página de manual do bash.

.bash_profileé executado para shells de login.

O .profilearquivo é carregado por shells Korn. Não sei se o bash presta atenção a isso. Não consegui encontrar nenhuma referência a isso na página de manual do bash.

No OS X, o programa Terminal.app executa um shell de login para cada nova janela do Terminal.app que você abre.

Então você deseja colocar sua configuração de prompt no formato .bash_profile.

Você sempre pode fazer o seguinte em .bash_profile. Não é incomum, mas não posso dizer que tipo de repercussões isso poderia ter:

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

Então você não precisaria manter dois arquivos.

Responder2

Posso estar incorreto, mas se bash for o seu shell, você deve colocá-lo em seu ~/.bash_profile e não em seu .bashrc.

Responder3

Caso você tenha mexido com seucontrole bashpor qualquer motivo e você quer carregar seu TERMINAL.perfilem cada sessão novamente, basta escrever seu~/.bash_profileigual a:

if [ -f ~/.profile ]; then
   source ~/.profile
fi

...e inicie uma nova sessão para verificar se tudo voltou bem

informação relacionada