Linux-подобный терминал для Windows

Я ищу приложение, которое может действовать как интегрированный Linux-терминал для моего ПК с Windows. Например, я мог бы перемещаться по файловой системе, устанавливать такие приложения, как vi и т. д. Я хотел бы, чтобы это приложение отвечало следующим требованиям:

  • Бесплатно
  • Использует Баш
  • Не эмулятор (я действительно могу видеть свои файлы на диске C и взаимодействовать с ними)
  • Простота установки
  • Совместимость с Windows 10
Если вы хотите отказаться от требования bash, вы также можете взглянуть на Powershell, который поддерживает сценарии и интегрируется с другими службами Windows — en.wikipedia.org/wiki/Windows_PowerShell .
^ В таком случае, почему не Python? Это также кроссплатформенный и действительно полноценный язык программирования общего назначения.
Всегда есть PuTTY. Для этого потребуется где-нибудь в сети Linux-бокс (например, Raspberry Pi, выделенный ПК, виртуальная машина, EC2). Таким образом, вы не испытаете многих проблем Cygwin. Добавил это как комментарий, потому что это довольно вольная интерпретация ваших критериев. Однако для меня я предпочитаю настоящий Linux, а не Cygwin.
Вы спрашиваете о командной оболочке или терминале, отличном от консоли Windows?
ConsoleZ с родными инструментами gnu — хорошая альтернатива
И не забудьте скачать последнюю сборку ConEmu, чтобы заменить командную строку Windows или CygWins по умолчанию...

Ответы (10)

Я использую Cygwin уже некоторое время, и, похоже, он справляется со своей задачей. Его было очень легко установить, и я мог выбирать из множества различных пакетов для установки, таких как vim, wget и т. д.

Сигвин

Почувствуйте себя в Linux — в Windows

Cygwin — это Unix-подобная среда и интерфейс командной строки для Microsoft Windows. Cygwin обеспечивает встроенную интеграцию приложений, данных и других системных ресурсов Windows с приложениями, программными инструментами и данными среды, подобной Unix.

Терминалы Cygwin под управлением Windows 7

Я использую Cygwin более десяти лет. Это мой стандартный терминал командной строки (mintty), и мне почти никогда не приходится использовать cmd.exe.
Почему у вас есть фотография Hamilton C Shell?
Babun очень хорош как самоуверенная конфигурация Cygwin с менеджером пакетов и автообновлением.
@JimGarrison Улучшилась ли производительность за это десятилетие? В 2006 году я тоже несколько месяцев пользовался Cygwin. Использование fork, exec и каналов было настолько медленным, что сценарии оболочки выполнялись в Linux как минимум в 100 раз быстрее, чем в Windows.
@kasperd Я никогда не замечал проблем с производительностью. Я не ожидаю, что она будет соответствовать производительности Linux, но никогда не было момента, когда я был бы разочарован плохой производительностью.
@JimGarrison Я думаю, это может означать только то, что вы не использовали медленные функции широко, потому что медлительность невозможно было не заметить для сценариев оболочки, которые мне нужны. Не то чтобы это было источником разочарования, поскольку я мог просто подключиться по ssh к серверу Linux и запустить там свои сценарии. Cygwin никогда не был для меня источником разочарования — вместо этого я винил бы Windows и признавал, что Windows с Cygwin была лучшей рабочей средой, чем Windows без Cygwin.
@Boggin babunбольше не поддерживается, и его больше не следует рекомендовать.

CMDer

командование

Он сочетает в себе ConEmu , эмулятор консоли Windows, дополненный bash-подобными возможностями Clink и msysgit . Некоторые примечательные особенности включают в себя:

  • Оболочка Bash через msysGit
  • Компилятор GNU C и GNU Make
  • Перл
  • CURL
  • Встроенный агент SSH
  • Автодополнение команд
  • Псевдонимы (с тем же синтаксисом, что и bash)
  • Вставить с клавиатуры с помощьюCTRLV

Если вы ищете менеджер пакетов (например , apt-getили yum), Chocolatey является возможной альтернативой Windows. Он не содержит всех пакетов, а некоторые из них иногда устаревают, но он имеет довольно впечатляющее распространение.

choco install googlechrome
+1 за простое упоминание Cmder, мне нравится эта программа. Он также портативный, так что вы можете иметь его на USB-накопителе и носить с собой в дороге, что я и делаю, чтобы избежать отвратительного интерфейса cmd.
Интересно, что он использует Git Bash. Я использую его сам, но действительно ли это лучший подход по сравнению с Cygwin? Там нет менеджера пакетов. Chocolatey просто устанавливает приложения для Windows.
В контексте вопроса (который просил оболочку bash) я думаю, что это так же хорошо, как Cygwin. Иногда вам не нужна полноценная система Linux с менеджером пакетов, достаточно оболочки bash для быстрой и грязной работы.
+1. cmder, вероятно, настолько хорош, насколько это возможно. Упомяну хотя у него куча проблем с перерисовкой. (Например, если у вас мерцают меню в vim).

Cygwin , уже перечисленный, является хорошим решением.

Однако есть и другая альтернатива: MSYS .

MSYS намного легче, чем Cygwin, однако в нем может быть не все, что вам нужно. Очевидно, вам придется оценить это самостоятельно. Он определенно соответствует всем 5 пунктам вашего списка. Он бесплатный, имеет оболочку Bash, вы можете взаимодействовать с вашими текущими дисками, его легко установить, и он работает на Win10.

Я бы настоятельно рекомендовал MSYS2 вместо старого MSYS.

Бабун

Скриншот того, как я дурачусь с нантом через бабун.  Это соляризованная светлая тема

Я удивлен, что никто не упомянул Babun, «оболочку Windows, которую вы полюбите». Это предварительно сконфигурированный Cygwin, который «просто работает», как правило, довольно крут из коробки.

Долгое время я использовал Git Bash (улучшенный с помощью Console2), но мне этого явно не хватало. Хотелось большего, но Cygwin меня сильно пугал: боялся, возможно, необоснованно, наворотов , и сложности настройки штуки. Я также хотел достаточно красивый терминал, а готовый cygwin просто не очень красив. Боюсь, это прозвучит как реклама, но Бабун действительно сработал.

Теперь о требованиях:

  • это бесплатно и с открытым исходным кодом.
  • по умолчанию он использует zsh вместо Bash, но, честно говоря, для обычного пользователя это почти то же самое. Его можно перенастроить для использования правильного bash.
  • с реальными файлами Windows можно прекрасно взаимодействовать, диски доступны в разделе /cygdrive/, но также имеют псевдонимы своих букв дисков под root.
  • Установка просто запускает install.bat.
  • Совместимость с Windows 10 не идеальна, но исправление выглядит достаточно просто .

У него есть проблемы:

  • Симлинки немного дерьмовые , это проблема Cygwin.
  • Есть ошибка, связанная с разрешением, которая причинила мне горе.
  • Его объем немалый (около 800 МБ на моей машине с тем, что мне нужно для работы), что делает решения, отличные от Cygwin (Git-bash или cmder), более подходящими, если проблема с дисковым пространством (да, ребята, дисковое пространство иногда все еще проблема).
  • Автозаполнение oh-my-zsh может быть медленным. Но тебе все равно понравится.
  • в некоторых крайних случаях возникают некоторые сбои при взаимодействии с файлами и приложениями Windows, в основном для файлов с пробелами в именах. Их можно достаточно легко избежать, но это все равно немного больно. Вызов исполняемых файлов Windows с файлами Windows в качестве аргументов требует использования cygpath.
  • Windows не распознает Babun как интерактивную оболочку, она думает, что это канал. Это вызывает всевозможные проблемы с интерактивными программами собственного узла. Это мятная проблема , которую можно улучшить

Как правило, если вы просто хотите красивую оболочку с функциями, не тратя время на настройку и настройку, Babun просто идеален. Есть неприятные моменты, но мне нравится :)

Не могли бы вы отредактировать свой ответ и указать, как Бабун соответствует каждому из требований ОП? Руководство по ответам см . в нашем обсуждении того, что делает ответ качественным . Спасибо!
+1, тем более, что у него есть рабочая реализация zsh из коробки
Теперь babunпроект официально мертв. Это больше не следует рекомендовать.
Да, к сожалению, Бабун больше не выпускается :(. Он все еще работает!

Windows 10 с юбилейным обновлением 2016 года теперь предоставляет двоичный файл Bash Linux, работающий в самой Windows. Доступ к нему можно получить через любую командную строку, и он может запускать команды в стиле UNIX (например ls, ), как и любую другую команду. Для получения дополнительной информации об этом прочитайте сообщения MSDN на странице Подсистема Windows для Linux .

Скриншот

Это выглядит действительно захватывающе.
Это должен быть ответ сейчас, так как это настоящие дистрибутивы Linux, работающие в Windows 10, и их очень легко настроить.
все еще некоторые недостающие функции wpdev.uservoice.com/forums/…
@StevenPenny спасибо за ссылку и за упоминание ограничений.
Как вы это делаете?

Я использую комбинацию Git Bash, которая появляется при установке Git , и ConEmu . Git Bash использует MinGW, а ConEmu предоставляет возможность иметь несколько вкладок и хорошие цветовые схемы, возможность иметь полноэкранный терминал и многое другое.

...и для тех, кто интересуется археологией программного обеспечения, Git Bash для Windows поставляется с perl v5.8.8. Трудно найти более устаревшую версию Perl для Windows.
@tjd perl --version сообщает о версии 5.22.0 (последняя стабильная версия) с моей установкой Git-2.5.2.2.
@Boggin Я отказался от проверки обновлений Git 1.9.5 в Windows. Приятно видеть, что они наконец доставили!
Должен сказать, что я предпочитаю Git Bash Cygwin просто потому, что если мне действительно нужна полноценная Linux-подобная среда на моем компьютере, тогда я загружаюсь в Linux. Cygwin — отличная вещь, но это излишество, если вам нужна только оболочка!

MSYS2 — это ответвление Cygwin, созданное с намерением стать обновленной средой для поддержки сборки с помощью MinGW. (То есть он предназначен для использования в качестве лучшей поддерживаемой альтернативы все более устаревшему MSYS. Некоторые подробности см. здесь .) Он хорошо работает как оболочка bash с инструментами Linux на компьютере с Windows.

Требования

  • Свободно
  • bash — оболочка по умолчанию
  • Устанавливается на ваш компьютер и работает на локальном жестком диске, а не в эмулируемой системе.

    Обратите внимание, что вы должны либо заключать свои пути в кавычки ( cd 'C:\'), либо использовать альтернативную абсолютную спецификацию ( cd /c). Я считаю, что Cygwin, MSYS и другие родственные варианты похожи в этом отношении.

  • Использует стандартный исполняемый установщик Windows.

  • Я лично не тестировал Windows 10, но поскольку это форк Cygwin и он внимательно отслеживает его, я уверен, что он так же совместим с Windows 10, как и Cygwin.

Другой

На мой взгляд, самым большим преимуществом MSYS2 является сравнительно чистое управление пакетами. Менеджеры пакетов Cygwin и MSYS, на мой взгляд, запутаны и сложны в использовании. Они графические и не очень хорошо интегрированы с самой системой. В отличие от этого, MSYS2 портировал pacman Arch Linux, и все управление пакетами осуществляется из командной строки. Существует множество доступных и легко устанавливаемых пакетов: от Python до Perl, от vim до SVN, от git до компиляторов MinGW. Есть небольшой сбой при обновлении некоторых «базовых» пакетов: вам нужно перезапустить оболочку и снова запустить обновление, но, на мой взгляд, это намного лучше, чем запускать какой-то внешний графический инструмент.

См . Введение и сравнение с Cygwin для собственного заявления MSYS2 об отличиях от Cygwin и их целях.

Я согласен! Кроме того, ConEmu — хороший эмулятор консоли. Я использую zsh или fish в качестве оболочек, но с MSYS2 в ConEmu ежедневно.
@Josef Я считаю, что в целом доволен консолью, которую он использует по умолчанию. Это определенно намного лучше, чем окно командной строки.
Преимущество ConEmu в том, что его также можно использовать для собственных консольных приложений Windows и PuTTY/KiTTY, поэтому у меня все мои консоли, локальные и удаленные, Windows и MSYS2 в одном окне.

MobaXTerm

Скриншот

  • Бесплатно: да . Он имеет персональную и профессиональную версии. Профессиональная версия в основном просто добавляет контракт на поддержку и инструменты развертывания (AFAICT). Вы можете использовать персональную версию на своем рабочем месте
  • Использует Bash: Да. Я использую MobaXTerm 8.6, а это версия Bash 4.1.17(0). Более новые версии MobaXTerm могут использовать новый Bash
  • Не эмулятор: Да, это не эмулятор . Он запускает вас в сторону того, что выглядит как файловая структура Unix (посмотрите как ls /), но если вы перейдете к /mnt/cсвоему диску C, он там.
  • Простота установки: да . Поставляется как в виде простого установщика, так и в виде портативного исполняемого файла.
  • Совместимость с Windows 10: Да , Vista и 7

Установка таких вещей, как Vi, это может сделать. У него есть свой собственный apt-getMobApt, основанный на apt-cyg (у меня версия 0.59). Вы просто делаете обычный стиль Debian apt-get install viи т. д.

Я считаю, что MobaXterm в основном объединяет Cygwin, но я предпочитаю его, так как в прошлый раз, когда я использовал Cygwin, он распространился по всей моей операционной системе, добавляя себя в различные меню. MobaXterm держит все это в себе.

Однако основные функции MoboXTerm на самом деле не являются его локальным терминалом. Вероятно, он наиболее известен своим SSH-клиентом со встроенными SFTP и X11. И куча других вещей.s

Это очень рекомендуемая программа, особенно интеграция X11, которая делает ее уникальной среди других альтернатив в ответах здесь.
Обратите внимание, что с этим решением вы должны использовать их эмулятор терминала! :-( Во внешней обычной файловой системе нет отдельного места, которое bash.exeвы могли бы запустить в терминальном приложении по вашему выбору. (Но я согласен с @krishnakumarG, сервер X11, который он предоставляет, превосходен.)

По состоянию на 2015 год и выпуск Python 3.4 теперь доступна достаточно полная интерактивная оболочка для пользователя по адресу: http://xon.sh/

В демонстрационном видео не показаны используемые каналы, но они ПОДДЕРЖИВАЮТСЯ в режиме оболочки по умолчанию.

Xonsh («раковина») очень старается подражать bash, поэтому вещи, для которых у вас уже есть мышечная память, например

env | uniq | sort -r | grep PATH

или же

my-web-server 2>&1 | my-log-sorter

по-прежнему будет работать нормально. Вам может понадобиться cygwin или msys, чтобы иметь доступ к основным утилитам GNU, таким как grep и uniq. В Windows есть несколько собственных встроенных функций с unix-подобными именами, которые могут привести к поломке, поэтому будьте осторожны с порядком вашей переменной PATH.

Учебное пособие по xonsh довольно длинное и, кажется, охватывает значительный объем функций, которые обычно ожидаются в командной строке ash или bash:

  • Компилирует, оценивает и выполняет!
  • История команд и завершение табуляции
  • Помощь и суперпомощь с ? & ??
  • Псевдонимы и индивидуальные подсказки
  • Выполняет команды и/или сценарии *.xsh, которые также можно импортировать
  • Переменные среды, включая поиск с помощью ${}
  • Перенаправление ввода/вывода и объединение
  • Фоновые задания и управление заданиями
  • Вложенные подпроцессы, каналы и сопроцессы
  • Режим подпроцесса, когда команда существует, в противном случае — режим Python.
  • Захваченный подпроцесс с помощью $(), незахваченный подпроцесс с помощью $[], оценка Python с помощью @()
  • Подстановка имен файлов с * или подстановка имен файлов с помощью регулярных выражений с обратными кавычками

Терминал Windows

Примеры терминалов

Хотя по умолчанию он не включает настоящую оболочку bash, я считаю терминал Windows лучшим из созданных Microsoft, официально поддерживаемых Windows терминалов для Windows 10.

Требования

  • Бесплатно - Да
  • Использует Bash - он может запускать bash, powershell, командную строку, оболочку ubuntu с подсистемой Windows для Linux или любую оболочку
  • Не эмулятор - это настолько реально, насколько это возможно
  • Простота установки - очень просто , установка через магазин Microsoft.
  • Совместимость с Windows 10 — первоклассный гражданин Win 10

Особенно с функциями Powerline, это выглядит так красиво. Кроме того, если вы хотите, чтобы среда Linux исследовала ваш настоящий ПК с Winodws, вы можете посмотреть подсистему Windows для Linux через терминал Windows.

Я нашел документацию превосходной, поэтому вы сможете относительно легко сделать все это, просто прочитав документацию Microsoft.