Intereting Posts
Разрыв экрана с помощью Nvidia Prime Не удается установить sqlite3 единичный центр управления не работает в i3wm на Ubuntu 16.04 Что означает org.freedesktop.systemd1? установка и использование андроид-студии с virt на ubuntu 16.04 Расширение GNOME для создания элементов верхнего уровня имеет свои собственные статусные меню? Как использовать ключ ssh в gftp? Как я могу зашифровать свой интернет-трафик, чтобы я мог безопасно использовать публичный Wi-Fi? Как настроить meld как инструмент слияния на Ubuntu 15.10? Что означает приложение, должно закончиться / opt? Как успешно перезапустить сеть без перезагрузки? Невозможно переключиться между консольным режимом и графическим интерфейсом Как настроить RAID 1 только на части моих жестких дисков, после установки Ubuntu 14.04? Dropbox не работает, когда я могу войти в систему удаленно через ssh Как увеличить память, выделенную для java? java.lang.OutOfMemoryError: пространство кучи Java

Изменение поведения подсказки bash при работе с правами root

Прежде чем вы нажмете, это не типичный вопрос «как мне задать вопрос о bash prompt color». Я уже настроил приглашение bash выглядеть следующим образом:

[user @ host]----[$(pwd)] $ 

где все в скобках светло-голубое, а все остальное (включая $) – черное, добавив следующее в мой файл ~ / .bashrc

 # Turn the prompt symbol red if the user is root if [ $(id -u) -eq 0 ]; then # you are root, make the prompt red PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n\e[01;31m#\e[00m " else PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n$ " fi 

Цель состоит в том, чтобы сделать так, что единственное, что меняется, когда я использую sudo su, – это то, что черный $ переходит в красный #. Я просмотрел /etc/bash.bashrc и / etc / profile, чтобы увидеть, есть ли только строка для комментариев, но есть куча вещей о debian_chroot, которые я не понимаю, и я не хочу чтобы что-то прикрутить. Как я могу выполнить то, что хочу?

PS Это то, что я хочу, чтобы приглашение выглядело как root

 [user @ host]----[$(pwd)] (red)# 

edit: Отметьте это, добавив вышеуказанный код в ~ / .bashrc, а корень выполнил мою цель. Кроме того, в приведенном выше коде $ (pwd) отображает только домашний каталог (я думаю, потому что это рабочий каталог при открытии терминала) и никогда не обновляется. Замена $ (pwd) на \ w исправляет это, но отображает домашний каталог как ~ , которого я пытался избежать.

Это также будет зависеть от того, как вы становитесь пользователем root. Вам нужно внести изменения в .bashrc пользователя root, если вы используете что-то вроде su - root или sudo -i , где вы читаете в среде.

С sudo -s вы должны читать свой собственный .bashrc.

Подумайте о добавлении некоторых команд printf или echo для отладки кода, чтобы сообщить вам, когда он был выполнен.

Используйте команду id чтобы убедиться, что вы являетесь тем, кем вы считаете себя:

 root@tau:~# id uid=0(root) gid=0(root) groups=0(root) 

Следуя действительному ответу belacqua https://askubuntu.com/a/305053/12218 , выпустив sudo su, загрузится загрузочный файл .bashrc.

Вы можете проверить это, выпуская sudo su за которым следует cd ~ вы увидите, что находитесь в домашнем каталоге root.

Используя sudo su вы регистрируетесь как root (su = switch user), в противоположность
sudo do some administrative task как пользователь с повышенными привилегиями.

Таким образом, используя sudo su вы становитесь фактическим корнем, а изменения, внесенные в среду, – это изменения, сделанные специально для root, то есть: sudo su а затем vim .bashrc .

Чтобы изменить цвет приглашения на красный для root, я изменил файл .bashrc , следуя примерам в этом потоке.

 regularuser@myubuntubox:~$ sudo su - root@myubuntubox:~# vim .bashrc 

Затем в vim найдите окончательный вид назначения PS1 и добавьте его после него (обратите внимание, что он обновляет значение $PS1 так что другие предыдущие строки не нуждаются в изменении, и это изменение легко обратимо):

 # Set RED prompt PS1="\[\e[01;31m\]$PS1\[\e[00m\]"