A variável de prompt $PS1
provavelmente não foi configurada, portanto, o padrão interno \s-\v\$
é usado.
Quando o bash inicia interativamente, ele origina um arquivo de configuração, geralmente ~/.bashrc
ou ~/.bash_profile
, presumindo que existam, e é assim que um prompt de amador é definido. De man bash
:
INVOCATION
[...] When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order [...]
[...] When an interactive shell that is not a login shell is started, bash reads and executes commands from ~/.bashrc, if that file exists.
Não ter seu conjunto de prompts pode ocorrer em dois contextos diferentes e, em seguida, em shells de login e em shells de não-login. Se você usar um gerenciador de exibição para fazer login diretamente na GUI, não encontrará shells de login, a menos que você alterne para um console virtual (por exemplo, Ctrl Alt + F1 para F6) No entanto, você pode testar seu perfil de login na GUI abrindo um novo shell de login explicitamente: bash -l
.
Problema ocorre com shells não-login
Se o problema ocorrer com, por exemplo, terminais GUI normais, o seu ~/.bashrc
está ausente ou foi editado para excluir o fornecimento de um arquivo global, provavelmente /etc/bashrc
.
-
Se
~/.bashrc
não existir, deve haver um/etc/skel/.bashrc
usado para criá-lo para novos usuários. Simplesmente copie esse arquivo para o seu diretório pessoal, e seu prompt padrão deve retornar para o próximo novo shell que você abrir. -
Se
~/.bashrc
existir, verifique se há uma linha em algum lugar que origine/etc/bashrc
:. /etc/bashrc -OR- source /etc/bashrc
Se não, verifique se esse arquivo existe (deve, pelo menos na maioria das distribuições linux) e adicione essa linha ao seu
~/.bashrc
.
Problema ocorre com shells de login
Se o problema ocorrer com os shells de login e com os shells não-login, o problema provavelmente é o mesmo que o anterior. Se ocorrer somente com shells de login, você não possui um dos arquivos mencionados para shells de login na citação INVOCATION acima, ou eles não usam seu ~/.bashrc
, o que é normal em a maioria das distribuições linux. Se nenhum desses arquivos existir, crie ~/.bash_profile
com isso:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
Isso permite que você mantenha a configuração em um único arquivo ( ~/.bashrc
).
Se não importa o que você fizer, não será possível obter um aviso, você pode criar um e colocar em ~/.bashrc
desta maneira:
if [ "$PS1 ]; then
PS1= .... # see below
fi
Isso ocorre porque $ PS1 está definido e tem um valor padrão para shells interativos, e você não quer configurá-lo de outra forma, já que outras coisas podem usar esse valor para determinar se este é um ambiente interativo.
A página man bash contém uma seção PROMPTING que descreve como definir um prompt com recursos dinâmicos, como seu nome de usuário e o diretório de trabalho atual, o que seria, por exemplo:
PS1="\u \w:"
Há um guia para usando cores aqui . Preste atenção ao fato de que você deve incluir caracteres não impressos em \[
e \]
(há uma discussão sobre isso no final da resposta sobre cores).