Как установить цвет командной строки в Bash?

Как установить цвет командной строки в Bash?

Просмотр результатов последней команды в Bash немного затруднен, поскольку командная строка и результаты имеют одинаковый цвет. Это затрудняет разделение результатов последовательных команд.

Как изменить цвет, например, на розовый?

решение1

@Rob прав; в частности, изменить цвет на светло-красный (розовый недоступен):

PS1 = "\[\033[1;31m\]\u:\w\$\[\033[0m\] "
#      ^^^^^^^     ^^                    Begin/end ANSI escape
#             ^^^^^                      "light red foreground"
#                    ^^^^^^^             Your original prompt
#                           ^^^^^^^^^^^  Reset color back to default foreground

Вам необходимо использовать управляющие последовательности ANSI (в данном случае 1;31mкод для «светло-красного переднего плана»), которые заключены в скобки \[\033[и \].

Редактировать:Светло-фиолетовый цвет может быть ближе к желаемому вами цвету; PS1изменение оставлено в качестве упражнения для читателя.

ссылка @ проект документации Linux

решение2

Если вам нужно альтернативное решение, вы можете создать небольшой скрипт для настройки цветов сеанса терминала PS1, не делая их постоянными (если вы не хотите, чтобы цвета были постоянными, следуйте решению Алекса).

Если мы создадим yellow.shи сохраним файл в /usr/binкаталоге, а затем сделаем его исполняемым, то chmod +x yellow.shмы сможем отредактировать его yellow.shи добавить следующий код:

#!/bin/bash
clear

# Yellow color variable
ylw='\x1b[93m'

echo -e "${ylw}"
clear

Запуск этого скрипта изменит цвет вашего терминала на желтый. Вы можете сбросить цвет PS1 таким же образом, используя этот код:

#!/bin/bash
clear

# Reset color to default
rst='\x1b[0m'

echo -e "${rst}"
clear

Вот краткий список некоторых переменных цветового кодирования, которые вы можете использовать.

black=$'\x1b[90m' # Dark gray. Not used much.
red=$'\x1b[91m'
green=$'\x1b[92m'
yellow=$'\x1b[93m'
blue=$'\x1b[94m'
purple=$'\x1b[95m'
cyan=$'\x1b[96m'
pink=$'\x1b[97m'
default=$'\x1b[0m' # Reset to default color.

Использование общих команд внутри простых скриптов:

echo -e "${red} $(ls $1) ${default}" # Argument would be the directory you want to list.

Это можно сделать довольно быстро в зависимости от того, как вы настроите используемые цвета. Цветовые коды, которые я предоставил, не все. В зависимости от того, какие цвета поддерживает ваш терминал, вы можете использовать диапазон из 256 цветов.

Связанный контент