Я хотел бы изменить приглашение bash при входе в систему. Но даже после того, как я изменил .bashrc и повторно вошел в систему, он все равно предлагает старый. Что идет не так, пожалуйста?

Я хочу получить [\u@\h \W]\$ но я получаю \s-\v\$ по некоторым причинам, и я не знаю, где он был настроен.

Эта учетная запись не является root, однако при необходимости у меня есть права root

Вот что я получаю:

-bash-3.2$ cat .bashrc
PS1='[\u@\h \W]\$'
-bash-3.2$ echo $PS1
\s-\v\$
-bash-3.2$

1 ответ1

1

Скорее всего, ваша оболочка представляет собой интерактивную оболочку входа в систему, поэтому она читает не ~/.bashrc а ~/.bash_profile :

   When  bash is invoked as an interactive login shell, or as a non-inter‐
   active shell with the --login option, it first reads and executes  com‐
   mands  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, and reads and executes commands from the first one that
   exists and is readable.  The --noprofile option may be  used  when  the
   shell is started to inhibit this behavior.

Быстрое и грязное исправление может заключаться просто в символической ссылке ~/.bashrc в ~/.bash_profile или наоборот. Это возможно что-то ломает с неинтерактивными оболочками, например, команды запускаются удаленно через SSH, так что подумайте дважды.

Смотрите раздел "INVOCATION" в man bash для более подробной информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .