/.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, наткнувся на вельми цікаве рішення для запрошення командного рядка, яке розміщується в цьому короби справа. Зазвичай туди прийнято поміщати годинник, але мені дуже сподобалася ідея розмістити там також нотіфікатор заряду батареї. Залежно від рівня заряду, нотіфікатор показується зеленим, жовтим або червоним