$PS1
Вероятно, переменная подсказки не была задана, поэтому используется встроенное значение по умолчанию \s-\v\$
.
Когда bash запускается в интерактивном режиме, он получает файл конфигурации, как правило, либо, ~/.bashrc
либо ~/.bash_profile
, предполагая, что они существуют, и именно так устанавливается более интересное приглашение. От man bash
:
ВЫЗОВ
[...] Когда bash вызывается как интерактивная оболочка входа в систему или как неинтерактивная оболочка с параметром --login, она сначала читает и выполняет команды из файла / etc / profile, если этот файл существует. После прочтения этого файла он ищет ~ / .bash_profile, ~ / .bash_login и
~ / .profile в указанном порядке [...]
[...] Когда запускается интерактивная оболочка, которая не является оболочкой входа в систему, bash читает и выполняет команды из
~ / .bashrc, если этот файл существует.
Тогда отсутствие вашего приглашения может происходить в двух разных контекстах: в оболочках входа в систему и в оболочках входа в систему. Если вы используете диспетчер отображения для входа непосредственно в графический интерфейс, вы не увидите оболочек входа в систему, если не переключитесь на виртуальную консоль (например, с помощью CtrlAlt+ F1 до F6). Тем не менее, вы можете проверить свой Баш профиль входа в систему в графическом интерфейсе, открыв новую оболочку входа в явном виде: bash -l
.
Проблема возникает с не входящими в систему оболочками
Если проблема возникает, например, с обычными терминалами с графическим интерфейсом пользователя, то либо ваш ~/.bashrc
отсутствует, либо он был отредактирован, чтобы исключить использование глобального файла, вероятно /etc/bashrc
.
Если ~/.bashrc
не существует, должен быть /etc/skel/.bashrc
использован для его создания для новых пользователей. Просто скопируйте этот файл в свой домашний каталог, и ваше приглашение по умолчанию должно вернуться для следующей новой оболочки, которую вы откроете.
Если ~/.bashrc
существует, проверьте, есть ли где-нибудь строка с источниками /etc/bashrc
:
. /etc/bashrc
-OR-
source /etc/bashrc
Если нет, проверьте, существует ли этот файл (он должен, по крайней мере, в большинстве дистрибутивов Linux), и добавьте такую строку в свой ~/.bashrc
.
Проблема возникает с логином оболочки
Если проблема возникает с оболочками входа в систему, а также без входа в систему, проблема, вероятно, та же, что и выше. Если это происходит только с оболочками входа в систему, у вас либо нет одного из файлов, указанных для оболочек входа в систему в приведенной выше цитате INVOCATION, либо они не содержат ваш источник ~/.bashrc
, что является нормальным для большинства дистрибутивов Linux. Если ни один из этих файлов не существует, создайте ~/.bash_profile
в нем следующее:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
Это позволяет вам, по большей части, хранить вашу конфигурацию в одном файле ( ~/.bashrc
).
Если независимо от того, что вы делаете, вы не можете получить подсказку обратно, вы можете создать ее и оформить ~/.bashrc
так:
if [ "$PS1 ]; then
PS1= .... # see below
fi
Это потому, что $ PS1 установлен и имеет значение по умолчанию для интерактивных оболочек, и вы не хотите устанавливать его иначе, так как другие вещи могут использовать это значение, чтобы определить, является ли это интерактивной средой.
Страница man bash содержит раздел PROMPTING, который описывает, как установить приглашение с такими динамическими функциями, как ваше имя пользователя и текущий рабочий каталог, например:
PS1="\u \w:"
Здесь есть руководство по использованию цвета . Обратите внимание на то , что вы должны окружать не напечатанные символы \[
и \]
(есть обсуждение этого в конце ответа о цветах).