Цвета в терминале

Как работу в терминале сделать удобнее? Нужно добавить в неё краски! В этой статье я покажу как сделать цветное двухстрочное bash приглашение (PS1), как добавить подсветку синтаксиса в редактор nano и как добавить цвета для обычных GNU/Linux команд.

Цветное приглашение (PS1)

ps1

Как показала практика, использование двухстрочного варианта приглашения bash является наиболее удобным решением. Появляется целая строка, в которую можно поместить любую необходимую вам информацию, да и любая вложенность текущей директории не будет причинять неудобств в работе.

Мой код формирования PS1 (файл ~/.bashrc):

INPUT_COLOR="\[\033[0m\]"
DIR_COLOR="\[\033[0;33m\]"
DIR="\w"
 
LINE_VERTICAL="\342\224\200"
LINE_CORNER_1="\342\224\214"
LINE_CORNER_2="\342\224\224"
LINE_COLOR="\[\033[0;37m\]"
 
USER_NAME="\[\033[0;32m\]\u"
SYMBOL="\[\033[0;32m\]$"
 
if [[ ${EUID} == 0 ]]; then
    USER_NAME="\[\033[0;31m\]\u"
    SYMBOL="\[\033[0;31m\]#"
fi
 
PS1="$LINE_COLOR$LINE_CORNER_1$LINE_VERTICAL $USER_NAME $DIR_COLOR$DIR \n$LINE_COLOR$LINE_CORNER_2$LINE_VERTICAL $SYMBOL $INPUT_COLOR"

Для более простой модификации в будущем, я решил формировать свой PS1 таким образом, с разделением на разные участки.

Цветной nano

nano_color

Для быстрого редактирования конфигурационных файлов многие (и я в том числе) используют редактор nano. По умолчанию в нём нет никакой подсветки синтаксиса, что, иногда, делает процесс чтения затруднительным. К счастью, подсветку синтаксиса можно легко добавить (команды предназначены для Arch Linux).

Установите пакет nano-syntax-highlighting-git из AUR.

$ yaourt -S nano-syntax-highlighting-git

Не забудьте скопировать пример конфигурационного файла в ~/.nanorc.

$ cat /usr/share/nano-syntax-highlighting/nanorc.sample | xargs -0 echo >> ~/.nanorc

Цветные команды

color_cmds

Во первых, если вы используете sudo, вашему .bashrc обязательно понадобится это:

alias sudo='sudo '

Эта команда даёт bash понять, что после sudo есть слово, которое тоже следует проверить.

Затем идут стандартные alias команды для используемых программ:

alias ls='ls --color=always'
alias dmesg='dmesg --color=always'
alias grep='grep --color=always'
alias gcc='gcc -fdiagnostics-color=always'
alias pacman='pacman --color=always'
alias dir='dir --color=always'
alias diff='diff --color=always'

Подсветка для root пользователя

Также следует добавить символическую ссылку на ваш .bashrc для root пользователя (username замените на имя своего пользователя):

# ln -s /var/www/username/.bashrc /root/.bashrc

Аналогично для .nanorc:

# ln -s /var/www/username/.nanorc /root/.nanorc

Полезные ссылки

Перейти к верхней панели