1

Есть ли способ использовать sudo -s но сохранить текущее имя папки в приглашении?

Терминал

Я хочу видеть jw:documents nescalante$ вместо bash-3.2# при использовании sudo -s .

Спасибо!

1 ответ1

2

Когда вы используете sudo -s вы получаете поведение, похожее на sudo /bin/bash .
Переменная USER имеет значение root и больше не nescalante .

Вы можете поместить в свой .bashrc или, что еще хуже, в свой .bash_aliases блок IF THEN, чтобы установить приглашение, когда вы являетесь пользователем root.

if [ "$USER" = "root" ]
then
  export PS1="\[\e[36;1m\]\u@\[\e[32;1m\]\h \[\e[34;1m\]\w> \[\e[0m\]"
fi

Если вы не хотите знать, что вы являетесь пользователем root в этой оболочке, вы можете написать

  export PS1="\[\e[36;1m\]HowIWantToBe@\[\e[32;1m\]\h \[\e[34;1m\]\w> \[\e[0m\]"

но я настоятельно рекомендую оставить уведомление, что вы root. root может удалить систему с помощью одной командной строки, так что вы даже не сможете создать образ :).

Замечания:

  • Если вы используете оболочку, отличную от bash вам придется писать с другим синтаксисом в файле, отличном от .bashrc .
  • Вы можете найти значение подсказки PS1, которое в данный момент используется для вашего пользователя, в стартовом файле вашей оболочки (например, .bashrc) и скопировать / изменить его по своему желанию.
  • Если вы хотите лучше узнать, как работают команды sudo и su обратитесь к справочным страницам или посмотрите здесь, например.

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