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

Как работу в терминале сделать удобнее? Нужно добавить в неё краски! В этой статье я покажу как сделать цветное двухстрочное 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 /home/username/.bashrc /root/.bashrc

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

# ln -s /home/username/.nanorc /root/.nanorc

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

  • AlekseyShi

    Благодарим! Опробуем тоже эти фишки :)
    Вчера только воткнул 01-01-2016 Арчик… :)
    https://cloud.mail.ru/public/AMPz/fbADdW7KN

    • Поздравляю, но в Xfce есть программа для снятия скриншотов :)

      • AlekseyShi

        Да, но у меня фотки сразу в Облако улетают, а скриншоты еще не настроил.

  • AlekseyShi

    Я вот так еще делаю

    Поднимаем привилегии
    [root@localhost ~]# export EDITOR=nano
    Теперь visudo запустится в редакторе nano
    [root@localhost ~]# visudo

    Установка nano в качестве редактора по умолчанию и запрет visudo использовать EDITOR/VISUAL.
    Defaults editor=/usr/bin/nano, !env_editor

    Предоставить членам группы wheel доступ sudo без пароля:
    %wheel ALL=(ALL) NOPASSWD: ALL
    [root@localhost ~]# reboot

    Теперь заходим в систему под созданным пользователем qq.
    При выполнении команды не должно спросить пароля
    [qq@localhost ~]$ sudo pacman -Sy

  • Alex Kolarov

    Есть Видео ? Я нечего не понял

    • Нет, видео нет.

  • Konstantin

    Перенос на другую строку после имени пользователя с линией как на скрине как сделать?

    • С помощью символа n.
      А чтобы сделать как на скрине, нужно скопировать содержимое первого блока с кодом в свой .bashrc

  • DavidOz

    Уважаемый ziggi. Ваша статья мне очень понравилась и я скачал ваш bash файл и заменил им родной файл в Ubuntu 16.04. Все бы было замечательно, если бы не одно но! При переходе на root идет стандартная строка, не красного цвета и не в 2 ряда.В конце статьи как я понял инструкция для root. Так как я начинающий пользователь линукса, не могли бы вы сказать как именно сделать подсветку для root? Спасибо заранее.

    • Достаточно ввести эту команду из-под root пользователя:

      ln -s /home/username/.bashrc /root/.bashrc
      • DavidOz

        Ввел эту команду из под root, выдала вот что

        ln: failed to create symbolic link ‘/root/.bashrc’: Файл существует

        Может что то не так делал? Вот собственно как и что делал: Скачал с Git ваш файл .bachrc и заменил им родной файл. Пишет вот что файл существует. Я же пробовал эту команду удаляя вообще .bachrc файл. Может есть еще каталог где обитает этот файл, а я просто не там роюсь? Вот по какому пути я ищу: /home/davidoz(имя пользователя)/ Что я не так делаю?(

        • Для пользователя файл должен находиться здесь: /home/davidoz/.bashrc, а для root здесь: /root/.bashrc. Просто удали существующий файл:

          # rm /root/.bashrc
          • DavidOz

            Все)) Огромное спасибо что потратили время на новичка) Теперь гораздо приятнее изучать линукс и пытаться осваивать терминал)

      • Виталий Сусляков

        можно в .bashrc рута просто написать source /home/username/.bashrc

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