как сделать красивую консоль windows
Разукрашиваем вывод в консоли: теория и практика
Консоль привлекает многих своей минималистичностью и эстетикой, но даже в ней иногда хочется выделить определённый фрагмент, чтобы показать его роль или значимость. Например, отметить зелёным текстом сообщение об успешном выполнении операции или обозначить длинный текст ошибки курсивом. О том, как это делать, а также о реализации на питоне — читайте далее.
Управляющие последовательности ANSI
ANSI escape sequences или Управляющие последовательности ANSI — это стандарт, дающий возможность управлять курсором, цветами, начертание в текстовых консолях. Такие последовательности воспринимаются отрисовщиком терминала, как команды отображать последующий текст в определенном формате. Есть также последовательность, которая сбрасывает предыдущие команды, и отображение текста становиться обычным. Существует несколько форматов управляющих последовательностей, различающихся возможностями и появившимися в разных версиях кодировок. Поговорим об этих форматах подробнее.
8 основных цветов и стили
Для обычного пользователя разнообразия цветов этого формата будет более чем исчерпывающим. Но прежде чем задумываться о том, что терракотовый цвет гораздо круче красного, и он вам уж точно нужен, давайте разберемся, как устроена самая простая версия управляющей последовательности ANSI для форматирования текста.
Чтобы изменить текущий цвет шрифта или фона можно использовать следущий синтаксис:
Возможные аргументы
Модификатор | Код |
---|---|
1 | Жирный |
2 | Блеклый |
3 | Курсив |
4 | Подчёркнутый |
5 | Мигание |
9 | Зачёркнутый |
Изменения цвета шрифта
Цвет | Код |
---|---|
30 | Чёрный |
31 | Красный |
32 | Зелёный |
33 | Жёлтый |
34 | Синий |
35 | Фиолетовый |
36 | Бирюзовый |
37 | Белый |
Изменения цвета фона
Цвет | Код |
---|---|
40 | Чёрный |
41 | Красный |
42 | Зелёный |
43 | Жёлтый |
44 | Синий |
45 | Фиолетовый |
46 | Бирюзовый |
47 | Белый |
Бонус: другие интересные модификаторы, которые могут поддерживаться не всеми платформами
Модификатор | Код |
---|---|
38 | RGB цвет (см. раздел «Совсем много цветов») |
21 | Двойное подчёркивание |
51 | Обрамлённый |
52 | Окружённый |
53 | Надчёркнутый |
Давайте поэкспементируем. Для примеров я буду использовать Python.
Важно заметить, что форматирование повлияло и на консоль питона, а не только на ее вывод. Именно поэтому очень важно закрывать все «тэги» изменения форматирования.
Часто используемые сочетания (copy-paste-able)
Код | Описание |
---|---|
\033[0m | вернуться к начальному стилю |
\033[31m \033[0m | красный текст — для обозначения ошибок |
\033[1;31m \033[0m | жирный красный текст — для обозначения критических ошибок |
\033[32m \033[0m | зеленый текст — успешное выполнение |
\033[3;31m \033[0m | красный курсив — текст ошибки |
\033[43m \033[0m | выделение основного, как будто жёлтым маркером |
Больше цветов: аж целых 256
В этом формате синтаксис немного другой:
Для генерации кодов цветов можно использовать генератор.
А палитру доступных цветов можно увидеть на картинке ниже.
Совсем много цветов
Этот формат не всегда поддерживается стандартными консолями.
Некотрые будут негодовать: «256 цветов и нет моего любимого терракотового, какой ужас!». Для таких ценителей существует формат, который уже поддерживает 24 битные цвета (3 канала RGB по 256 градаций).
Для не ценителей поясню, что терракотовый кодируется как — (201, 100, 59) или #c9643b.
Синтаксис в этом формате выглядит вот так:
Python: Использование библиотеки Colorama
Библиотека Colorama позволяет форматировать текст, не запоминая коды цветов. Рассмотрим её использование на примере:
Style позволяет изменить стиль, Fore — цвет шрифта, Back — цвет фона. Использовать переменные из colorama нужно также, как и коды изменения стиля. Но плюс использования библиотеки в том, что Fore.RED более читаем, чем \033[0;31m
А что не так с Windows?
Просто так синтаксис, описанный в начале статьи, не работает в командной строке Windows. Поддержка цветов появлялась постепенно, причём в странном варианте. В начале программы надо сделать системный вызов, активирующий отрисовку цветов. А в более старых версиях необходимо заменить все ANSI последовательности на системные вызовы.
Но colorama.init() сделает всё за вас в большинстве версий Windows. Однако если вы используете другую операционную систему, то функцию init() вызывать в начале программы не обязательно. Также некоторые IDE на Windows (например, PyCharm) тоже поддерживают цвета без каких-либо махинаций.
А еще Windows не поддерживает многие модификаторы, такие как жирный текст. Подробнее можно почитать на странице Colorama
Termcolor
Ещё одна библиотека для вывода цветного текста с более удачным, на мой взлгяд, синтаксисом.
Кстати, проблему с Windows всё ещё можно починить с помощью colorama.init()
Выводы
Стандартные 8 цветов позволяют разнообразить вывод в консоль и расставить акценты. 256 цветов намного расширяют возможности, хотя и поддерживаются не всеми консолями. Windows, к сожалению, не поддерживает многие основные модификаторы, например, курсив. Также есть некоторые цвета, которые не прописаны в стандартах, но могут поддерживаться вашей операционной системой. Если вы хотите больше цветов, то вы можете поискать их в Гугле.
Пока что не любой терминал поддерживает 24-битные цвета и все модификаторы, но мы вряд ли увидим сильные изменения в этой сфере. Так что пока нам остаётся выбирать самые красивые варианты из тех, что доступны в любимом терминале.
Источники
Облачные серверы от Маклауд быстрые и безопасные.
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!
Прозрачная консоль Windows 10
Пользователи операционных систем семейства Linux уже давно имеют возможность управлять настройкой прозрачности окна Консоли (Терминала).
Сама по себе эта настройка не добавляет существенной функциональности терминалу, но помогает в тех случаях, когда под открытым окном находится текстовый документ или веб-страница с командой и пользователю необходимо её напечатать в консоли, не прибегая к перелистыванию открытых окон.
То есть, сделав консоль полупрозрачной, пользователь будет видеть любой текст под ней и у него не возникнет необходимости переключаться между окнами. В Windows 10 терминал был существенно обновлен и теперь включает в себя расширенный набор горячих клавиш.
Его размер может быть свободно изменяемым, поддерживает выделение текста с помощью мыши, как и любой текстовый редактор. Кроме этого, сохранены настройки внешнего вида, такие как цвет, шрифт, расположение и т.д.
Также официально добавлена возможность настройки прозрачности окна. Первоначально всё выглядит так, как на скриншоте ниже.
Консоль Windows
Запустите Терминал нажатием сочетания клавиш Win + R на клавиатуре и вводом команды «cmd.exe». Кликните правой кнопкой мыши по заголовку и нажмите «Свойства».
Внизу, на вкладке «Цвета» передвиньте ползунок прозрачности до желаемого уровня (я рекомендую 80%), благо вносимые изменения видно в режиме реального времени.
Подтвердите внесённые правки нажатием кнопки «ОК». Вот и всё!
Апгрейды для cmd.exe и альтернативы
Содержание статьи
Будем честны — стандартная командная строка Windows неудобна. В ней нет нормального copy-paste, нет вкладок и даже нет возможности по-человечески поменять размер окна. Кроме того, в самой Windows маловато консольных инструментов, и любители текстового режима, возможно, захотят получить доступ к мощному окружению UNIX. Для этого тоже есть свои решения.
Microsoft не сильно заботит судьба командной строки. Оно и понятно: для большинства людей это совершенно бесполезная часть системы. К счастью, есть энтузиасты, не поленившиеся превратить стандартный cmd.exe в инструмент, который действительно можно использовать.
Console
Хакер #164. Железный дуршлаг
Сперва рассмотрим решения для тех, кто выживает под командной строкой Windows, но при этом не испытывает нужды связываться с виртуализацией или *nix-утилитами, а главное — не желает платить! Словом, начнем с самого простого и доступного.
Проект с незамысловатым названием Console, пожалуй, самая крутая и функциональная разработка для оптимизации cmd в Windows на данный момент. В отличие от родной оболочки системы Console призвана быть удобной, понятной и предусматривает все те мелочи, которых многим так не хватает, например, после работы с Linux или Mac.
Нагляднее всего будет просто перечислить ключевые фишки софтины:
Разумеется, это далеко не полный перечень того, что умеет Console, но остальные нюансы лучше познавать на деле, тем более что программа распространяется свободно и совершенно бесплатно. Заметим, что, поработав с Console хотя бы раз, уже сложно представить себе работу без нее. К сожалению, некоторые пользователи жалуются на скорость работы программы.
Кстати, для тех, кто больше доверяет платным и серьезным решениям, есть очень похожая на Console альтернатива — PowerCmd (powercmd.com). По функциональности Console и PowerCmd схожи, только у последней различных «свистелок» и удобств еще больше:
Однозначно оправдать ценник в 30 долларов у PowerCmd мы не можем — при желании Console можно расширить до нужного уровня, да и упирается все в конечном счете в конкретные потребности пользователя. Однако по сравнению с бесплатным аналогом этот инструмент более нагляден, интерактивен и удобен — мы считаем, что он лучше подойдет тем, кто не хочет ковыряться в форумах и настройках для того, чтобы «допилить» Console. Но это наше мнение, и сформировать собственное ты сможешь, если попробуешь бесплатную триальную версию PowerCmd. Также на нее стоит обратить внимание пользователям, часто работающим с русскими названиями файлов, — с ними PowerCmd часто ведет себя непредсказуемо.
По сравнению с Console, PowerCmd имеет множество дополнительных плюшек
Clink
К самым простым апгрейдам можно отнести еще один совсем маленький lifehack — Open Source утилиту clink, которая способна значительно расширить возможности интерпретатора командной строки cmd.exe. Дело в том, что clink использует библиотеку readline, которая создана и поддерживается в рамках проекта GNU и обеспечивает интерфейс командной строки и обработку строк в bash.
После установки clink интерпретатор cmd.exe фактически ведет себя как командная оболочка bash со всеми ее продвинутыми функциями: автодополнением командной строки, редактированием, историей команд и так далее. Перечислять весь список новых возможностей cmd не стану, приведу только некоторые особенности:
Ну и в заключение хотелось бы напомнить тебе о еще одном полезнейшем инструменте, хотя его и нельзя назвать «простой оптимизацией cmd». Данное решение пригодится тем, кто желает объединить возможности Linux и Windows, или тем, кто по каким-то причинам не может установить Linux на своем компе, но в нем нуждается.
Конечно, большинство наших читателей уже догадались, о чем речь, ведь они наверняка знакомы со старым добрым Cygwin, но вспомнить о нем еще раз — не лишнее.
Cygwin — это UNIX-подобная среда и интерфейс командной строки для Windows, позволяющая объединить Windows и UNIX без использования виртуализации (что немаловажно). По сути, это не что иное, как набор утилит из мира *nix, портированных на Windows. Что конкретно устанавливать помимо базовой системы, каждый решает сам для себя — выбор огромен. Но так как мы сегодня занимаемся оптимизацией командной строки, нас интересует именно этот аспект Cygwin.
В общем-то, Cygwin превращает командную строку в удобный UNIX-терминал, к какому привыкли поклонники Linux и Mac. Все UNIX-команды, которые тебе знакомы, прекрасным образом будут работать и здесь, так же, как работают и многие никсовые утилиты. Однако сама командная оболочка, увы, остается практически без изменений. Cygwin решает проблему отсутствия команд и синтаксиса, но удобство работы все равно оставляет желать лучшего. Следующий совет поможет разобраться и с этой задачей.
Mintty
mintty — удобная надстройка
Если ты используешь Cygwin или MSYS/MinGW, тебе точно пригодится mintty.
Как мы уже выяснили, чаще всего людям в работе с командной строкой не хватает самого элементарного: удобного выделения текста, функции copy-paste, настроек прозрачности окна и так далее. А значит, нужна новая программа-терминал. Mintty — одно из самых популярных и удобных решений в этой области.
Mintty, так же как и Console, о которой речь шла в начале, призвана оптимизировать работу командной строки. Функциональность этих двух софтин весьма схожа, правда, mintty, к сожалению, не поддерживает табы. Если же наличие или отсутствие вкладок некритично, на mintty точно стоит обратить внимание, потому что она предоставляет:
Улучшения консоли Windows в Windows 10 May 2019 Update
Обновление Windows 10 May 2019 Update поставляется с многочисленными изменениями консольного интерфейса, которые распространяются на командную строку, PowerShell и подсистему Windows для Linux (WSL).
В седьмом по счету обновлении консоль Windows получила несколько желанных изменений, в частности визуальные улучшения пользовательского интерфейса и расширенные настройки отображения рабочего пространства и курсора. Если вы используете среду Linux в Windows 10, то теперь можете применять новые команды, а также получать прямой доступ к файлам Linux прямо из командной строки или Проводника.
В данном руководстве мы детально рассмотрим улучшения консольного интерфейса, представленные в Windows 10 May 2019 Update (версия 1903).
Изменения консоли Windows в May 2019 Update
Новая вкладка «Терминал»
В окне настроек консоли (кликните правой кнопкой мыши по панели заголовка и выберите пункт «Свойства») вы заметите новую вкладку «Терминал», которая содержит много новых параметров.
В разделе «Цвета терминала» активируйте опцию «Использовать отдельный передний план», чтобы изменить цвет рабочей области с помощью кодов цветовой модели RGB.
Секция «Форма курсора» содержит пять различных форм для настройки мигающего курсора в консоли.
На вкладке «Терминал» доступна отдельная секция «Цвета курсора», которая позволяет инвертировать цвет рабочий области для курсора (по умолчанию) или использовать любой другой цвет, заданный с помощью модели RGB.
В секции «Прокрутка терминала» доступна опция «Отключить прокрутку вперед», которая позволяет ограничить прокрутку вперед только последним выводом данных (если опция отключена, вы можете прокручивать куда-угодно вверх и вниз рабочей области в пределах буфера).
Улучшения темной темы
В новой версии Windows 10 при использовании темного режима, вы можете заметить, что панели прокрутки для командной строки, PowerShell и подсистемы WSL теперь имеют темную цветовую схему, что делает внешний вид консоли гармоничнее.
Изменение масштаба
Начиная с May 2019 Update, при использовании любого из консольных инструментов Windows, можно использовать сочетание клавиши Ctrl и движения колесиком мыши вверх и вниз для увеличения и уменьшения масштаба текста соответственно.
Подсистема Windows для Linux
May 2019 Update включает несколько улучшения подсистемы Windows для Linux (WSL). Например, реализован прямой доступ к файлам Linux и добавлена поддержка новых команд.
Доступ к файлам Linux из Windows 10
С выходом версии 1903, пользователи Windows 10 могут получать прямой доступ к файлам Linux с помощью Проводника или командной строки.
Данное изменение является очень важным, потому что ранее попытка изменения этих файлов вызывала серьезные проблемы. Теперь реализована нативная поддержка прямого доступа к файлам Linux – для этого в адресную строку Проводника или в командную строку / PowerShell введите команду и добавьте название дистрибутива (например, Ubuntu):
Если вы хотите посмотреть список установленных дистрибутивов, используйте путь:
Перейдя в папку дистрибутива, вы можете выполнять навигацию по папкам и файлам в обычном режиме. Если вы используете Проводник Windows, то вам доступно контекстное меню файлов. Вы можете добавлять, удалять, перемещать и копировать файлы и папки, а также открывать и редактировать файлы с помощью любого текстового редактора без риска нарушить работу дистрибутива.
Команды WSL
Наконец, обновление функций Windows 10 включает улучшения взаимодействия с командной строкой Linux за счет объединения существующих и добавления новых команд. Теперь, при запуске wsl.exe, вам доступны все команды, необходимые для настройки и управления подсистемой Windows для Linux.
В May 2019 Update команды из wslconfig.exe теперь доступны в wsl.exe, в том числе:
12 альтернатив стандартной командной строке и консоли PowerShell в Windows 8.1 и 10
В Windows 10 классическая командная строка и консоль PowerShell претерпели ряд изменений в лучшую сторону, но всегда найдутся те, кому реализованных Microsoft улучшений покажется недостаточно. Таковым рынок стороннего программного обеспечения предлагает широкий выбор эмуляторов штатных консолей, обладающих аналогичным функционалом, но отличающихся разнообразием дизайна и наличием собственных фишек.
Предлагаем вашему вниманию 12 альтернатив штатной командной строке и PowerShell Windows 8.1 и 10.
ColorConsole
Альтернативная командная строка с прицелом на использование цветовой гаммы, копирования и экспорта данных. Бесплатна, поддерживает русский язык интерфейса, есть портативная версия, имеет в верхней части окна текстовое меню. Дополнительные возможности приложения включают:
Cmder
Распространяясь в двух портативных редакциях — Mini и Full, эта альтернатива командой строки на базе ConEmu и расширениями Clink делает упор главным образом на функциональность, более всего близкую к функциональности современных версий PowerShell. Mini-версия Cmder внешне мало чем отличается от стандартной консоли, но имеет несоизмеримо больше настроек.
Отметим лишь наиболее значимые функции этого инструмента:
Настроек и опций в Cmder так много, что даже бывалому пользователю, не понаслышке знакомому с командной строкой, придется повозиться не один час, чтобы изучить все возможности инструмента. Cmder бесплатна, но у нее есть один существенный недостаток — ограниченная поддержка Windows 10.
ConsoleZ
Портативный аналог командной строки с упором на улучшенный визуальный рендеринг, наличие дополнительных меню и настроек.
Из особенностей ConsoleZ можно выделить:
Заявлена поддержка ConsoleZ Windows 8.1, но программа работает и в Windows 10 с некоторыми ограничениями.
ConEmu
Традиционно отмечаем преимущества программы.
Из особенностей ConEmu следует отметить также, что по умолчанию программа всегда запускается с правами администратора. В программе можно выбрать русский язык, но часть элементов меню при этом так и останется на английском, что является ее основным недостатком.
Take Command и TCC
Take Command — полноценная замена штатному интерпретатору командной строки от разработчиков JP Software с множеством дополнительных функций и поддержкой более 200 команд, отсутствующих в стандартной командной строке. В верхней части окна Take Command расположена лента наподобие той, которая имеется в приложениях Microsoft Office и Проводнике Windows 10.
Вот главные особенности приложения:
В отличие от Take Command, созданный тем же разработчиков, «заменитель» командной строки TCC внешне ничем от нее не отличается, главным ее преимуществом является поддержка множества дополнительных команд для работы со скриптами. Оба приложения платные и имеют 30-дневный пробный период ознакомления.
PowerCmd
Оболочка для командной строки, дополняемая областью графического интерфейса, в которой выводятся переменные окружения. Позволяет открывать дополнительные сессии командной строки во вкладках, расположенных вертикально и/или горизонтально.
Программой также поддерживается:
Приложение PowerCmd не развивается с 2011 года, но пока остается совместимым с популярными версиями Windows.
Console2
Hyper
Terminus
Выделим главные особенности инструмента:
Как и Hyper, Terminus для работы с штатными консольными утилитами требует запуска от имени администратора.
Clink
Прочие особенности инструмента:
Fluent Terminal
Эмулятор командной строки, отличающийся не только расширенным функционалом и настраиваемым интерфейсом, но и самой платформой, на которой он был разработан. Fluent Terminal является универсальным приложением, доступным для установки как из Windows Store, так и из автономного файла.
Отметим ключевые особенности терминала:
Cygwin
И напоследок хотелось бы сказать пару слов о Cygwin — замечательном во многих отношениях инструменте, объединившим в себе возможности командных интерпретаторов Windows и Linux. Cygwin — это гораздо нечто большее, чем альтернатива командной строке, Cygwin — это целый пакет UNIX-утилит, портированных на Windows. Здесь мы не станем приводить список возможностей инструмента, он огромен, причем при установке программы пользователь сам может выбрать, какие компоненты ему нужны.
Подводя итоги
Рынок альтернативного программного обеспечения не испытывает недостатка в аналогах штатным инструментам Windows, порою превосходя их как функционалом, так и удобством использования. На просторах интернета мы нашли еще дюжину подобных «заменителей», но большая часть из них безнадёжно устарела, а меньшая оказалась настолько специфична, что вряд ли заинтересует рядовых пользователей, для которых будет достаточно и Cygwin.