Как разработчикам, которые проводят большую часть времени за программированием для OSX и Linux, нам было любопытно, как может выглядеть современная установка из командной строки в Windows.
Опрос разработчиков StackOverflow напомнил нам, что Windows используют больше разработчиков, чем любую другую ОС, поэтому нам было любопытно, соответствует ли там инструментарий тому, к чему мы привыкли в мире *nix.
Потратив некоторое время на оценку набора инструментов Windows CLI, мы остановились на наборе инструментов, который, по нашему мнению, поможет нам достичь цели на 95%.
В итоге мы остановились на комбинации:
- PowerShell
- КонЭму
- PSReadLine
- PSПолучить
- Шоколадный
- Бабун (по желанию)
Ниже приведены дополнительные заметки о том, что дают вам эти различные механизмы.
PowerShell (оболочка)
- Значительно ближе к настоящей «оболочке», чем cmd.exe, предлагая нам мощную среду сценариев для автоматизации задач. Справедливо сравнить его с Bash или zsh .
- Автозаполнение каталогов и имен файлов
- Автозаполнение названий приложений
- Имеет интегрированные псевдонимы и команды (называемые командлетами — например
Select-String
похож наgrep
,Invoke-Elevated
похож наsudo
,Sort-Object
похож наsort
,Get-Process
перечисляет все активные процессы). При переходе из другой оболочки в PSSet-Alias
позволяет сопоставить привычные вам псевдонимы с эквивалентами Windows. Например:Set-Alias server python -m http.server 8000
запускает сервер Python при использовании псевдонимаserver
. - Псевдонимы могут сохраняться в профиле PowerShell.
- Поддерживает конвейеризацию, как Unix. В отличие от Unix, он передает объекты, а не текстовые потоки. Это требует привыкания, но позволяет избежать повторного анализа, когда вы хотите получить свойство.
- Поддерживает модули. PSGet — это менеджер пакетов для PowerShell, позволяющий легко расширять его.
- При желании рассмотрите Posh-Git , сценарий PowerShell для git, обеспечивающий контекстное завершение табуляции.
Если вас интересуют мелочи, вот ответ на вопрос, почему MS создала PowerShell от ведущего архитектора .
PSReadLine (помощники по редактированию консоли)
- Значительно улучшает возможности редактирования в консоли.
- Подсветка синтаксиса каждый раз, когда вы начинаете вводить команды. Синтаксические ошибки четко обозначаются красным символом «>».
- Широкие возможности настройки привязок клавиш
- Автодополнение в стиле Bash
- Интерактивный поиск по истории Bash/zsh (Ctrl + R). Мощный просмотр истории команд. Легко просматривать предыдущие многострочные команды, используя клавиши со стрелками, а не только последнюю строку команды.
- Правильная поддержка копирования/вставки/вырезания (Ctrl+C/X/V должно работать нормально)
- Хорошая поддержка отмены/повтора
- Сохранение истории происходит автоматически
Альтернативно вы можете использовать Clink , который имеет аналогичный набор функций, но не был написан строго для PowerShell.
ConEmu (хост консоли)
- Усовершенствованный эмулятор консоли, в котором вы можете запустить выбранную вами оболочку.
- Поддерживает открытие нескольких терминалов на разных вкладках. Упрощает запуск терминалов от имени разных пользователей.
- Чрезвычайно настраиваемый — можно изменить все: от ярлыков до выделения текста и цвета строки состояния.
- Поддерживает режим разделенного экрана.
- Простые приложения с графическим интерфейсом можно запускать во вкладках
- Поддержка списков переходов Windows 7+
- Поддерживает плавное изменение размера окна.
- Сглаживание шрифтов Windows
- Стартовые вкладки можно полностью настроить для запуска в определенном каталоге.
- Интеллектуальное копирование/вставка
Некоторым людям до сих пор нравится использовать Console2 , и Скотт Хансельман написал об этом сообщение в блоге.
Командир
Стоит отметить Cmder — пакет эмуляции консоли, сочетающий в себе ConEmu, Clink и msysgit — предоставляющий вам помощников Git. Cmder по умолчанию делает ConEmu более привлекательным благодаря цветовой схеме Monokai.
Cmder также включает в себя некоторые другие небольшие преимущества, такие как интеграция с приложениями с графическим интерфейсом, такими как Sublime Text .
Шоколадный (менеджер пакетов)
- По сути, это домашняя версия для Windows, позволяющая вам удобно использовать ваши любимые приложения для Windows. В настоящее время доступно около 3 тыс. пакетов, которые можно обновить напрямую с помощью Chocolatey.
- Отличается от Nuget . NuGet предназначен для библиотек разработки. Chocolatey — это менеджер пакетов двоичных машин, построенный на инфраструктуре NuGet.
- Предлагает эффективные бесшумные сборки
Вам также может быть интересно узнать об OneGet , менеджере пакетов Microsoft, который должен работать с Chocolatey в Windows 10.
Бабун (предварительно настроенный Cygwin)
- Cygwin (Linux-подобная среда для Windows) без некоторых исторически известных особенностей. Общая настройка значительно проще при использовании установщика Babun. Если у вас есть большой опыт работы с Unix и вы предпочитаете избегать изучения PowerShell, стоит рассмотреть cygwin/Babun.
- Включает менеджер пакетов под названием
pact
(немного похожий наbrew
), похожий наapt-get
. Это очень важно, поскольку в настоящее время вам приходится перезапускать установщик Cygwin при добавлении пакетов, а не просто при использовании pact. - Vim предварительно установлен и настроен
- Интегрированная поддержка oh-my-zsh
- Автообновления