soft :: linux

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



Раскрасим консоль 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
xstranger@tut.by
www.linux4u.narod.ru


(c) компьютерная газета





© компьютерная газета