Инструменты командной строки Windows

Как разработчикам, которые проводят большую часть времени за программированием для 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 перечисляет все активные процессы). При переходе из другой оболочки в PS Set-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
  • Автообновления

Дальнейшее чтение