Божићна јелка на командној линији

Ближи се Нова година, не желим више да размишљам о озбиљном послу.

Сви се труде да украсе нешто за празник: дом, канцеларију, радно место... Хајде да и ми нешто украсимо! На пример, промпт командне линије. У извесној мери, командна линија је и радно место.

У неким дистрибуцијама је већ "украшен":

Божићна јелка на командној линији

Код других је сива и неупадљива:

Божићна јелка на командној линији

А можемо да урадимо, на пример, овако:

Божићна јелка на командној линији

Наравно, сви маркери имају различите укусе и боје. Ако вам се такво бојење чини неприкладним и неприкладним, онда знајте да ова тачка гледишта има пуно право на живот. А ако такође желите да додате мало новогодишњег духа, прочитајте кратак новогодишњи чланак са Цлоуд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 - превод реда. За шта? Тако да команда почиње на левој ивици прозора, а не на крају одзивника командне линије.

Где редефинисати променљиву? Најлогичније место за ово је ~/.басхрц.

Изглед позивнице је ограничен само вашом маштом. У принципу, ништа вас не спречава да направите промпт командне линије у облику божићног дрвета користећи горе описане алате. Истина, такав позив ће бити веома тежак, а рад дефинитивно неће постати погоднији. Божићна јелка се једноставно може приказати изнад промпта командне линије када се пријавите (још увек морамо да уредимо ~/.басхрц). Само напред! И хвала на пажњи.

Божићна јелка на командној линији

Шта још можете прочитати на блогу? Цлоуд4И

Постављање врха у ГНУ/Линук-у
Пентестери на челу сајбер безбедности
Стартапи који могу изненадити
Да ли су јастуци потребни у дата центру?
Кућа коју је направио робот

Претплатите се на наш Telegram-канал тако да не пропустите следећи чланак! Пишемо не више од два пута недељно и само пословно. Такође вас подсећамо да је корпоративни провајдер облака Цлоуд4И покренуо промоцију „ФЗ-152 Цлоуд по редовној цени“. Можете се пријавити до 31. децембра.

Извор: ввв.хабр.цом

Додај коментар