Нужен домен? Предлагаем домен в зоне RU или РФ всего за 169 рублей. Подробнее »

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

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



Во многом я с ним согласен: линуксовая консоль является очень мощным инструментом. Даже работая в KDE, я всегда держу запущенной терминалку, так как большинство команд я задаю в ней. 

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

Это вообще мощнейший инструмент, годящийся для реализации очень многих повседневных задач. 'Да, все это классно, - скажете вы, - может, консоль и круто, но как надоедает глядеть на черно-белые сообщения и слушать визг спикера'. 

А ведь мы можем озвучить и раскрасить вашу консоль! Так давайте и займемся этим немедленно!

Управление звуком. Для этого используются следующие коды:


- 07 - издать звук;

- 33[10;#] - установить частоту звукового сигнала в герцах;

- 33[11;#] - установить продолжительность звукового сигнала в миллисекундах.

Допускается объединение двух последних управляющих последовательностей. Например, 33[10;55]33[11;30] может быть заменено эквивалентной последовательностью 33[10;55;11;30].

Для примера, наберите и выполните следующий скрипт:

#!/bin/sh


echo -en "33[10;5000;11;200]7"

Скрипт устанавливает продолжительность и частоту звукового сигнала равными 5000Hz и 200ms, соответственно, и издает звуковой сигнал. Т.е. для любого вашего скрипта, события, команды вы можете теперь задать свой особенный звук.

Теперь займемся раскраской. Коды управления цветом:

- 33[0m - все атрибуты по умолчанию;

- 33[1m - жирный шрифт (интенсивный цвет);

- 33[2m - полуяркий цвет (темно-серый, независимо от цвета);


- 33[4m - выделение (ярко-белый, независимо от цвета);

- 33[5m - мигающий;

- 33[7m - реверсия (знаки приобретают цвет фона, а фон - цвет знаков);

- 33[22m - установить нормальную интенсивность;

- 33[24m - отменить подчеркивание;

- 33[25m - отменить мигание;


- 33[27m - отменить реверсию;

- 33[30 - черный цвет знаков;

- 33[31 - красный цвет знаков;

- 33[32 - зеленый цвет знаков;

- 33[33 - коричневый цвет знаков;

- 33[34 - синий цвет знаков;


- 33[35 - фиолетовый цвет знаков;

- 33[36 - цвет морской волны знаков;

- 33[37 - серый цвет знаков;

- 33[40 - черный цвет фона;

- 33[41 - красный цвет фона;

- 33[42 - зеленый цвет фона;


- 33[43 - коричневый цвет фона;

- 33[44 - синий цвет фона;

- 33[45 - фиолетовый цвет фона;

- 33[46 - цвет морской волны фона;

- 33[47 - серый цвет фона.

Допускается объединение этих управляющих последовательностей. 


Например, 33[1m33[5m33[ 36m может быть заменено эквивалентной последовательностью 33[1;5;36m.

Пример, скрипт выводит на экран сообщение с использованием цвета:

#!/bin/sh

echo -en "33[37;1;41m WARNING 33[0m"

Еще пример - скрипт запускает копию командного интерпретатора sh с цветным приглашением:

#!/bin/sh


export PS1="[33[1;30m][[33[0m]t[33[1;30m];

[33[0m]W[33[1;30m]][33[36;1m]|[33[0m] "

echo "Now runing a new copy of shell width color prompt"

echo -en "use 33[1;36mexit33[0m command or"

echo -e "33[1;36m^D33[0m to return back"

sh


Обратите внимание на то, что управляющие последовательности заключены в скобки "[" и "]". Это сделано для того, чтобы shell не учитывал их при оценке длины строки. В противном случае длинные строки будут переноситься неверно.

Управление положением курсора. Управляющие коды:

- 33[#A - передвинуть курсор вверх на # строк;

- 33[#B - передвинуть курсор вниз на # строк;

- 33[#С - передвинуть курсор вправо на # столбцов;

- 33[#D - передвинуть курсор влево на # столбцов;


- 33[#E - передвинуть курсор вниз на # строк и поставить в начало строки;

- 33[#F - передвинуть курсор вверх на # строк и поставить в начало строки;

- 33[#G - переместить курсор в указанный столбец текущей строки;

- 33[#;#H - задает абсолютные координаты курсора (строка, столбец).

Пример. Следующий скрипт выводит на экран список устройств и на его фоне печатает строку "Это список устройств":

#!/bin/sh


ls -l /dev

echo -en "33[12A33[30G33[1;5;31;41m Это список устройств 33[0m33[12E"



Работа с палитрой. Управляющие коды:

- 33]Pnrrggbb - изменяет палитру; n - номер цвета; rr,gg и bb - значения RGB-компонент в шестнадцатеричной форме;

- 33]R - восстанавливает палитру, принятую по умолчанию.


Пример. Следующий скрипт делает фон красноватым, такой фон можно сделать для root'овской консоли:

#!/bin/sh

echo -en "33]0550000"

Работа с виртуальными консолями. Здесь применяется один код: 33[12;#] - сделать текущей консоль с указанным номером.

Пример. Следующий скрипт делает текущей консоль, на которой запущена самая прожорливая задача:

#!/bin/sh


ps aOv | tail -n1 | (read vpid vtty vother

echo -en "33[12;${vtty}]")

Работа с терминалкой (xterm). Управляющие коды:

- 33]0;text07 - присваивает имя окну и иконке;

- 33]1;text07 - присваивает имя иконке;

- 33]2;text07 - присваивает имя окну.


Пример. Этот скрипт присваивает имена окну и иконке:

#!/bin/sh

echo -en "33]2;Мое любимое окно0733]1;Моя любимая иконка07"

Вот таким, собственно, образом вы можете разнообразить свою работу. Приятного времяпрепровождения в Linux и чистой вам консоли!:)

Похожие новости

Комментариев 0