Эмулятор командной строки windows

Время на прочтение18 мин

Количество просмотров448K

Часто путают терминал и шелл. В тех же *nix есть шеллы (bash, csh, zsh, …) и терминалы (konsole/guake/yaquake/tilda и т.д. и т.п.) Для мира Windows общеизвестный терминал только один – стандартное консольное окошко, которое часто ошибочно называют «cmd.exe». И мало кто знает о существовании множества других эмуляторов терминала. Известных шеллов больше, их целых два: cmd.exe и powershell.exe. И хотя есть как минимум три порта bash (MinGW, CygWin, GIT) многие юниксоиды предпочитают ругать cmd.exe.

Меня не устраивал ни один из найденных альтернативных терминалов (как в 2009-м, когда я начал работу над ConEmu, так и сейчас). Казалось бы требований немного, вот основные:

  • работа с консольными приложениями, использующими консольное API: например Far просто не запустится в mintty или PowerShell ISE;
  • визуальные улучшения вроде табов (вкладок) и split-screen;
  • быстрая и удобная работа с пометкой/копированием/вставкой текста;
  • должен быть похож на терминал, а не на рождественскую игрушку с кучей графических свистелок и сопелок которые даже отключить нельзя;
  • не должен зависеть от сторонних библиотек типа .Net, Qt, VC/GCC redist и прочих устанавливаемых пакетов, занимать по возможности мало места и не требовать инсталляции на новую машину;
  • наконец, мне, как приверженцу Far Manager, хотелось интеграции с этим файловым менеджером — редакторы и вьюверы в табах, drag&drop файлов между Far и другими приложениями и т.п.

Отвечает ли этим требованиям ConEmu? Терминал (Free & OpenSource) пишется программистом «для себя» с учетом пожеланий других пользователей программы. В минимально-необходимой комплектации занимает около 2 мегабайт, что конечно больше нескольких килобайт, но все-таки пренебрежимо мало. Установки не требует, может быть портабельным если рядом с ConEmu.exe создать файлик ConEmu.xml. От сторонних библиотек не зависит.

Обзор возможностей

Рассказать «про все» в рамках одной статьи невозможно, поэтому здесь описаны только некоторые функции, на мой взгляд наиболее интересные большинству пользователей.

Наглядность. В табах могут отображается не только заголовки консолей, но и дополнительная информация вроде активного процесса, прогресса архивации, chkdsk, powershell, копирования в Far Manager. Например, не нужно переключаться в таб чтобы узнать закончилась ли компиляция проекта, запущенная в этом табе. В статусной строке можно настроить список отображаемых «колонок» вроде координат видимой области и курсора, PID активного процесса в консоли, статусов CAPS/NUM/SCRL, коэффициента прозрачности и др. Многие колонки кликабельны, например можно щелкнуть по «колонке» с прозрачностью для быстрого ее изменения.

Минималистичность. Интерфейс (самого терминала, а не окна настроек) содержит всего два дополнительных графических элемента — табы и статусная строка. Но и их можно отключить, если вы предпочитаете «чистую» консоль.

Портабельность. Настройки можно хранить в файле ConEmu.xml созданном в папке программы.

Работа с текстом. Поддерживаются два стиля пометки текста — обычный для текстовых редакторов и «прямоугольный» как в обычной консоли. Пометка и вставка текста удобна как с клавиатурой так и с мышкой.

Quake/Tilda. Поддержка режима игровых консолей. Терминал умеет «выезжать» при нажатии выбранной комбинации клавиш (по умолчанию Ctrl+~) и прятаться при потере фокуса или нажатии Esc.

Запуск любых приложений. Пользователь может настроить любое количество предопределенных задач (Task) для быстрого запуска в ConEmu или из списка переходов (jump list) панели задач Windows 7. Задача может запускать один или несколько процессов или шеллов (powershell, SDK, компиляция проектов и т.д.) Можно даже запускать простые GUI приложения вроде PuTTY, TaskManager, GVim.

Работа с цветом. Несколько предопределенных палитр (например Solarized, PowerShell, xterm, и др.), возможность настройки своих цветов консоли, поддержка управляющих кодов ANSI X3.64, 24-битный цвет при работе в Far Manager.

Интеграция. Умеет добавлять себя (и выбранные команды-шеллы) в контекстное меню Windows Explorer. Умеет перехватывать создание стандартного терминала Windows.

Гибкая настройка и управление. В диалоге Settings можно найти настройки на любой вкус и цвет. Практически любому действию можно назначить комбинацию клавиш, а простейший макро-язык позволяет выполнять нестандартные действия.

Немного истории

В начале был Zoin и его анонс Эмулятор консоли на форуме Far Manager. Не знаю, планировал ли автор развитие эмулятора, но в 2009-м году появилось несколько форков предлагающих разные улучшения: вертикальную прокрутку, табы для редакторов и вьюверов Far, отображение контекстного меню для файлов по правой кнопке и перетаскивание файлов между консольным Far и другими приложениями. Идея мне понравилась и, объединив все «патчи», я стал развивать эмулятор добавляя новые возможности и исправляя баги. На тот момент было несколько альтернатив (самые известные – Console2 из бесплатных и TakeCommand из платных), но ни одна у меня не прижилась. «Пользуюсь фаром 15 лет» поэтому в первую очередь нужна была оболочка для него.

Установка

ConEmu можно скачать с оф.сайта в двух вариантах: инсталлятор и 7z архив. Разницы между ними в общем-то никакой, просто инсталлятор умеет создавать ярлыки и позволяет отключить не нужные части продукта. Рекомендую пробовать последние Alpha-версии, т.к. с момента выхода последнего Stable прошло много времени, исправлено много багов, появилось много новых возможностей.

Для адептов bash на зеркале проекта есть специально подготовленные пакеты для MinGW. Их достаточно развернуть в папку MinGW чтобы в ConEmu сразу запускался «sh.exe –login –i».

Пользователям Far Manager: для полноценной работы в Far должны быть загружены плагины ConEmu. Убедитесь, что при использовании инсталлятора плагины устанавливаются в подпапку Plugins вашего каталога с Far.exe. Обратите внимание, что инсталлятор позволяет выбрать папку установки как для самого ConEmu так и для плагинов к Far.

Пользователям антивирусов: инсталлятор как и сам ConEmu троянов не содержит, как говорится, «исходники открыты».

При первом запуске программа спросит где вы предпочитаете хранить настройки — в файле ConEmu.xml или в реестре.

Теперь можно запускать ConEmu.exe или ConEmu64.exe (разница между 32-битной и 64-битной версией отсутствует).

По умолчанию ConEmu при старте запускает один таб с «предпочитаемым» шеллом:

  • Far.exe (если найден рядом с ConEmu.exe);
  • cmd.exe или tcc.exe (если установлен TakeCommand или TCC/LE);
  • sh.exe (если ConEmu установлен в режиме «MinGW»).

Первый запуск

При первом запуске отображается диалог «Fast configuration», он содержит несколько основных опций влияющих на работу программы.

Install keyboard hooks. ConEmu умеет отбирать у системы определенные комбинации клавиш (когда в фокусе окно программы). Например Win+цифра можно переключаться на таб с определенным номером. Практически все комбинации клавиш с ConEmu настраиваются или отключаются (Win+Alt+K), но если вам вообще не нужен перехват комбинаций с модификатором Win – можете отключить флажок.

Inject ConEmuHk.dll. Для многих возможностей ConEmu требуется перехват определенных функций WinAPI. Библиотека ConEmuHk.dll (или ее 64-битная версия ConEmuHk64.dll) внедряется в запускаемые во вкладках ConEmu процессы и перехватывает функции через разделы импорта. К сожалению, перехватываемых функций становится все больше и соответственно увеличивается время перехвата. И хотя в цифрах это лишь миллисекунды, некоторые пользователи жалуются на замедление выполнения команд в ConEmu. Если вы из них – отключите этот флажок. В планах попробовать перейти на перехват в стиле detours, возможно это ускорит процесс.

Enable automatic updates. Думаю, в переводе не нуждается. Обновление выполняется тем же способом, что и при установке. То есть если вы установили ConEmu распаковкой 7z–архива, то для обновления потребуется архиватор (7–zip или WinRar).

Настройка

В принципе, ConEmu работает сразу и настройки не требует, но у любого пользователя/админа/программиста есть свои предпочтения и специфика работы.

Полный диалог настроек открывается либо с клавиатуры комбинацией Win+Alt+P либо вызовом из системного меню ConEmu пункта «Settings».

Можно заблудиться в куче вкладок и настроек, но все настройки сгруппированы по смыслу, а для неочевидных опций отображаются всплывающие подсказки при наведении курсора мышки. Наверное не стоит рассказывать в этой статье про каждую опцию, поэтому пробежимся только по основным и наиболее интересным.

Выбор шелла

Итак, скорее всего вам нужно будет настроить свой список шеллов, как запускаемых при старте, так и быстро доступных.

Идем на вкладку «Startup». Если нужно запускать только один шелл — все просто: выбираем «Command line» и вводим требуемое, например:

C:\MinGW\msys\1.0\bin\sh.exe --login -i

В принципе, в качестве шелла можно запускать любое консольное приложение или командный файл для cmd, python, и т.п. Можно даже запускать некоторые GUI приложения вроде PuTTY, notepad, gvim и т.п.

Если при старте нужно запустить сразу несколько шеллов — идем на вкладку «Tasks» (задачи) и начинается магия. Диалог настроек и так перегружен, поэтому задачи создаются «в текстовом виде».

>C:\MinGW\msys\1.0\bin\sh.exe --login -i
cmd /k set ConEmuHooks=OFF & "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" -new_console:sV -new_console:t:SDK & set ConEmuHooks=
cmd -new_console:s1TH
*powershell -new_console:s2TH -new_console:t:PowerShell

Называем его «Shells», возвращаемся на вкладку «Startup» и выбираем «Specified named task».

В итоге при старте ConEmu получаем 4 консоли в сетке 2×2 причем активной будет вкладка sh.exe, а powershell.exe запускается в режиме админа (после подтверждения UAC) и его вкладка получает фиксированное название «PowerShell».

Параметр «-new_console» специальный параметр, обрабатывающийся в ConEmu и вырезающийся из командной строки при запуске программы. О нем можно писать много и долго, а пока отошлю на сайт проекта.

Запуск новых консолей

Если отображается панель кнопок (toolbar) то кнопка [+] открывает диалог запуска новой консоли. Здесь можно указать любую программу с параметрами, выбрать строку запуска из истории или выбрать заранее созданную задачу. Здесь можно создать «split», запустив новую консоль на одном экране с текущей. «Run as administrator» запускает новую консоль в режиме администратора. Флажок «New window» запустит новый процесс ConEmu.exe с выбранной командой.

На панели кнопок у кнопки [+] есть «стрелка» для открытия меню. Это же меню можно открыть комбинацией Win+N. Здесь отображаются команды из истории и заранее созданные задачи. Правый щелчок мышкой по пункту с задачей открывает меню второго уровня со списком команд этой задачи – так можно посмотреть ее содержимое или запустить только одну из команд задачи.

Можно создать ярлык и запускать новую консоль в уже запущенной копии ConEmu. Например, создайте на рабочем столе ярлык для запуска Far Manager (считаем что Far и ConEmu установлены в папку C:\Far)

"C:\Far\ConEmu.exe" /single /cmd "C:\Far\Far.exe"

Запуск из списка переходов (Jump List) панели задач Windows 7. Отсюда удобно запускать наиболее употребительные задачи, например запуск компиляции ваших проектов.

Быстрый запуск по комбинации клавиш. Если ярлыков (хоткей можно задать в свойствах ярлыка) и задач (Win+N и цифра номера задачи) не хватает – можно создать макрос запуска любой команды. Откройте вкладку «Keys & Macro» диалога настройки (Win+Alt+K), выберите один из «Macro NN» и введите в поле «GUI Macro» что-то вроде:

shell("",@"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe")

Поддерживаются два синтаксиса строк: C-string где используются \r\n\t\a\e\"\\, и Verbatim-string вроде @"app.exe ""C:\My Documents\File.txt""".

Из командной строки шелла, запущенного во вкладке ConEmu можно запустить новую вкладку с помощью специального параметра -new_console. Его опции позволяют запускать вкладки в режиме администратора, под другим пользователем, включать и отключать подтверждение закрытия после завершения команды, запускать вкладки «в фоне», разбить активную консоль вертикально или горизонтально (split-screen).

cmd /c dir /s c:\ -new_console:bc

или использовать cmd-файл, включенный в поставку ConEmu

csudo dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:D:\sources\sxs /LimitAccess

В контекстном меню таба (правый клик на табе или Shift+правый клик в консоли) есть пункт «Duplicate root». Он создает копию шелла в новой вкладке. Например в текущей вкладке cmd вы запустили компиляцию проекта, при вызове «Duplicate root» будет создана новая вкладка с тем же текущим путем, что был до запуска компиляции, и с теми же переменными окружения.

Аналогично действуют комбинации клавиш Ctrl+Shift+O и Ctrl+Shift+E, но они создают копию шелла, разбивая активную консоль вертикально или горизонтально (split-screen).

Пометка, копирование и вставка текста

Настроек на вкладках «Mark & Paste» и «Controls» много. Расскажу об умолчаниях.

Поддерживается два типа пометки текста:

  • Text selection — стандарт для текстовых редакторов;
  • Block selection — прямоугольные блоки, как в обычной консоли.

Варианты для начала пометки в стиле «Text selection»: Shift+СтрелкаВлево, Shift+СтрелкаВправо или удерживая ЛевыйShift начните пометку мышкой (drag с зажатой левой кнопкой мышки).

Варианты для начала пометки в стиле «Block selection»: Shift+СтрелкаВверх, Shift+СтрелкаВниз или удерживая ЛевыйAlt начните пометку мышкой (drag с зажатой левой кнопкой мышки).

Примечание: при работе в Far Manager Shift+Стрелка обрабатываются в Far а не в ConEmu.

Копирование в буфер обмена помеченного блока с клавиатуры: Ctrl+C или Enter. Нажатие Esc отменяет пометку.

При пометке текста мышкой копирование выполняется сразу при отпускании левой кнопки мышки.

Вставка текста из буфера обмена

Ctrl+V вставляет только первую строку из буфера обмена. Почему только первую? Чаще всего в терминале запущен шелл и было бы обидно, если команда начнет выполняться до того как вы проведете ревизию того, что вставилось в консоль.

Shift+Ins и щелчок правой кнопки мышки вставляет все строки из буфера обмена.

Выбор и вставка путей к файлам и папкам

Комбинации Ctrl+Shift+D и Ctrl+Shift+F открывают стандартные Windows-диалоги выбора пути к папке или файлу и вставляют выбранный путь в консоль.

Бонус в командной строке

При щелчке левой кнопкой мышки в командной строке ConEmu пытается переместить курсор в позицию щелчка. А Ctrl+BackSpace удаляет слово слева от курсора.

Гиперссылки и ошибки компиляции

ConEmu умеет открывать гиперссылки в браузере по умолчанию (ShellExecute) а ссылки на ошибки компиляции в редакторе. Удерживая ЛевыйCtrl щелкните левой кнопкой мышки по гиперссылке www... или по файлу с ошибкой test.c(50): error: ....

Шрифт

Вкладка «Main». Шрифт можно выбрать любой: моноширный или пропорциональный, растровый или векторный, с включенным сглаживанием или отключенным (Clear Type, Standard, None). Пропорциональный шрифт в консоли смотрится несколько странно, но если хочется – то можно отключить флажок «Monospace».

Хочется отметить также то, что ConEmu умеет использовать не только шрифты установленный в системе. Просто скопируйте желаемые файлы шрифтов (поддерживаются fon, ttf, otf, и моноширные bdf) в папку ConEmu и перезапустите программу. Новые шрифты появятся в списке доступных на вкладке настройки шрифтов «Main». Не стоит копировать слишком много шрифтов – их обработка может занять значительное время при старте программы. Регистрацию «локальных» шрифтов можно отключить на вкладке «Features» флажком «Auto register fonts».

Для отображения псевдографики (рамки в Far Manager и т.п.) можно настроить отдельный шрифт. В некоторых шрифтах используемых в качестве основного рамки получаются несимпатичными.

Иногда нужно быстро поменять размер шрифта. Это можно сделать не открывая окно настроек — удерживая клавишу Ctrl крутите колесико мышки.

Quake/Tilda

Вызов ConEmu в стиле игровых консолей доступен «из коробки». Открываем вкладку «Main» и включаем флажок «Quake style slide down». При желании там же включаем «Auto–hide on focus lose». Если рамка вообще не нужна – в поле «Frame width» поставьте «0» вместо «-1» («-1» — показывать рамку полностью). Здесь же можно настроить отступы поля консоли от краев окна ConEmu – включите «Center console in ConEmu workspace» и выберите количество пикселей в «Pad size».

Режим «поверх всех окон» можно включит на вкладке «Appearance» флажком «Always on top».

Показывать ли окно ConEmu на панели задач? Открываем вкладку «Task bar» и выбираем желаемые опции. По умолчанию в Quake режиме при минимизации (скрытии) окно скрывается в TSA (taskbar status area – область рядом с часиками), это опция «Auto minimize to TSA». А чтобы вообще не показывать иконку в панели задач – щелкните радиокнопку «Don’t show ConEmu window on Taskbar» и включите «Always show TSA icon» чтобы не потерять ConEmu.

Клавиша активации. Их может быть две (так все запущено на некоторых раскладках клавиатуры). Открываем вкладку «Keys & Macro» и в самом начале списка видим «Minimize/Restore» и «Minimize/Restore (alternative)». Можно выбрать любую комбинацию клавиш (по умолчанию это Ctrl+~), но имейте в виду, что эта комбинация регистрируется как глобальный хоткей в системе со всеми вытекающими. Например, некоторые комбинации могут быть уже зарезервированы системой или другими приложениями.

Клавиша скрытия. Та же что и клавиша активации, но дополнительно окно ConEmu можно скрывать просто клавишей Esc. Откройте вкладку «Task bar» и в группе «Minimize ConEmu by Esc» выберите опцию «Always». Там же есть флажок «Map Shift+Esc to Esc» чтобы можно было все-таки послать в консоль клавишу «Esc» если это необходимо.

Размер (высоту) окна можно менять. Наведите мышку на рамку (или на то место, где она должна быть), подождите пару секунд, и у окна появится обычная resizable рамка которую можно тянуть мышкой.

Панель задач Windows 7

Поддержка списка переходов (Jump List). После создания вашего списка задач на вкладке «Tasks» включите флажок «Add ConEmu tasks to taskbar» и нажмите кнопку «Update Now».

Отображение прогресса на панели задач.

Фоновая картинка

Если вам не нравится унылое черное окошко – фон можно заменить на картинку или сплошной цвет. Замена фона выполняется для выбранных индексов цветов – поле «Replace color indexes». По умолчанию в поле стоит «*» – автовыбор, но если, например, нужно заменять фон для темно-зеленого цвета (палитру можно посмотреть на вкладке «Colors») введите «#2» вместо «*». Фоновая картинка указывается в поле «Path» (bmp, jpg, png файлы), но в этом же поле можно указать и сплошной цвет, например «48 10 36» чтобы получить цвет фона терминала в Ubuntu. Если картинка слишком яркая – ее можно притушить слайдером «Darkening».

Еще одна возможность для пользователей Far Manager – установка цвета фона из плагинов Far. На Хабре уже была статья «Визуализация разных дисков в файловом менеджере или Не совсем консольный FAR». Описываемый там плагин устарел и не работает в текущих версиях ConEmu, но аналогичный функционал реализован плагином «ConEmu Background». Чтобы включить раскраску панелей откройте в Far Manager список «Plugins configuration» (Alt+Shift+F9 в панелях), выберите плагин «ConEmu Background» и включите флажок «Enable plugin».

Автообновление

ConEmu умеет обновляться автоматически, если он был установлен инсталлятором или развернут из 7z–архива. Для обновления 7z–архивом требуется установленный архиватор 7zip или WinRar. На владке «Update» можно выбрать параметры обновления: проверять при запуске или ежечасно; показывать диалог с сообщением о новой версии или только нотификацию в TSA; обновляться на последнюю или только на стабильную версию; настройка proxy–сервера; путь для хранения скачанных версий и т.д.

Цветовые палитры

На вкладке «Colors» можно выбрать одну из предопределенных цветовых схем (Solarized, Standard VGA, PowerShell, xterm, и др.) или настроить свою схему цветов. Настроенную схему можно сохранить: введите имя в поле «Schemes» и нажмите кнопку «Save».

Стандартной палитры в 16 цветов не всегда хватает, но в ConEmu есть две возможности расширения цветового пространства.

Extend foreground colors

За счет потери одного индекса цвета фона в ConEmu можно настроить дополнительно 16 цветов для текста. Например, для приглашения командной строки можно указать ярко-красный цвет фона, выбрать в выпадающем списке его индекс (#12) и настроить палитру цветов с индексами 16..31. После этого текст будет отображен цветами палитры 16..31, а цвет фона (ярко-красный) заменен на окружающий (скорее всего это будет черный).
Подробнее можно почитать здесь.

TrueColor

Унылая 16-цветная консольная палитра надоела разработчику плагина Colorer для редактора Far Manager и появился Colorer TrueMod. В результате консольный редактор засиял новыми красками, а информация о цветах стала храниться в SharedMemory в дополнение к собственно консоли. Кроме цветов появилась возможность использовать Bold/Italic/Underline шрифты для участков текста.

В Far 3.0 поддержка TrueColor стала нативной и настройку расширенных атрибутов (24бита на цвет и Bold/Italic/Underline) можно выполнить для любого элемента интерфейса. Кто говорил, что в фаре недостаточно цветов для подсветки групп файлов?

Опция может быть отключена на вкладке «Colors» флажком «TrueMod (24bit color) support». Ее отключение экономит некоторое количество мегабайт памяти.

ANSI X3.64

В *nix терминалах можно использовать Escape-последовательности и даже в DOS они были доступны со стандартным драйвером ANSI.SYS. В терминале Windows про них решили забыть, правда есть несколько программ позволяющих использовать ANSI в Windows, например ANSICON.

В ConEmu поддержка ANSI X3.64 встроена. Для этого должны быть включены флажки «Inject ConEmuHk» и «ANSI X3.64» на вкладке «Features». Полный список поддерживаемых в ConEmu ANSI кодов.

С помощью ANSI можно не только выводить цветной текст. Например в заголовке таба можно отображать текущую директорию в cmd.

Прозрачность окна ConEmu

При желании на вкладке «Transparency» можно настроить прозрачность окна ConEmu. Можно выбрать различные значения прозрачности для активного и неактивного окна. Например ConEmu может полностью «исчезнуть» с экрана при потере фокуса если слайдер прозрачности для неактивного окна передвинуть в крайнее левое положение.

Если вы не отключили статусную строку, то в ней может отображаться текущее значение прозрачности в процентах (список отображаемых «колонок» статусной строки тоже настраивается). При щелчке мышкой по колонке с прозрачностью всплывает меню в котором можно быстро изменить коэффициент прозрачности или отключить его.

Табы

При работе с несколькими консолями одновременно или при работе с редакторами и просмотрщиками в Far Manager (в Far должен быть загружен плагин ConEmu) табы сильно облегчают жизнь. Кроме того, в заголовке таба показывается прогресс операции в процентах (копирование, распаковка архивов, chkdsk, прогресс в PowerShell, и др.)

В табе отображается значок «Щит» если эта консоль запущена в режиме администратора.

Отображаемый текст можно настроить по шаблону, например можно в табе показывать имя и PID активного процесса, порядковый номер консоли, заголовок окна консоли, имя редактируемого или просматриваемого в Far Manager файла, признак наличия изменений в редакторе.

Если cmd.exe запущен в режиме администратора – в заголовке окна консоли он отображает префикс «Администратор:». ConEmu умеет отбрасывать эту избыточную информацию.

Если табы не нужны – их можно полностью отключить или включить автопоказ при появлении более одного таба.

Переключение между табами также настраивается по желанию. Стандартные комбинации Ctrl+Tab и Ctrl+Shift+Tab. Режим «Recent mode» включенный по умолчанию позволяет перебирать табы в порядке их активации. При включенном «Lazy tab switch» фактическое переключение таба произойдет при отпускании клавиши Ctrl. А до отпускания клавиши Ctrl табы можно переключать и стрелками Влево/Вправо.

Табы можно активировать по номеру консоли, который можно показывать в заголовке таба. По умолчанию предлагается комбинация Win+цифра (должны быть включены флажки «Install keyboard hooks» и «Win+Number – activate console» на вкладке «Controls»). То есть Win+1 активирует первую консоль, Win+2 – вторую и т.д. Если консолей открыто более 9 то нужно нажимать последовательно две цифры удерживая клавишу Win, например «Win+2,4» активирует 24-ю консоль (и кому их столько понадобится?). Если открыты редакторы/вьюверы в Far Manager то Win+цифра будет последовательно перебирать их (флажок «Host-Key+Number iterates Far windows»).

Вместо клавиши «Win» можно выбрать любую другую комбинацию клавиш-модификаторов, например Ctrl+Shift или Apps. Перейдите на вкладку «Keys & Macro» и прокрутите список клавиш до пункта «Activate console by number». Вы можете выбрать любые три клавиши-модификатора.

Статусная строка

По желанию отключается и настраивается. Доступно большое количество колонок вроде имени и PID активного процесса, координаты видимой области и курсора, ИД текущей раскладки клавиатуры, статусы CAPS/NUM/SCROLL, номер активной консоли, коэффициент прозрачности и т.д. По многим колонкам можно щелкать мышкой для их изменения.

ConEmu Here

На вкладке «Integration» можно настроить контекстное меню для Windows Explorer и установить ConEmu как терминал по умолчанию для запуска консольных приложений.

«ConEmu Here» и «ConEmu Inside». Вы можете создать неограниченное количество пунктов меню для запуска разных шеллов (cmd, powershell, bash, SDK и т.п.) Введите команду в поле «Command» дайте пункту меню соответствующее название в поле «Menu item», опционально укажите путь к иконке отображаемой в меню (не работает в WinXP) и нажмите кнопку «Register». Список ранее зарегистрированных пунктов отображается в выпадающем списке «Menu item».

Отличие «ConEmu Inside» от «ConEmu Here» в том, что терминал будет запущен как часть окна Windows Explorer (Inside).

ConEmu может использоваться как плагин и в других программах. Для этого укажите дескриптор окна в котором должен разместиться ConEmu и команду, которую он должен выполнить. Например:

ConEmu.exe /insidewnd 0x13A40 /cmd powershell.exe

Default terminal

ConEmu может подменять собой стандартный терминал Windows, запуск с ярлыка «Windows SDK Command Prompt», запуск «ipconfig /all» из диалога Win+R, запуск консольных приложений из TotalCmd, отладка консольных программ в Visual Studio – все может быть перехвачено и запущено в ConEmu.

Как это работает: на вкладке «Integration» нужно указать список процессов, в которые будет загружена библиотека ConEmuHk.dll (например «explorer.exe|devenv.exe|totalcmd.exe») и включить флажок «Force ConEmu as default terminal» а также, при желании, «Register on OS startup». В указанных процессах будут перехвачены функции CreateProcessA, CreateProcessW, WinExec для запуска консольного приложения в ConEmu.

IDE style

Выше уже было сказано про запуск любых команд из списка переходов. Например, для сборки ConEmu я сделал cmd-файл настраивающий окружение SDK и запускающий nmake или devenv.com.

Ключ «/single» в поле «Task parameters» указывает использовать один экземпляр ConEmu (запуск в новом табе). Ключ «-new_console:c» в тексте команды является аналогом «pause» в cmd, чтобы консоль не закрылась после завершения компиляции.

В случае ошибок компиляции (вывод компилятора сохраняется в файл Error.log) вызывается скрипт TypeBuildErrors.cmd "%~dp0Errors.log" подсвечивающий строки с информацией об ошибках красным шрифтом, а предупреждения — синим. Исправив ошибки в редакторе Far Manager можно перезапустить компиляцию — Win+~ (хоткей по умолчанию для перезапуска таба).

App distinct

Здесь можно изменить некоторые опции в зависимости от процесса в консоли.
Например для PowerShell запущенном в режиме админа задать свою палитру.
Здесь же будет возможность задать свою фоновую картинку (просят давно, но пока не готово).

Keys & Macro

Здесь можно увидеть список всех комбинаций клавиш используемых в программе. Быстрый способ открыть эту вкладку – Win+Alt+K.
Также есть возможность задавать некоторое количество пользовательских действий через GuiMacro. Например назначить на Ctrl+D выход из текущего шелла: print("exit\n").

Far Manager

Интеграция с Far это тема для отдельной статьи. Важно, чтобы в Far был загружен плагин ConEmu (то есть в списке F11 из панелей был виден пункт «ConEmu»).

Краткий список возможностей.

  • Drag&Drop файлов из панелей в другие приложения;
  • щелчок правой кнопкой мышки помечает файлы, а длинный щелчок (удерживайте правую кнопку мышки >1 секунды) открывает графическое EMenu;
  • панели можно двигать мышкой
  • в плагине Unicode CharMap символы отображаются соответствующим шрифтом;
  • файлы в панелях можно отображать в режиме Tile и Thumbnail;
  • поддержка тачскринов, например прокрутка двумя пальцами, жест zoom, длинный тап по кейбару открывает меню (Alt/Shift/Ctrl/Fn).

Вкладка Debug

В основном вкладка для отлова багов. Но может быть интересна и пользователям.
Например, при выборе радиокнопки «Shell» ConEmu показывает запускаемые в консоли процессы и загружаемые dll-ки. Почти то же самое можно подсмотреть в ProcessMonitor, но здесь есть бонус — при компиляции проектов VC cl.exe и link.exe запускаются не с ключами а с параметром пакетным-файлом. ConEmu покажет содержимое этого файла.

Разное

Win+A или кнопка на тулбаре — заморозить консоль (поставить на паузу).

Щелчок правой кнопкой мышки по крестику в заголовке окна скрывает ConEmu в область уведомлений (Taskbar status area).

Полоса прокрутки по умолчанию скрыта и появляется при наведении мышки в правый край консоли. При работе в Far Manager колесо мышки обычно обрабатывается самим Far (прокрутка панелей, меню, и пр.), но при наведении курсора на полосу прокрутки — колесо прокручивает консоль.

Поиск текста — Apps+F или из меню «Edit» пункт «Find text». Искать умеем по всей консоли, но для этого консоль должна быть заморожена (Freeze console).

Можно показать «настоящую» консоль комбинацией Ctrl+Win+Alt+Space.

Заключение

Казалось бы от терминала нужно не много, но работа над ConEmu далека от завершения и в планах реализация многих возможностей. Например «бесконечный» буфер (сейчас ограничен 9999 строками «реальной» консоли), полноценная поддержка xterm 256 colors, горизонтальная прокрутка, сниппеты, оптимизация и т.д.
И, конечно, документация. Банально не хватает времени чтобы поддерживать актуальность wiki, некоторые страницы ожидают перевода, а многие возможности описаны только в WhatsNew.

Обновлено

Официальный сайт переехал по адресу http://conemu.github.io.

About ConEmu

ConEmu-Maximus5 is a Windows console emulator with tabs, which represents
multiple consoles as one customizable GUI window with various features.

Initially, the program was created as a companion to
Far Manager,
my favorite shell replacement — file and archive management,
command history and completion, powerful editor.

Today, ConEmu can be used with any other console application or simple GUI tools
(like PuTTY for example). ConEmu is an active project, open to
suggestions.

Take a look at screencast about ConEmu.

This fork grew up from ConEmu by Zoin.

License (BSD 3-clause)

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.

See Release/ConEmu/License.txt for the full license text.

Some links

Wiki: https://conemu.github.io/en/TableOfContents.html
What’s new: https://conemu.github.io/en/Whats_New.html
Release stages: https://conemu.github.io/en/StableVsPreview.html
Donate this project: https://conemu.github.io/donate.html

Description

ConEmu starts a console program in hidden console window and provides
an alternative customizable GUI window with various features:

  • smooth window resizing;
  • tabs and splits (panes);
  • easy run old DOS applications (games) in Windows 7 or 64bit OS (DosBox required);
  • quake-style, normal, maximized and full screen window graphic modes;
  • window font anti-aliasing: standard, clear type, disabled;
  • window fonts: family, height, width, bold, italic, etc.;
  • using normal/bold/italic fonts for different parts of console simultaneously;
  • cursor: standard console (horizontal) or GUI (vertical);
  • and more, and more…

Far Manager related features

  • tabs for editors, viewers, panels and consoles;
  • thumbnails and tiles;
  • show full output (1K+ lines) of last command in editor/viewer;
  • customizable right click behaviour (long click opens context menu);
  • drag and drop (explorer style);
  • and more, and more…

All settings are read from the registry or ConEmu.xml file, after which the
command line parameters
are applied. You may easily use several named configurations (for different PCs for example).

Requirements

  • Windows XP or later for 32-bit.
  • Windows Vista or later for 64-bit.

Installation

In general, ConEmu installation is easy.
Just unpack or install to any folder and run ConEmu.exe.

Read Installation wiki
about release stages, distro packets, some warnings and much more…

Building from sources

https://github.com/Maximus5/ConEmu/blob/master/src/HowToBuild.md

Screenshots

Splits and tabs in ConEmu

ConEmu+Powershell inside Windows Explorer pane

More screenshots

A “Window Terminal” is a command-line interface inside a GUI window. While the Windows operating system is a perfectly-capable OS that can perform various tasks and functions using just the GUI itself, a terminal running on top of Windows allows you to perform administrative tasks with convenience.

Using different terminals, you can connect to remote computers, transfer large files, execute cmdlets remotely, and even run apps and programs on a remote computer.

Other than that, it also enables you to perform complex automation tasks in a few cmdlets which can take a while if performed traditionally using Windows GUI.

If you are a system administrator, or just like using the command line, this article lists the best terminal emulators you can run on top of Windows 10 and Windows 11 with maximum command support and ease of use.

Table of Contents

Top Terminal Emulators for Windows

Windows Terminal

Download Windows Terminal

Windows Terminal

Windows Terminal

The Windows Terminal comes preinstalled in Windows 10 and 11. It can also be downloaded from Microsoft Store.

Although it lacks some of the features that other terminal emulators hold, it still provides convenient CLI usage without having to install a third-party emulator.

The Windows Terminal is an improvement over the legacy Command Prompt and Windows PowerShell, and combines these CLIs plus the Git Bash, Windows Subsystem for Linux (WSL), and Azure Cloud Shell into an integrated interface.

Additionally, it allows running multiple tabs simultaneously, allowing you to perform multiple tasks and connections at the same time.

Cmder

Download Cmder

Cmder

Cmder

Cmder is another Windows terminal built on top of “ConEmu” with the addition of Clink. Clink enhances the features of ConEmu by integrating support for Git commands, amongst Command Prompt and PowerShell. It supports running Unix-base cmdlets on top of the Windows OS and is fully compatible with Cygwin, Mintty, and msysgit.

Cmder comes in two versions – portable and full. Only the full version supports Unix-based commands, while the portable version is only 10 MBs in size and can be run directly from a USB. The portable version is widely used by sysadmins which they can carry around in a USB and use as per need.

Additionally, like Windows Terminal, Cmder can also run multiple tabs simultaneously.

That said, there are reports of non-Unicode characters having issues running with Cmder. If you use such characters often, then you may want to opt for another terminal.

ZOC Terminal Emulator

Download ZOC Terminal Emulator

ZOC Terminal Emulator

ZOC Terminal Emulator

Even though ZOC Terminal Emulator is an excellent command line tool, it is not free to use. This is perhaps the only drawback of the tool.

Other than that, like most other emulators, ZOC has a multi-tabbed interface that allows you to run multiple instances at the same time.

This tool does not only have a terminal interface like Windows Terminal but also includes a bunch of settings and menus that you can use your mouse to access. Additionally, it also supports Linux (Xterm) emulation, which includes 256-color support, meta-keys, and local printing. It also includes the Cisco CLI as well.

This terminal is an all-in-one solution for heavy file transfers and utilizes X, Y, and Zmodem, amongst FTP, FTPS, SFTP, and SCP.

Xshell

Download Xshell

Xshell

Xshell

Xshell is available in both free (for non-commercial use) and paid versions.

This terminal emulator supports SSH, SFTP, RLOGIN, Telnet, and SERIAL. Xshell comes in multiple language packs to cater to clients all around the world and is also designed for commercial use.

Multi-session management, work automation, support for UTF-8 coding, data safety, and security are some of the salient features of Xshell. Using the MIT Kerberos authentication system, this tool enables users to specify a master password to restrict access and keep the data safe and secure.

ConEmu

Download ConEmu

ConEmu

ConEmu

ConEmu is a free, open-source, Windows-specific terminal emulator with multi-tab support. The tool offers many CLI tabs as well as Graphical User Interface (GUI) programs that can be customized.

As it offers many customization options, such as hotkeys, personalized color palettes, and an auto-hideable mode, the software is popular amongst programmers and developers. ConEmu is also compatible with numerous shells, including PowerShell, PuTTY, and Cmder.

However, the lack of key functions, such as remote connections, makes the software less than ideal for novice users.

Hyper

Download Hyper

Hyper

Hyper

Hyper is a cross-platform, web-based terminal emulator. By “web-based,” we mean that it uses web-based technologies like CSS, Electron, and JavaScript to connect to remote devices.

Using Hyper, you can connect to multiple devices using the SSH protocol. Moreover, it has the ability to be expanded using plugins and add-ons. With multi-tab support, tiling pane, support for different themes, quick rendering, and split screen view, hyper becomes the ideal Windows terminal for sysadmins and developers on the go.

Putty

Download Putty

Putty

Putty

Putty is perhaps one of the most popular and love terminals out there. Designed for both advanced users and beginners, it has a simplistic design that supports SSH, Telnet, Rlogin, SUPDUP, and Serial protocols for a secure, remote connection.

Using the PSFTP (PuTTY SFTP client) and PSCP (PuTTY Secure Copy client) utilities, it can safely transfer files between computers. Putty supports SSH-1, SSH-2, and naming session profiles for storing configuration.

Honorable Mentions

Apart from the top 7 Windows terminal emulators that we have discussed above, there still are plenty of other emulators that are equally good. Here is a list in case your needs are not met using the aforementioned terminal emulators:

  • MobaXterm
  • KiTTY
  • ConsoleZ
  • z/Scope
  • FireCMD
  • Terminus
  • Git Bash

Closing Thoughts

Terminal Emulators let you gain more control over the remote devices. It allows you to perform certain tasks, such as automation, that previously weren’t possible using the Windows GUI. Moreover, it also allows you to control computers with different operating systems from a PC running the Windows OS.

Let us know which one of these emulators did you prefer and why?

A terminal emulator is a piece of software that mimics the behavior of an old-school computer terminal. In layman’s terms, this means that whereas the traditional terminal relied on hardware to complete its jobs, the Terminal emulator for Windows used computer code to achieve the same results.

Using a terminal emulator, a local computer may connect to a distant machine and use its keyboard, mouse, and display to do tasks. The software does more than just let the host computer read and write files on the distant computer; it also lets the host computer execute programs on the remote computer.

In addition, the terminal emulator allows the host computer and the remote computer to exchange files. The use of Secure Shell, a cryptographic network protocol, allows for such exchanges to take place between the two computers (SSH).

1. ZOC Terminal Emulator

Programmers who need to access data on Unix workstations will find ZOC one of the finest terminal emulators and SSH clients. The software’s sophisticated capabilities come at a price, but they’re excellent. It’s convenient for programmers since it connects to distant workstations and text-based services all in one place.

ZOC Terminal Emulator

Features:

  • The tabbed window for more than one session
  • Secure data transfer via SSL
  • Five thousand two hundred fifty sessions were written and recorded.
  • A powerful scripting language with the ability to scrape the screen

Get It here

2. Mintty

Mintty is a free and open-source console emulator for the Windows port of Unix. Since Cygwin is already built into Windows, Mintty doesn’t need a separate display server to operate. Programmers that rely on Cygwin for Windows shell will find this application to be an invaluable resource. In reality, Mintty has been Cygwin’s standard terminal since 2011.

Mintty

Features:

  • Mintty is a terminal emulator for Cygwin, MSYS, or Msys2 and projects based on them and WSL.
  • Features Terminal display has Xterm-compatible terminal emulation and all of the screen control features of the DEC terminal series.

Get It here

3. Cmder

Cmder is a powerful, portable console emulator for Windows that enhances the command-line experience with a sleek and customizable interface. It combines features from multiple shells, such as PowerShell and Git Bash, providing a unified and efficient environment for developers. With its extensive keyboard shortcuts and built-in tools, Cmder streamlines workflow and improves productivity. Ideal for advanced users, Cmder offers an enhanced alternative to the standard Windows Command Prompt.

Cmder

Features:

  • Cmder is an open-source terminal emulator for Windows
  • Also, Cmder adds improvements from Clink that work like a completion in bash.
  • It also adds Unix features to Windows by making PowerShell, MinTTY, myysgit, and Cygwin work better with each other.

Get It here

4. ConEmu Console Emulator

ConEmu is another free Terminal for Windows that uses tabs. The program’s graphical user interface (GUI) allows for the simultaneous display of several windows, each of which can be individually configured.

ConEmu Console Emulator

Features:

  • Changing the size of a window is easy and quick.
  • Editors, viewers, panels, and consoles all have their tabs.
  • Simple GUI programs like PuTTY can be run in tabs.

Get It here

5. MobaXterm emulator

When it comes to universal remote access software, MobaXterm is among the very best. It’s like having access to a whole suite of network utilities in one convenient interface.

A limitless supply of sessions, tunnels, and macros is available in the paid-for professional edition. Additionally, it provides additional customization options above the standard version.

MobaXterm emulator

Features:

  • Full support for X servers and SSH
  • Remote desktop
  • Remote terminal

Get It here

6. PuTTY – Most popular terminal emulator

In addition to being the most widely used SSH client, PuTTY is also another popular choice of Terminal Emulator. Simon Tatham’s PuTTY is a C program that allows for secure remote access through protocols like Telnet, Secure Copy, rlogin, and SSH. One of the oldest terminal emulators is still being actively maintained and improved.

PuTTY

Features:

  • Session logging
  • Configurable terminal emulation
  • Forwarding an SSH agent
  • Forwarding X11

Get It here

7. Xshell terminal emulator

Xshell, simulates a virtual console’s behavior. The software transforms the machine into a terminal, facilitating data transfer between the mainframe and the user’s program.

It’s made for Windows, but it’s a breeze with Linux servers.

The program is a modular emulator because of its many pull-down menus. Developers can efficiently manage multiple tasks thanks to the intuitive interface.

Xshell terminal emulator

Features:

  • It is free, open-source, and being worked on right now.
  • It works well with Internet Explorer.
  • PuTTY, Cygwin, CMD, and PowerShell work well with each other.

Get It here

Conclusion

In the realm of terminal emulators for Windows, options like Windows Terminal, PuTTY, and ConEmu offer diverse functionalities catering to different user needs. Windows Terminal stands out for its modern interface and versatility, accommodating various shells and configurations. PuTTY’s lightweight nature and robust SSH capabilities make it a popular choice among users requiring secure remote connections.

ConEmu impresses with its customization options and tabbed interface, providing enhanced flexibility for command-line tasks. The choice of the best terminal emulator for Windows typically depends on individual preferences, specific use cases, and the desired level of customization and functionality.

FAQs

Is there a terminal for Windows?

You can access a terminal program by navigating the Utility folder. If you prefer, type “terminal” into the command space shortcut to bring up the command line. Entering the word “terminal” at that prompt will launch the terminal program.

Is Cmder better than Windows Terminal?

If you’re looking for the greatest Windows shell, go no further than Cmder, a terminal emulator. Microsoft has been working on a new command shell that supports multiple tabs and colors for some time now. However, the product is still in the early alpha stage, and no executable is available for installation.

Does Windows 10 have a terminal program?

Microsoft has developed Windows Terminal, a command-line front-end with multiple tabs. It supports all Windows terminal emulators and can launch any command-line app in a new tab. Command Prompt, PowerShell, WSL, SSH, and the Azure Cloud Shell Connector are all installed and ready to use.

Does Windows 11 have a terminal?

The command prompt in Windows 11 is called Windows Terminal. Windows Terminal is an alternative to the standard command prompt that can be used to launch a PowerShell session.

Also Read

  • Best NES Emulator
  • PS2 Emulator For PC
  • DS Emulator For PC
  • Dreamcast Emulators for PC
  • Xbox 360 Emulators for PC
  • Best Android Emulator For Windows

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Отключить загрузку в безопасном режиме windows 10 через командную строку
  • Как изменить картинку ярлыка на рабочем столе windows 10
  • Горячие клавиши windows 10 сохранить как
  • Как поставить свою иконку на приложение windows 10
  • Не удалось загрузить windows поскольку необходимый файл отсутствует или поврежден что делать