красный шрифт терминала при root

Эта команда отображает все интерфейсы и их соответствующие IP-адреса, разделенные пробелом в строке

ip r|grep " src "|cut -d " " -f 3,12 | xargs

ссылка:https://stackoverflow.com/questions/38041163/display-only-network-interface-and-ip-address-using-ifconfig-and-awk

1
08.11.2019, 01:07
2 ответа

Вы можете добавить это в /etc/bash.bashrcили отредактировать/etc/profile/

force_color_prompt=yes

    if [ "$LOGNAME" = root ] || [ "`id -u`" -eq 0 ] ; then
        PS1='\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;34m\]#\033[00m\] '
    else
        PS1='\u@\h:\w\$ '
    fi

и вы получите подсказку, которая выглядит следующим образом. Если вы используете белый фон,измените последнюю часть после #на \033[01;30m\], чтобы вы могли видеть текст команды. Я включил это как второй пример для справки.

Visual appearance

также, если вы добавите следующее в \etc\bash.bashrcили ~/.bashrc:

export col_white='\033[00m'
export col_black='\033[01;30m'

export col_red='\033[01;31m'
export col_green='\033[01;32m'
export col_yel='\033[01;33m'
export col_blue='\033[01;34m'

Вы сможете:

$ echo -e $col_red red $col_blue blue $col_yel yellow $col_green green
 red blue yellow green

с выводом, выглядящим так:

enter image description here


РЕДАКТИРОВАТЬ:По какой-то причине использование расширения переменной для подсказки прерывает возврат каретки (, он блокирует его до длины переменной, т.е. толкает его вперед на n -много пробелов, соответствующих echo $col_blue, echo $col_white, и у меня есть на данный момент не найдено хорошего решения для этого, но использование правильного брекетинга без подстановки переменных, как указано выше, решает эту проблему.

if [ "$LOGNAME" = root ] || [ "`id -u`" -eq 0 ] ; then
    PS1="$col_red\u@\h:$col_purple\w$col_green# $col_white"
else
    PS1="\u@\h:$col_blue\w$col_yel\$ $col_white "
fi
5
27.01.2020, 23:40

для RHEL/CentOS 7.x Я думал, что настраиваемые вещи, подобные этому, должны быть в /etc/profile.dили что-то вроде /etc/bashrc.local. Таким образом, любая настройка сохраняется после обновлений, когда что-то вроде /etc/bashrcможет быть изменено или заменено.

для RHEL/Centos 7, я думал, что нужно только поместить файл под /etc/profile.d/с соответствующими суффиксами для оболочек, для которых они предназначены,

так что я сделал /etc/profile.d/redrootprompt.shимея только

if [ "$LOGNAME" = root ] || [ "`id -u`" -eq 0 ] ; then

    PS1='[\[\033[01;31m\]\u@\h\[\033[00m\]:\w] : '

else
    PS1='[\u@\h \w] : '
fi

и это прекрасно работает, придавая вид, который я хотел

red root prompt

он также работает в окне шпатлевки, которое имеет черный фон и белый текст, но становится красным после su для корневого доступа и снова становится белым при выходе.

1
27.01.2020, 23:40

Теги

Похожие вопросы