Раскрасим консоль 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[1m 33[5m 33[ 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;36mexit 33[0m command or"
echo -e " 33[1;36m^D 33[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[12A 33[30G 33[1;5;31;41m Это список устройств 33[0m 33[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;text 07 - присваивает имя окну и иконке;
- 33]1;text 07 - присваивает имя иконке;
- 33]2;text 07 - присваивает имя окну.
Пример. Этот скрипт присваивает имена окну и иконке:
#!/bin/sh
echo -en " 33]2;Мое любимое окно 07 33]1;Моя любимая иконка 07"
Вот таким, собственно, образом вы можете разнообразить свою работу. Приятного времяпрепровождения в Linux и чистой вам консоли!:)
Во многом я с ним согласен: линуксовая консоль является очень мощным инструментом. Даже работая в 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[1m 33[5m 33[ 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;36mexit 33[0m command or"
echo -e " 33[1;36m^D 33[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[12A 33[30G 33[1;5;31;41m Это список устройств 33[0m 33[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;text 07 - присваивает имя окну и иконке;
- 33]1;text 07 - присваивает имя иконке;
- 33]2;text 07 - присваивает имя окну.
Пример. Этот скрипт присваивает имена окну и иконке:
#!/bin/sh
echo -en " 33]2;Мое любимое окно 07 33]1;Моя любимая иконка 07"
Вот таким, собственно, образом вы можете разнообразить свою работу. Приятного времяпрепровождения в Linux и чистой вам консоли!:)
Комментариев 0