Будем честны — стандартная командная строка Windows неудобна. В ней нет нормального copy-paste, нет вкладок и даже нет возможности по-человечески поменять размер окна. Кроме того, в самой Windows маловато консольных инструментов, и любители текстового режима, возможно, захотят получить доступ к мощному окружению UNIX. Для этого тоже есть свои решения.
Microsoft не сильно заботит судьба командной строки. Оно и понятно: для большинства людей это совершенно бесполезная часть системы. К счастью, есть энтузиасты, не поленившиеся превратить стандартный cmd.exe в инструмент, который действительно можно использовать.
Console
sourceforge.net/projects/console
Сперва рассмотрим решения для тех, кто выживает под командной строкой Windows, но при этом не испытывает нужды связываться с виртуализацией или *nix-утилитами, а главное — не желает платить! Словом, начнем с самого простого и доступного.
Проект с незамысловатым названием Console, пожалуй, самая крутая и функциональная разработка для оптимизации cmd в Windows на данный момент. В отличие от родной оболочки системы Console призвана быть удобной, понятной и предусматривает все те мелочи, которых многим так не хватает, например, после работы с Linux или Mac.
Нагляднее всего будет просто перечислить ключевые фишки софтины:
- Можно создавать множество вкладок командной строки в одном окне, с индикацией активности фоновой вкладки.
- Можно на лету изменять размер окна, как хочется, текст будет автоматически подгоняться под новый размер.
- Имеется функция copy-paste, а значит, можно спокойно копипастить информацию туда-сюда, как в обычном текстовом редакторе (выделить мышью нужный фрагмент можно, зажав клавишу , а вставить — через тулбар или через меню).
- Есть возможность выбирать любой из доступных для консоли шрифтов и настроить их сглаживание вплоть до ClearType.
- Можно запоминать размер окна и позицию на экране — при каждом запуске конфигурация будет та, что нужна пользователю. Прозрачность окна также имеется и настраивается, но реализована странно — во многих случаях текст становится нечитаемым.
- Работают всевозможные комбинации клавиш, которые можно настроить под себя.
- Можно создавать преднастроенные вкладки и прописывать комбинации команд, которые будут выполнены при открытии данной вкладки.
- Есть возможность подключения других интерпретаторов (bash и прочие) — а значит, и запускать сценарии на этих языках.
Разумеется, это далеко не полный перечень того, что умеет Console, но остальные нюансы лучше познавать на деле, тем более что программа распространяется свободно и совершенно бесплатно. Заметим, что, поработав с Console хотя бы раз, уже сложно представить себе работу без нее. К сожалению, некоторые пользователи жалуются на скорость работы программы.
Кстати, для тех, кто больше доверяет платным и серьезным решениям, есть очень похожая на Console альтернатива — PowerCmd (powercmd.com). По функциональности Console и PowerCmd схожи, только у последней различных «свистелок» и удобств еще больше:
- Сильная сторона — возможность располагать консоли не только в виде вкладок, но и в виде областей одного экрана. При этом можно разместить до четырех терминалов.
- Можно вести логи вводимых команд, искать по ним.
- Можно запоминать пути и папки в виде избранного с занесением в избранные закладки.
- Предусмотрены различные настройки интерфейса: меняется фон, изменяются шрифты, нумеруются строки.
- Поддерживается автодополнение.
- Доступна подсветка синтаксиса.
- Есть возможность запоминать активные сессии.
Однозначно оправдать ценник в 30 долларов у PowerCmd мы не можем — при желании Console можно расширить до нужного уровня, да и упирается все в конечном счете в конкретные потребности пользователя. Однако по сравнению с бесплатным аналогом этот инструмент более нагляден, интерактивен и удобен — мы считаем, что он лучше подойдет тем, кто не хочет ковыряться в форумах и настройках для того, чтобы «допилить» Console. Но это наше мнение, и сформировать собственное ты сможешь, если попробуешь бесплатную триальную версию PowerCmd. Также на нее стоит обратить внимание пользователям, часто работающим с русскими названиями файлов, — с ними PowerCmd часто ведет себя непредсказуемо.
Clink
К самым простым апгрейдам можно отнести еще один совсем маленький lifehack — Open Source утилиту clink, которая способна значительно расширить возможности интерпретатора командной строки cmd.exe. Дело в том, что clink использует библиотеку readline, которая создана и поддерживается в рамках проекта GNU и обеспечивает интерфейс командной строки и обработку строк в bash.
После установки clink интерпретатор cmd.exe фактически ведет себя как командная оболочка bash со всеми ее продвинутыми функциями: автодополнением командной строки, редактированием, историей команд и так далее. Перечислять весь список новых возможностей cmd не стану, приведу только некоторые особенности:
- удобное автодополнение путей (TAB);
- вставка из буфера обмена (Ctrl-V);
- поддержка автодополнения при указании исполняемых файлов/команд и переменных окружения;
- функции Undo/Redo (Ctrl-_ или Ctrl-X, Ctrl-U);
- улучшенная история командной строки;
- сохранение предыдущих сессий;
- поиск по истории (Ctrl-R и Ctrl-S);
- расширенная история (например, !!, !<string< и !$);
- скрипты автодополнения на Lua, позволяющие серьезно сэкономить время.
Cygwin
Ну и в заключение хотелось бы напомнить тебе о еще одном полезнейшем инструменте, хотя его и нельзя назвать «простой оптимизацией cmd». Данное решение пригодится тем, кто желает объединить возможности Linux и Windows, или тем, кто по каким-то причинам не может установить Linux на своем компе, но в нем нуждается.
Конечно, большинство наших читателей уже догадались, о чем речь, ведь они наверняка знакомы со старым добрым Cygwin, но вспомнить о нем еще раз — не лишнее.
Cygwin — это UNIX-подобная среда и интерфейс командной строки для Windows, позволяющая объединить Windows и UNIX без использования виртуализации (что немаловажно). По сути, это не что иное, как набор утилит из мира *nix, портированных на Windows. Что конкретно устанавливать помимо базовой системы, каждый решает сам для себя — выбор огромен. Но так как мы сегодня занимаемся оптимизацией командной строки, нас интересует именно этот аспект Cygwin.
В общем-то, Cygwin превращает командную строку в удобный UNIX-терминал, к какому привыкли поклонники Linux и Mac. Все UNIX-команды, которые тебе знакомы, прекрасным образом будут работать и здесь, так же, как работают и многие никсовые утилиты. Однако сама командная оболочка, увы, остается практически без изменений. Cygwin решает проблему отсутствия команд и синтаксиса, но удобство работы все равно оставляет желать лучшего. Следующий совет поможет разобраться и с этой задачей.
Mintty
Если ты используешь Cygwin или MSYS/MinGW, тебе точно пригодится mintty.
Как мы уже выяснили, чаще всего людям в работе с командной строкой не хватает самого элементарного: удобного выделения текста, функции copy-paste, настроек прозрачности окна и так далее. А значит, нужна новая программа-терминал. Mintty — одно из самых популярных и удобных решений в этой области.
Mintty, так же как и Console, о которой речь шла в начале, призвана оптимизировать работу командной строки. Функциональность этих двух софтин весьма схожа, правда, mintty, к сожалению, не поддерживает табы. Если же наличие или отсутствие вкладок некритично, на mintty точно стоит обратить внимание, потому что она предоставляет:
- удобный copy-past;
- функцию drag & drop для текста, файлов или директорий;
- возможность открывать ссылки по Ctrl+клик;
- полноэкранный режим и прозрачность для Windows Vista и 7;
- поддержку различных кодировок, включая UTF-8, а также многое, многое другое.