Подсветка синтаксиса в mcedit и bash
Jan 2, 2017 18:07 · 202 words · 1 minute read console
«Как включить подсветку синтаксиса в mcedit и bash?» — ответ на этот несложный вопрос настолько прост, что я сам постоянно забываю как это делается… Давайте разберемся!
Итак, сначала разберемся с mcedit . Чтобы включить подсветку синтаксиса в этом популярном редакторе необходимо открыть любой имеющийся файл в режиме редактирования (начать F4 или в консоли выполнить mcedit somefile.inc ) и нажать комбинацию клавиш Ctrl+S.
Это срабатывает в 99% случаев, но если подсветка синтаксиса в mcedit не включилась, то нужно немного подправить конфигурационный файл /usr/share/mc/syntax/Syntax :
Находим строку include unknown.syntax и изменяем ее на include sh.syntax и после проделанных действий появится подсветка синтаксиса.
Чтобы включить подсветку синтаксиса bash для всех пользователей в системе следует в конфигурационном файле /etc/skel/.bashrc найти и раскомментировать строку force_color_prompt=yes , после чего перелогиниться в системе.
Также можно изменить стандартные цвета по своему вкусу, делается это также в конфиге /etc/skel/.bashrc в строке PS1=’$
Вот список цветов, которые можно применять для подсветки синтаксиса в bash :
Индивидуальные настройки подсветки синтаксиса для каждого пользователя можно настраивать в конфигурационном файле /home/$USER/.bashrc
Еще один пример «раскраски» консоли в Linux, а также изменение приветствия мы рассматривали ранее.
Источник
Делаем Linux терминал красивым и удобным
Добавляем функциональность
Командная оболочка
Большинство дистрибутивов поставляется со встроенным Bash. Используя дополнения можно сделать из него все что захотите, но гораздо проще этого добиться с Zsh. Почему?
Настройка Zsh
Для начала, установим Zsh (если он уже установлен, например, как в Manjaro, можете пропустить этот пункт):
Когда вам предложат установить Zsh как оболочка по-умолчанию, нажмите Y , чтоб подтвердить.
Oh-My-Zsh — популярный и активно развивающийся фреймворк Zsh, который позволяет гибко настроить оболочку терминала. Установим его:
Подсветка синтаксиса. Гораздо проще ориентироваться по содержимому терминала, когда разные части команд подсвечены разными цветами. Например, директории будут подчеркиваться, а команды — выделяться цветом, отличным от обычного текста. Установим плагин zsh-syntax-highlighting :
Чтоб плагин заработал, его надо подключить.
/.zshrc меняем строку с plugins= :
Если такой строки нет — добавьте её.
Готово! Получаем удобный и функциональный терминал. Теперь сделаем его визуально приятным.
Настраиваем внешний вид
Скачиваем и добавляем в систему шрифт JetBrains Mono Nerd (c иконками):
Выберитеодин из списка, в папке шрифт/complete выберите шрифт без «Windows Compatible», с окончанием «Mono».
Подключаем шрифт и тему.
Если в файле эти строки уже есть — замените их.
Цвета. Важная часть оформления терминала — цветовая схема. Я перебрал много разных схем, редактировал их, остановился на Monokai Dark. Не режет глаза, но при этом приятная и яркая. Список цветов:
В разных терминалах по-разному меняется цветовая схема (обычно, это делается через настройки терминала), но порядок цветов везде одинаковый. Вы можете импортировать этот шаблон в формате Termite и экспортировать его для вашего терминала через terminal.sexy
Запускаем конфигурацию темы: p10k configure .
Настройте тему, выбирая варианты отображения, которые вам больше нравятся.
Финальный штрих — меняем конфиг темы и заменяем встроенные цвета.
Если в файле эти строки уже есть — замените их. Коды цветов можно получить командой
- Отображение только текущей директории:
Источник
Цветной man или как разукрасить вывод echo
Когда пишешь даже минимальный скриптик, часто используешь echo — подсказки.
Согласитесь «цветной man» ведь намного приятнее читать, так почему бы не раскрасить вывод echo?
это достаточно легко.
Итак…
Задача:
Раскрасить текстовую строку выводимую на экран через команду echo
т.е. раскрасить эти самые подсказки
Что нужно:
1) man echo
www.opennet.ru/man.shtml?topic=echo&category=1
Из него нам пригодится точно
echo -e # ключ -e в комманде echo включает отображение «backslash escapes» ; например \n — переход на следующую строку, \t -табуляция
echo -n # ключ -n в команде echo сигнализирует, что после вывода информации не нужно переходить на следующую строку.
echo -en # в нашем случае поможет раскрасить вывод текста.
2) Хорошая статья с примерами «Управление консолью Linux» RUS
c-reaction.net/content/204
Для начала одним глазом хотябы посмотрим на man echo rus, а потом рассмотрим как использовать цвет
www.opennet.ru/man.shtml?topic=echo&category=1
Переходим к Управлению цветом:
tput sgr0 Возврат цвета в «нормальное» состояние
\033[0m все атрибуты по умолчанию
\033[1m жирный шрифт (интенсивный цвет)
\033[2m полу яркий цвет (тёмно-серый, независимо от цвета)
\033[4m подчеркивание
\033[5m мигающий
\033[7m реверсия (знаки приобретают цвет фона, а фон — цвет знаков)
\033[22m установить нормальную интенсивность
\033[24m отменить подчеркивание
\033[25m отменить мигание
\033[27m отменить реверсию
\033[30 чёрный цвет знаков
\033[31 красный цвет знаков
\033[32 зелёный цвет знаков
\033[33 желтый цвет знаков
\033[34 синий цвет знаков
\033[35 фиолетовый цвет знаков
\033[36 цвет морской волны знаков
\033[37 серый цвет знаков
\033[40 чёрный цвет фона
\033[41 красный цвет фона
\033[42 зелёный цвет фона
\033[43 желтый цвет фона
\033[44 синий цвет фона
\033[45 фиолетовый цвет фона
\033[46 цвет морской волны фона
\033[47 серый цвет фона
Таблица цветов и фонов:
black 30 40 \033[30m \033[40m
red 31 41 \033[31m \033[41m
green 32 42 \033[32m \033[42m
yellow 33 43 \033[33m \033[43m
blue 34 44 \033[34m \033[44m
magenta 35 45 \033[35m \033[45m
cyan 36 46 \033[36m \033[46m
grey 37 47 \033[37m \033[47m
Допускается объединение этих управляющих последовательностей.
Например \033[1m\033[5m\033[36m может быть заменено эквивалентной последовательностью \033[1;5;36m.
#!/bin/sh
#
# скрипт выводит на экран сообщение с использованием цвета
#
echo -en «\033[37;1;41m Внимание \033[0m»
#!/bin/sh
#
# скрипт запускает копию командного интерпретатора sh
# с цветным приглашением
#
export PS1= «\[\033[1;30m\][\[\033[0m\]\t\[\033[1;30m\];\
\[\033[0m\]\W\[\033[1;30m\]]\[\033[36;1m\]|\[\033[0m\] »
echo «Now runing a new copy of shell width color prompt»
echo -en «use \033[1;36mexit\033[0m command or»
echo -e «\033[1;36m^D\033[0m to return back»
sh
#
# обратите внимание на то, что управляющие последовательности
# заключены в скобки «\[» и «\]»
# Это сделано для того, чтобы shell не учитывал их при
# оценке длины строки.
# В противном случае длинные строки будут переноситься неверно.
#
Для удобства пользвания можно цвет и доп. свойства назначить переменным:
Файл .sh должен быть в формате UNIX и с кодировкой UTF-8
Ну и напоследок — один хороший пример со всеми плюшками:
#!/bin/sh
# echo подсветка
# echo color
# Скрипт выводит на экран список меню
clear # Очистка экрана
#Памятка, Таблица цветов и фонов
#Цвет код код фона
#black 30 40 \033[30m \033[40m
#red 31 41 \033[31m \033[41m
#green 32 42 \033[32m \033[42m
#yellow 33 43 \033[33m \033[43m
#blue 34 44 \033[34m \033[44m
#magenta 35 45 \033[35m \033[45m
#cyan 36 46 \033[36m \033[46m
#white 37 47 \033[37m \033[47m
# Дополнительные свойства для текта:
BOLD= ‘\033[1m’ # $
DBOLD= ‘\033[2m’ # $
NBOLD= ‘\033[22m’ # $
UNDERLINE= ‘\033[4m’ # $
NUNDERLINE= ‘\033[4m’ # $
BLINK= ‘\033[5m’ # $
# Цвет текста:
BLACK= ‘\033[0;30m’ # $
RED= ‘\033[0;31m’ # $
GREEN= ‘\033[0;32m’ # $
YELLOW= ‘\033[0;33m’ # $
BLUE= ‘\033[0;34m’ # $
MAGENTA= ‘\033[0;35m’ # $
CYAN= ‘\033[0;36m’ # $
GRAY= ‘\033[0;37m’ # $
# Цветом текста (жирным) (bold) :
DEF= ‘\033[0;39m’ # $
DGRAY= ‘\033[1;30m’ # $
LRED= ‘\033[1;31m’ # $
LGREEN= ‘\033[1;32m’ # $
LYELLOW= ‘\033[1;33m’ # $
LBLUE= ‘\033[1;34m’ # $
LMAGENTA= ‘\033[1;35m’ # $
LCYAN= ‘\033[1;36m’ # $
WHITE= ‘\033[1;37m’ # $
# Цвет фона
BGBLACK= ‘\033[40m’ # $
BGRED= ‘\033[41m’ # $
BGGREEN= ‘\033[42m’ # $
BGBROWN= ‘\033[43m’ # $
BGBLUE= ‘\033[44m’ # $
BGMAGENTA= ‘\033[45m’ # $
BGCYAN= ‘\033[46m’ # $
BGGRAY= ‘\033[47m’ # $
BGDEF= ‘\033[49m’ # $
tput sgr0 # Возврат цвета в «нормальное» состояние
#Начало меню
echo «»
echo -n » »
echo -e «$
echo «»
echo -en «$
echo «»
echo -en «$
echo «»
echo -en «$
echo «»
echo -en «$
echo «»
echo -en «$
echo «»
echo -en «$
echo «»
echo -en «$
echo «»
echo -en «$
echo «»
echo -en «$
echo «»
echo -en «$
echo «»
echo «(Введите пожалуйта номер пункта, чтобы выполнить комманды этого пункта, любой другой ввод, Выход)»
echo «»
tput sgr0
ps: Подскажите, пожалуйста, в какой блог лучше опубликовать?
UPD1: перенес в Linux для всех, т.к. это наиболее близкий блог по тематике, как мне кажется.
UPD2: Спасибо aco за картинку, кратко и наглядно =)
Источник
Разноцветные терминалы
В этой публикации я расскажу о некоторых трюках, которые украсят будни любого системного администратора Linux (и не только). Все они связаны с переменной PS1 оболочки bash. Переменная PS1 определяет, как будет выглядеть приглашение для ввода новых команд. И каждый пользователь может переопределять её как пожелает, например, в файле
/.bashrc (который выполняется при запуске bash и используется для в том числе для конфигурации).
Для начала рассмотрим простой вариант, мой любимый формат командной строки.
Результат будет вот такой:
Это обычное использование переменной PS1, но если бы я не начал с этого — рассказ был бы неполным. Обычно в переменной PS1 с помощью специальных последовательностей символов определяют формат приглашения для ввода команд. Подробный список этих последовательностей можно почитать в документации к bash, в данном примере:
- \t — вывод «текущего времени», на самом деле это получается время завершения выполнения предыдущей команды, удобно когда перед глазами.
- j\j — выводит символ j и после него количество запущенных job, т.е. процессов в фоне. Это тоже удобно иметь перед глазами чтобы случаем про них не забыть когда соберешься закрыть терминал.
- \u@\h — имя пользователя и название сервера. Если работаете с несколькими серверами через удаленные терминалы — чтобы не путаться.
- \w — после двоеточия — рабочая директория.
- \n — поскольку строка получилась хоть и информативной (что-то вроде статус бара), но длинной, то приглашаем вводить команды с новой строки, а эта верхняя строка будет наглядно отделять от результата работы предыдущей команды.
- \$ — на новой строке будет выводится символ либо $ для обычного пользователя либо # для root’а и отделив его пробелом можно приглашать вводить новую команду.
Казалось бы, чего еще желать… Но дальше будет интереснее. Дело в том, что с помощью специальных управляющих символов можно задавать цвет выводимого текста, цвет курсора и даже переопределять title bar у таких графических терминалов, как Gnome2. И, на мой взгляд, довольно удобно когда цветом отделяются терминалы запущенные на различных серверах. Для меня каждый сервер ассоциируется с каким-то цветом и в этот цвет мы будем красить командную строку и курсор на каждом сервере.
У меня .bashrc разделен на два файла, в самом .bashrc содержится общий код для всех серверов, а в .bash_local — уникальные для этого сервера настройки командной строки. .bash_local я буду вставлять в .bashrc специальной директивой. Начнем с .bash_local. В контексте данной статьи там у меня будут две строчки, которые определяют цвет этого сервера:
Просто заношу коды цвета в переменные. Но, как вы заметили, что способ задания цвета для курсора и для текста командной строки — разный. Почему-то так исторический получилось. Чтобы понять, какой цвет каким кодом кодируется, есть подходящая картинка.
Посредине — обозначение цвета для цвета курсора, снизу — обозначение цвета для текста. Как вы можете увидеть, что я для текста и курсора использую цвет морской волны. Т.к. название сервера petrel («буревестник»), то он ассоциируется у меня с этим цветом.
Теперь .bashrc, тоже показываю его не полностью, а только то что имеет отношение к теме:
Тут я вставляю код из .bash_local в общий файл. Таким образом определяться ранее описанные переменные с цветом сервера.
Еще две переменные определяю с чисто красным цветом, он будет использоваться для маркировки терминалов привелигированного пользователя (root’а).
Тут проверяется какой используется терминал. Для любого неизвестного или неподдерживающего цвета будет использоваться приглашение без цвета (PS1=’\t j\j \u@\h:\w\n\$ ‘) так, как я это описал в начале статьи. Но если имя терминала начинается на xterm или rxvt, например, так себя позиционирует терминал Gnome, начинаем кудесить с цветом. Первая строчка — задаем цвет текста — цвет сервера и выводим первую строку приглашения ввода команд. Она всегда будет окрашена в цвет сервера. Вторая строчка — проверяем, работаем ли мы под непривелигированным или привелигированным пользователем (root’ом). Если root — то переопределяем цвета на красный. Третья строчка — формируем вторую строчку приглашения и определяем цвет курсора в терминале. Т.е. там у нас получится либо $ и через пробел курсор, оба покрашенные в цвет сервера, если пользователь обычный. Либо красный # и через пробел красный курсор, если это root.
А это, если честно, один в один скопированно из первоначального .bashrc от Дебиана. Знаю, что этот код видоизменяет title bar у окна, размещает там информацию об пользователе, сервере и домашней директории. Но поскольку этот код придумал не я, комментировать его не буду.
В результате у нас должно получится так, как на картинке в самом начале публикации.
Источник