Ближи се Нова година, не желим више да размишљам о озбиљном послу.
Сви се труде да украсе нешто за празник: дом, канцеларију, радно место... Хајде да и ми нешто украсимо! На пример, промпт командне линије. У извесној мери, командна линија је и радно место.
У неким дистрибуцијама је већ "украшен":
Код других је сива и неупадљива:
А можемо да урадимо, на пример, овако:
Наравно, сви маркери имају различите укусе и боје. Ако вам се такво бојење чини неприкладним и неприкладним, онда знајте да ова тачка гледишта има пуно право на живот. А ако такође желите да додате мало новогодишњег духа, прочитајте кратак новогодишњи чланак са Цлоуд4И.
Прво ћу објаснити како је излаз терминала „обојен“. Ово се ради помоћу излазних секвенци. Или прецизније, секвенце контролних кодова АНСИ/ВТ100 терминала. Што аутоматски значи да ваш емулатор терминала мора да подржава овај стандард, иначе се новогодишње чудо неће догодити. И да, претпоставља се да је $СХЕЛЛ ваш басх.
Ове команде се називају излазне секвенце јер се на почетку сваке од њих налази АСЦИИ знак „есцапе“. Постоји много контролних секвенци и оне омогућавају, на пример, приказ поставки терминала, контролу приказа и кретања курсора, промену фонта, брисање и сакривање текста. Одабраћемо једну из свих разноврсних могућности - промену боје текста и позадине.
Извршите секвенцу кода *ESC*[{attr1};...;{attrn}m
Као симбол бекство користи се његов октални облик тј 33. Што се тиче атрибута, ево кратке листе могућих вредности:
0 Ресетујте све атрибуте
1 Светло (повећана осветљеност)
2 Замутити
4 Подвући
5 Блинк
7 Реверсе
8 Скривено (сакриј текст)
Боје предњег плана (боја оловке, текст се приказује у овој боји):
30 Црн
31 Црвени
32 Зелен
33 Жута
34 Плави
35 магента (магента)
36 цијан (плава)
37 бела (белиј)
Боје позадине (боја папира или боја позадине):
40 Црн
41 Црвени
42 Зелен
43 Жута
44 Плави
45 магента (магента)
46 цијан (плава)
47 бела (белиј)
Имајте на уму да ако сада командујете у терминалу: echo 33[0;31mнекоторый текст 33[0m’
...онда ћете предвидљиво добити монохроматски гоббледигоок на излазу:
Зашто? Зато што је било неопходно користити напредне могућности команде ехо. Довољно је додати један кључ: echo -e ‘ 33[0;31mнекоторый текст 33[0m’
Излаз ће сада изгледати исправно:
Средили смо бојење излаза на терминалу. Сада да видимо како да бојимо командну линију.
Ово се ради променом ПС1 променљиве. Променљива је одговорна за промпт командне линије. Његов изглед се такође може променити, укључујући коришћење есцапе секвенци. Али постоји мала разлика: морате започети низ са симболом „[“, а завршавају се симболом „]“, иначе ће бити излаз на терминал.
Све могуће секвенце команди су детаљно описане у басх приручнику, тако да позивам читаоце да сами изаберу шта желе да виде у промпту командне линије. Као пример, даћу своју вредност за ПС1 променљиву:
[ 33[34;1m]t[ 33[0m],[ 33[32m]u@l@h[ 33[0m]:[ 33[33m]W[ 33[0m],[ 33
[31m]![ 33[0m]$n
Дешифроваћу ову страшну чаролију:
[ 33[34;1м] — укључите светло плаву (други атрибут) боју фонта
t – приказати тренутно време у формату ХХ: ММ: СС
[ 33[0м] – ресетујте подешавања боје фонта
, - само зарез (неочекивано, зар не?)
[ 33[32м] — укључите зелену боју фонта
у@л@х – приказати корисничко име, број терминалног уређаја и кратко име хоста, одвојено симболом „@“.
[ 33[0м] — поново ресетујте подешавања боје фонта
: - само двотачка (одједном!)
[ 33[33м] — укључите жуту боју фонта
W – приказује назив тренутног директоријума
[ 33[0м] — поново ресетујте подешавања боје фонта
, - још један зарез (ко би помислио!)
[ 33[31м] — укључите црвену боју фонта
! — прикажите број команде у терминалу
[ 33[0м] - не заборавите да ресетујете подешавања боје фонта
$ — одштампајте „#“ за роот и „$“ за све остале
n - превод реда. За шта? Тако да команда почиње на левој ивици прозора, а не на крају одзивника командне линије.
Где редефинисати променљиву? Најлогичније место за ово је ~/.басхрц.
Изглед позивнице је ограничен само вашом маштом. У принципу, ништа вас не спречава да направите промпт командне линије у облику божићног дрвета користећи горе описане алате. Истина, такав позив ће бити веома тежак, а рад дефинитивно неће постати погоднији. Божићна јелка се једноставно може приказати изнад промпта командне линије када се пријавите (још увек морамо да уредимо ~/.басхрц). Само напред! И хвала на пажњи.
Шта још можете прочитати на блогу?
→
→
→
→
→
Претплатите се на наш
Извор: ввв.хабр.цом