Есть ли лучшая оболочка командной строки Windows?

CMD.EXE создает для меня много проблем. У меня установлен Cygwin, и я регулярно использую bash, а также у меня есть оболочка mingwin bash, которая поставляется с mSysGit, но иногда мне действительно нужно запускать что-то из оболочки Windows.

Есть ли замена для оболочки Windows, которая:

  • имеет постоянную историю командной строки, доступную в моем следующем сеансе после закрытия сеанса? (как в bash HISTFILE)
  • помнит, в каком каталоге я только что был, чтобы я мог переключаться между двумя каталогами? (как в bash cd -)

(Или есть способ включить эти функции в CMD.EXE?)

Я вижу, что некоторые спрашивали о лучшей оболочке Windows раньше, но они спрашивали о сокращении и вставьте то, что для меня ниже приоритета на данный момент. Меня убивает не консоль, а интерпретатор командной строки.


person skiphoppy    schedule 06.04.2009    source источник
comment
Powershell не является ответом на мой вопрос. Как я отметил в комментариях к ответу Себа, Powershell не имеет постоянной истории командной строки. Я не прошу что-то лучшее в целом, я прошу что-то с конкретными требованиями. Удален тег powershell, так как это не вопрос powershell.   -  person skiphoppy    schedule 05.06.2009
comment
Я использую ConEmu, действительно хорошую замену командной строке.   -  person jamescampbell    schedule 16.04.2016
comment
@jamescampbell Не консоль, а оболочка. Я тоже использую ConEmu, но это консоль, а не оболочка.   -  person skiphoppy    schedule 18.04.2016


Ответы (12)


Мне всегда нравился 4NT (давно им не пользовался).

Это расширенный интерпретатор команд для Windows, и он в основном обратно совместим (это означает, что вы можете запускать обычные пакетные файлы Windows). Единственная причина не использовать его заключается в том, что он не поставляется с Windows, как это делает command.exe по умолчанию.

По сравнению с интерпретатором командной строки Windows по умолчанию, он имеет лучшие механизмы управления потоком. Доступны все стандартные инструменты командной строки Windows, но с дополнительными опциями и параметрами.

По сути, это то, чем должен был быть CMD.exe.

Обновление: похоже, это больше не 4NT, а TakeCommand: http://jpsoft.com/products.htm

person Wouter van Nifterick    schedule 06.04.2009
comment
Возможно, бесплатного TCC/LE от jpsoft.com/products.htm тоже достаточно. история оболочки тоже. - person Peter Kofler; 06.01.2011

Microsoft только что выпустила Powershell. (около 2 лет назад)

Я уже скачал его; не пробовал много, но кажется хорошим инструментом.

person Seb    schedule 06.04.2009
comment
Похоже, Powershell настолько близок к постоянной истории: microsoft.com/technet/scriptcenter/topics/msh/cmdlets/ - person skiphoppy; 07.04.2009
comment
только что выпущенный? это было доступно в течение более 2 лет! - person Lucas; 07.04.2009
comment
Возможно он имел ввиду PowerShell 2, CTP 3 вышла в декабре. Жду V2. - person Bratch; 07.04.2009
comment
Я имел в виду стабильную версию 1.0! :) - person Seb; 07.04.2009
comment
Я рад видеть, что размер буфера больше :) (возможность прокручивать больше строк). - person Sebastian Patten; 26.05.2014
comment
Этот ответ просто не по теме и не помогает - person Semanino; 05.10.2018

Я тоже использую Powershell. Это отличный, похожий на оболочку Linux, но объектно-ориентированный, расширяемый фреймворк. Круто не только для системных администраторов, но и для разработчиков (процесс сборки и т. д.). Powershell качает bash или других конкурентов Linux :)

Основные преимущества:

  • Расширяемый с языками .NET
  • Использование объектов .NET (DateTime, File и т. д.)
  • Простой и понятный синтаксис
  • удаленное взаимодействие
  • Отладка
  • Ступенчатые конвейеры
  • ...

Еще отсюда:

http://blogs.msdn.com/powershell/default.aspx

http://windowsteamblog.com/blogs/windowsvista/archive/2006/11/14/it-forum-day-one-windows-vista-and-windows-powershell.aspx

http://blogs.msdn.com/powershell/archive/2007/11/06/what-s-new-in-ctp-of-powershell-2-0.aspx

person boj    schedule 06.04.2009

Другим блестящим решением является «Clink», который расширяет CMD.exe с помощью постоянной истории и многих других функций, подобных BASH. Просто установите его, а затем откройте CMD как обычно. См.: http://code.google.com/p/clink/.

Или, если вы действительно хотите, чтобы 'cd -' работал, чтобы перейти к предыдущему каталогу, установите бесплатную версию 'TCC/LE' с http://jpsoft.com как упоминалось Ваутером и Питером.

person sparrowt    schedule 08.09.2012
comment
Клинк кажется лучшим... - person thoni56; 08.08.2014

попробуйте console2: http://sourceforge.net/projects/console/

мне это нравится

person mkoryak    schedule 06.04.2009
comment
Это уже можно использовать? Я посмотрел на него некоторое время назад, и он был чертовски глючным ... - person Joey; 07.04.2009
comment
Не решает ни одну из моих проблем. Как я уже сказал, я не ищу лучшую консоль; Я ищу лучшую оболочку. - person skiphoppy; 07.04.2009
comment
console2 — это просто интерфейс пользовательского интерфейса. Дерьмо в дерьме!, а-ля командная строка - person Oliver; 07.04.2009
comment
Вкладки мне нравятся, но я до сих пор не могу понять, как из них выделять и копировать текст. Если у него действительно есть эта функция, они все равно терпят неудачу из-за того, что ее так сложно понять. - person Whatever; 04.06.2009
comment
Для получения справки по настройке console2: hanselman.com/blog/Console2ABetterWindowsCommandPrompt.aspx - person Ashley Davis; 15.02.2012

PyCmd соответствует обоим вашим требованиям! И он построен поверх cmd.exe...

  1. история команд сохраняется в сеансах PyCmd
  2. история недавно посещенных каталогов (Alt-Left/Right/D на пустой строке)

Вот список функций http://sourceforge.net/projects/pycmd/files/pycmd/0.8/

person Juande Carrion    schedule 18.10.2012

PowerShell, я бы сказал. Это новая официальная оболочка Microsoft для администрирования из командной строки.

Я сам использую его для задач разработки, и мне это нравится. Это дает вам возможность взаимодействовать с классами .NET Framework непосредственно в командной строке, что может быть очень полезным.

person driis    schedule 06.04.2009

Другие уже упоминали Powershell и 4NT, оба решения намного лучше, чем CMD со всем его загадочным синтаксисом, отсутствием документации и зачастую удивительной неспособностью выполнить практически любую задачу, для которой вы, возможно, захотите его использовать :)

  • 4NT теперь является частью пакета управления файлами Take Command с графическим интерфейсом, но владельцы сделали доступной только часть оболочки, теперь она называется TCC/LE и также теперь бесплатна! Для большинства людей я бы посоветовал использовать это - это самая простая кривая обучения, поскольку у вас есть в основном совместимый синтаксис с CMD, много ресурсов в Интернете и способность идеально выполнять, скажем, 80% задач файловой системы.

    загрузка TCC/LE

  • Для людей с более неясными потребностями, занимающихся администрированием или стремящихся к большей гибкости, попробуйте Powershell — это крутая начальная кривая обучения, но внутри она очень последовательна, и как только вы разберетесь с основами, вы сможете получить доступ и работать на 99,9% все, что Windows обрабатывает, используя один и тот же набор инструментов и методов, даже выполняя это по сети на других машинах. Даже изучение основ (сортировка, выбор, % и?) уже лучше, чем CMD...

    Руководство пользователя PowerShell

    Примеры PowerShell

  • Если вы более технически склонны, я бы рассмотрел IPython - по сути это консоль для написания и выполнения кода Python, но он также очень удобно действует как оболочка (и система управления задачами) - у него есть закладки, псевдонимы, вкладки завершение кода/файлов, может смешивать код и команды оболочки, например. files=!dir *.txt сохраняет вывод dir *.txt, настраиваемое ведение журнала ввода и/или вывода, может повторять блоки прошлых команд, экспортировать их или создавать макросы, а также имеет расширения, которые могут его настраивать.

    IPython как оболочка

    Определенно не для слабонервных, но очень мощная среда, если вы знаете Python!

person spiralx    schedule 23.05.2013

pushd и popd могут использоваться для перехода в каталоги и из них.

c:>pushd windows c:\Windows>popd c:\

person David Owens    schedule 06.04.2009
comment
Пользовался этим, но переключить не получится. - person skiphoppy; 07.04.2009

PowerShell работает достаточно хорошо, когда вы выполняете свои задачи в PowerShell. Например, когда вы хотите возиться с приложениями .NET и файлами Windows. Он отлично подходит для сценариев, так как синтаксис намного приятнее, чем в Bash...

Но когда вы хотите работать с некоторыми типичными UNIX-приложениями, вы можете легко попасть в беду, когда PowerShell преобразует все ваши окончания строк LF в CRLF (и даже не думайте о конвейерной передаче двоичных файлов).

Просто мой опыт.

person Rene Saarsoo    schedule 06.04.2009

Тогда есть PowerShell! Не пробовал, но слышал много хорошего о нем.

person Deniz Dogan    schedule 06.04.2009

Я использую сигвин. Это реализация posix для Windows. Таким образом, вы можете запускать unix-подобные программы в Windows. Терминалом по умолчанию является bash, который намного более продвинут, чем Windows cmd.

person Roberto Prado    schedule 05.01.2010
comment
Я тоже использую Cygwin, как я уже отмечал в своем первоначальном вопросе. ;) Но он не соответствует всем требованиям расширенного cmd.exe, хотя, безусловно, превосходит его. Просто иногда он уступает оригинальной низшей оболочке Windows. - person skiphoppy; 06.01.2010