On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Раскрасим консоль Linux

Честно говоря, мне было очень приятно читать письмо, в котором один из читателей газеты сказал, что ему больше нравится консоль, а не этот навороченный графический интерфейс KDE.

Во многом я с ним согласен: линуксовая консоль является очень мощным инструментом. Даже работая в KDE, я всегда держу запущенной терминалку, так как большинство команд я задаю в ней. 
Для меня проще набрать команду запуска смотрелки картинок из консоли, набрав в параметре имя файла для просмотра, чем тянуться за мышкой, искать в меню иконку вьюера, а потом ковыряться в его интерфейсе полчаса, пока я доберусь до нужного файла. А скриптовый язык шелла? 
Это вообще мощнейший инструмент, годящийся для реализации очень многих повседневных задач. 'Да, все это классно, - скажете вы, - может, консоль и круто, но как надоедает глядеть на черно-белые сообщения и слушать визг спикера'. 
А ведь мы можем озвучить и раскрасить вашу консоль! Так давайте и займемся этим немедленно!
Управление звуком. Для этого используются следующие коды:
- \007 - издать звук;
- \033[10;#] - установить частоту звукового сигнала в герцах;
- \033[11;#] - установить продолжительность звукового сигнала в миллисекундах.
Допускается объединение двух последних управляющих последовательностей. Например, \033[10;55]\033[11;30] может быть заменено эквивалентной последовательностью \033[10;55;11;30].
Для примера, наберите и выполните следующий скрипт:
#!/bin/sh
echo -en "\033[10;5000;11;200]\7"
Скрипт устанавливает продолжительность и частоту звукового сигнала равными 5000Hz и 200ms, соответственно, и издает звуковой сигнал. Т.е. для любого вашего скрипта, события, команды вы можете теперь задать свой особенный звук.
Теперь займемся раскраской. Коды управления цветом:
- \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 - серый цвет фона.
Допускается объединение этих управляющих последовательностей. 
Например, \033[1m\033[5m\033[ 36m может быть заменено эквивалентной последовательностью \033[1;5;36m.
Пример, скрипт выводит на экран сообщение с использованием цвета:
#!/bin/sh
echo -en "\33[37;1;41m WARNING \33[0m"
Еще пример - скрипт запускает копию командного интерпретатора sh с цветным приглашением:
#!/bin/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 не учитывал их при оценке длины строки. В противном случае длинные строки будут переноситься неверно.
Управление положением курсора. Управляющие коды:
- \033[#A - передвинуть курсор вверх на # строк;
- \033[#B - передвинуть курсор вниз на # строк;
- \033[#С - передвинуть курсор вправо на # столбцов;
- \033[#D - передвинуть курсор влево на # столбцов;
- \033[#E - передвинуть курсор вниз на # строк и поставить в начало строки;
- \033[#F - передвинуть курсор вверх на # строк и поставить в начало строки;
- \033[#G - переместить курсор в указанный столбец текущей строки;
- \033[#;#H - задает абсолютные координаты курсора (строка, столбец).
Пример. Следующий скрипт выводит на экран список устройств и на его фоне печатает строку "Это список устройств":
#!/bin/sh
ls -l /dev
echo -en "\033[12A\033[30G\033[1;5;31;41m Это список устройств \033[0m\033[12E"

Работа с палитрой. Управляющие коды:
- \033]Pnrrggbb - изменяет палитру; n - номер цвета; rr,gg и bb - значения RGB-компонент в шестнадцатеричной форме;
- \033]R - восстанавливает палитру, принятую по умолчанию.
Пример. Следующий скрипт делает фон красноватым, такой фон можно сделать для root'овской консоли:
#!/bin/sh
echo -en "\033]0550000"
Работа с виртуальными консолями. Здесь применяется один код: \033[12;#] - сделать текущей консоль с указанным номером.
Пример. Следующий скрипт делает текущей консоль, на которой запущена самая прожорливая задача:
#!/bin/sh
ps aOv | tail -n1 | (read vpid vtty vother
echo -en "\033[12;${vtty}]")
Работа с терминалкой (xterm). Управляющие коды:
- \033]0;text\007 - присваивает имя окну и иконке;
- \033]1;text\007 - присваивает имя иконке;
- \033]2;text\007 - присваивает имя окну.
Пример. Этот скрипт присваивает имена окну и иконке:
#!/bin/sh
echo -en "\033]2;Мое любимое окно\007\033]1;Моя любимая иконка\007"
Вот таким, собственно, образом вы можете разнообразить свою работу. Приятного времяпрепровождения в Linux и чистой вам консоли!:)

X-Stranger



Литература по Linux