A variável prompt $PS1
provavelmente não foi definida, portanto o padrão interno \s-\v\$
é usado.
Quando o bash é iniciado interativamente, ele origina um arquivo de configuração, geralmente um ~/.bashrc
ou ~/.bash_profile
, presumindo que exista, e é assim que um prompt mais sofisticado é definido. De man bash
:
INVOCAÇÃO
[...] Quando o bash é chamado como um shell de logon interativo ou como um shell não interativo com a opção --login, ele primeiro lê e executa comandos do arquivo / etc / profile, se esse arquivo existir. Depois de ler esse arquivo, ele procura por ~ / .bash_profile, ~ / .bash_login e
~ / .profile, nessa ordem [...]
[...] Quando um shell interativo que não é um shell de login é iniciado, o bash lê e executa comandos de
~ / .bashrc, se esse arquivo existir.
Não ter seu conjunto de prompt pode ocorrer em dois contextos diferentes, shells de login e shells de não login. Se você usar um gerenciador de exibição para efetuar login diretamente na GUI, não encontrará shells de login, a menos que mude para um console virtual (via, por exemplo, CtrlAlt+ F1 a F6). No entanto, você pode testar o seu perfil de login festa na GUI, abrindo um novo shell de login explicitamente: bash -l
.
Problema ocorre com shells sem logon
Se o problema ocorrer com, por exemplo, terminais GUI normais, o seu ~/.bashrc
está faltando ou foi editado para excluir o fornecimento de um arquivo global, provavelmente /etc/bashrc
.
Se ~/.bashrc
não existir, deve ser /etc/skel/.bashrc
usado para criá-lo para novos usuários. Simplesmente copie esse arquivo no diretório inicial e seu prompt padrão 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
Caso contrário, verifique se esse arquivo existe (deveria, pelo menos na maioria das distribuições Linux) e adicione essa linha ao seu ~/.bashrc
.
Problema ocorre com shells de logon
Se o problema ocorrer com shells de login e shells sem login, o problema provavelmente é o mesmo que acima. Se ocorrer apenas com shells de login, você não possui um dos arquivos mencionados para shells de login sob a citação de INVOCATION acima ou eles não fornecem o seu ~/.bashrc
, o que é normal na 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 sua configuração em um arquivo ( ~/.bashrc
).
Se não importa o que você faça, você não poderá receber um aviso de volta, crie um e coloque-o ~/.bashrc
desta maneira:
if [ "$PS1 ]; then
PS1= .... # see below
fi
Isso ocorre porque $ PS1 está definido e possui um valor padrão para shells interativos, e você não deseja defini-lo caso contrário, outras coisas podem usar esse valor para determinar se este é um ambiente interativo.
A página de manual do bash contém uma seção PROMPTING, que descreve como definir um prompt com recursos dinâmicos, como seu nome de usuário e diretório de trabalho atual, que seriam, por exemplo:
PS1="\u \w:"
Há um guia para usar cores aqui . Preste atenção ao fato de incluir caracteres não impressos em ( \[
e \]
há uma discussão sobre isso no final da resposta sobre cores).