різнобарвні термінали

різнобарвні термінали

/.bashrc (який виконується при запуску bash і використовується для в тому числі для конфігурації).

Для початку розглянемо простий варіант, мій улюблений формат командного рядка.


Результат буде ось такий:

17:42:46 j0 olleg @ petrel:


$
Це звичайне використання змінної PS1, але якби я не почав з цього - розповідь була б неповною. Зазвичай в змінної PS1 за допомогою спеціальних послідовностей символів визначають формат запрошення для введення команд. Докладний список цих послідовностей можна почитати в документації до bash, в даному прикладі:


  • t - висновок «поточного часу», насправді це виходить час завершення виконання попередньої команди, зручно коли перед очима.
  • jj - виводить символ j та після нього кількість запущених job, тобто процесів в тлі. Це теж зручно мати перед очима щоб випадком про них не забути коли зберешся закрити термінал.
  • u @ h - ім'я користувача і назву сервера. Якщо працюєте з декількома серверами через віддалені термінали - щоб не плутатися.
  • w - після двокрапки - робоча директорія.
  • n - оскільки рядок вийшла хоч і інформативною (щось на зразок статус бару), але довгою, то запрошуємо вводити команди з нового рядка, а ця верхня рядок буде наочно відокремлювати від результату роботи попередньої команди.
  • $ - на новому рядку буде виводиться символ або $ для звичайного користувача або # для root'а і відокремивши його пропуском можна запрошувати вводити нову команду.

Здавалося б, чого ще бажати ... Але далі буде цікавіше. Справа в тому, що за допомогою спеціальних керуючих символів можна задавати колір тексту, що виводиться, колір курсора і навіть перевизначати title bar у таких графічних терміналів, як Gnome2. І, на мій погляд, досить зручно коли кольором відокремлюються термінали запущені на різних серверах. Для мене кожен сервер асоціюється з якимось кольором і в цей колір ми будемо фарбувати командний рядок і курсор на кожному сервері.

У мене .bashrc розділений на два файли, в самому .bashrc міститься загальний код для всіх серверів, а в .bash_local - унікальні для цього сервера настройки командного рядка. bash_local я буду вставляти в .bashrc спеціальною директивою. Почнемо з .bash_local. У контексті даної статті там у мене будуть два рядки, які визначають колір цього сервера:


Просто заношу коди кольору в змінні. Але, як ви помітили, що спосіб завдання кольору для курсора і для тексту командного рядка - різний. Чомусь так історичний вийшло. Щоб зрозуміти, який колір яким кодом кодується, є відповідна картинка.

різнобарвні термінали


Посередині - позначення кольору для кольору курсора, знизу - позначення кольору для тексту. Як ви можете побачити, що я для тексту і курсора використовую колір морської хвилі. Оскільки назва сервера petrel ( «буревісник»), то він асоціюється у мене з цим кольором.

Тепер .bashrc, теж показую його в повному обсязі, а лише те що має відношення до теми:


Тут я вставляю код з .bash_local в загальний файл. Таким чином визначатися раніше описані змінні з кольором сервера.


Ще дві змінні визначаю з чисто червоним кольором, він буде використовуватися для маркування терміналів привілейованих користувача (root'а).


Тут перевіряється який використовується термінал. Для будь-якого невідомого або Неподдерживается кольору буде використовуватися запрошення без кольору (PS1 = 't jj u @ h: wn $') так, як я це описав на початку статті. Але якщо ім'я терміналу починається на xterm або rxvt, наприклад, так себе позиціонує термінал Gnome, починаємо Кудес з кольором. Перший рядок - задаємо колір тексту - колір сервера і виводимо перший рядок запрошення введення команд. Вона завжди буде пофарбована в колір сервера. Другий рядок - перевіряємо, чи працюємо ми під непрівелігірованним або привілейованих користувачем (root'ом). Якщо root - то переобумовленої кольору на червоний. Третій рядок - формуємо другу сходинку запрошення і визначаємо колір курсора в терміналі. Тобто там у нас вийде або $ і через пробіл курсор, обидва пофарбовані в колір сервера, якщо користувач звичайний. Або червоний # і через пробіл червоний курсор, якщо це root.

Ще раз про дизайн мобільного додатка. Який колір вибрати для іконки своє.
Здається, це не дуже значна проблема, правда? У будь-якому випадку дизайнер може впоратися, не надто переймаючись над питанням вибору кольору. Проте статистика говорить нам, що колір іконки програми має величезне значення для просування програми. Власне, колір будь-якого продукту дуже важливий. Наприклад, якщо запитати людину,

різнобарвні термінали

Зручна робота в консолі, або фарбуємо STDERR в червоний колір
Робота в консолі Багато хто з нас користуються консоллю кожен день, і, напевно, кожен задавав собі питання: як я можу зробити свою роботу в консолі ефективніше? Що я можу зробити, щоб витрачати менше часу на виконання рутинних операцій? У цій статті я б хотів коротко розповісти про декілька простих, але корисних речах при роботі з bash, про

різнобарвні термінали

різнобарвні термінали

Cisco CLI в BASH
Після довгої роботи з Linux і Cisco через консоль, я починаю плутатися і писати цісковие команди в BASH і навпаки. На мій подразнення, вони не роблять того, що я хочу, щоб вони робили. Тому я придумав невеликий хак для BASH, який дозволяє емулювати пару команд IOS CLI в баш. Робиться це так: echo 'alias show = "cat"'

zsh. налаштовуємо «праве» запрошення командного рядка
Длубаючись з настройками zsh, наткнувся на вельми цікаве рішення для запрошення командного рядка, яке розміщується в цьому короби справа. Зазвичай туди прийнято поміщати годинник, але мені дуже сподобалася ідея розмістити там також нотіфікатор заряду батареї. Залежно від рівня заряду, нотіфікатор показується зеленим, жовтим або червоним

Схожі статті