Есть ли командная строка Windows с умными bash-like автозаполнениями / историей команд?

21

Недавно я начал использовать bash и обнаружил некоторые действительно замечательные функции (не обязательно из коробки, но их можно настроить):

  • Стрелки вверх / вниз поддерживают частичное завершение: введите «git», нажмите стрелку ВВЕРХ, и вы сможете просмотреть последние команды, начинающиеся с «git» (даже в предыдущих сессиях!)
  • Ctrl-R будет искать в вашей истории команд (по некоторым причинам называется reversed-i-search)
  • Я уверен, что многое, многое другое я не знаю.

Есть хорошая альтернатива cmd.exe для Windows, которая поддерживает такие функции? Я просмотрел самые популярные ответы на этот вопрос , но не нашел, поддерживает ли какая-либо из популярных альтернатив.

ripper234
источник
2
Вы когда-нибудь пробовали F7 в командной строке?
Уильям Хилсум
Я не. И первым результатом Google (с 2005 года не меньше!) Является Ужас кодирования! codinghorror.com/blog/2005/07/stupid-command-prompt-tricks.html Теперь просто ответьте на другую часть моего вопроса, и я буду еще более взволнован.
ripper234
1
К сожалению, пользователи Windows обычно используют то, что поставляется с системой, и нет популярной замены cmd.exe. Cygwin широко используется в качестве «эмулятора» Linux для Windows, вы можете попробовать. @William: приятно, что не знал, но ты когда-нибудь пробовал bash ? Bash запоминает команды старых сессий, а не только текущую сессию. А также фильтрует результаты как состояния ripper234, не говоря уже о преобразовании ссылок в действительные URL-адреса, прокрутке с помощью мыши на терминальных приложениях и длинном списке ... И, кстати, почему вы все еще не можете изменить размер окна командной строки по горизонтали? Это всегда будет меня озадачивать ...
m0skit0
Две популярные cmdзамены обсуждаются как ниже (от paradroidи до RedGrittyBrick), так и в ответах, гиперссылка на которые приведена выше, а ваш последний вопрос основан на явно неверной предпосылке. Я просто использовал мышь для горизонтального изменения размера окна консоли.
JdeBP

Ответы:

22

Загрузите и установите консоль Powershell 2.0 (если вы используете Windows 7, она уже установлена).

Он поддерживает все устаревшие команды, а также псевдонимы, макросы и многое другое ...

Вот несколько основных советов .

мощности оболочки диалог

get-history: Отображает список ранее введенных команд.

invoke-history 35:Выполняет команду № 35 в списке истории

`: Нажмите клавишу обратного апострофа, чтобы вставить разрыв строки или как> escape-символ, чтобы сделать буквальный символ. Вы также можете разбить строку на символе (|).

Alt+ Пробел + E: отображение контекстного меню редактирования с параметрами « Отметить», «Копировать», «Вставить», «Выбрать все», «Прокрутка» и «Найти» . Затем можно нажать « KОтметить», « YКопировать», « PВставить», « SВыделить все», Lпрокрутить экранный буфер или Fвыполнить поиск текста в экранном буфере. Чтобы скопировать экранный буфер в буфер обмена, нажмите Alt+ пробел + E+, Sа затем нажмите Alt+ пробел + E+ Y.

Alt+F7 : Очищает историю команд.

Ctrl+ C: Выход из подпроцесса или прекращение выполнения.

Ctrl+ End: Удалить все символы в строке после курсора.

Ctrl+ Left Arrow|| Ctrl+ Right Arrow: Перемещаться влево или вправо по одному слову за раз.

Ctrl+ S: Пауза || возобновить отображение вывода.

Esc Очистить текущую строку.

F1Перемещает курсор на один символ вправо в командной строке. В конце строки вставляет один символ из текста вашей последней команды.

F2 Создает новую командную строку, копируя вашу последнюю командную строку до введенного вами символа.

F3 Завершает командную строку содержимым вашей последней командной строки, начиная с текущей позиции курсора и заканчивая концом строки.

F4 Удаляет символы из текущей командной строки, начиная с текущей позиции курсора и заканчивая вводимым символом.

F5 Сканирует в обратном направлении историю вашей команды.

F7: Аналогично get-history. Отображает всплывающее окно с вашей историей команд и позволяет вам выбрать команду. Используйте клавиши со стрелками для прокрутки списка. Нажмите, Enterчтобы выбрать команду для запуска, или нажмите, Right arrowчтобы поместить текст в командную строку.

F8 Использует текст, который вы ввели для сканирования в обратном направлении в истории команд для команд, которые соответствуют тексту, который вы уже ввели в командной строке.

F9Запускает определенную пронумерованную команду из вашей истории команд. Номера команд отображаются при нажатии F7или get-history.

Page Up/ Page Down: Получает первую / последнюю команду в истории команд.

Щелчок правой кнопкой мыши Если QuickEdit отключен, отображается контекстное меню редактирования с параметрами «Отметить», «Копировать», «Вставить», «Выбрать все», «Прокрутка» и «Найти». Чтобы скопировать экранный буфер в буфер обмена, щелкните правой кнопкой мыши, выберите «Выбрать» и нажмите клавишу «Ввод».

Tab/ Shift+ Tab: Нажмите клавишу Tab или Shift + Tab, чтобы получить доступ к функции расширения вкладки, которая включает автозаполнение папки или имени файла.

surfasb
источник
Поддерживает ли частичный поиск истории?
ripper234
1
Да, введите строку, которую вы хотите найти, и нажмите F8.
Surfasb
Это очень полный обзор элементов управления клавиатуры PowerShell.
парадроид
Позже я соскребу список модулей Powershell. , ,
Surfasb
1
@surfasb: Вы должны включить PowerTab, так как это актуально для этого ответа. Вкладка с ним похожа на IntelliSense.
парадроид
11

Вам не нужно заменять командную строку! В Windows многие из этих функций встроены в командную строку, например:

  • История команд: F7иF9

  • Добавляйте по 1 букве за раз от предыдущей команды: F1

  • Автозаполнение каталогов и имен файлов: Tab

Есть еще несколько хитростей, но вам нужно будет заглянуть дальше в Google, так как я не смог найти веб-сайт с полным списком.

Keltari
источник
11

Clink расширяет командную строку Windows и добавляет следующие функции

  • Мощное Bash-подобное редактирование строк из библиотеки Readline GNU
  • Превосходное завершение пути (TAB)
  • Вставить из буфера обмена (Ctrl-V)
  • Поддержка завершения исполняемых файлов / команд и переменных среды
  • Отменить / Повторить (Ctrl-_ или Ctrl-X, Ctrl-U) Улучшенная история командной строки. Сохраняется через сеансы
  • Доступный для поиска (Ctrl-R и Ctrl-S). Расширение истории (например, !!,! И! $). Завершение сценария с использованием Lua.
thegreendroid
источник
Отлично. Это делает cmd.exe намного более полезным.
бета,
5

Вин-Баш ?

Автономный bash для Windows

win-bash - это порт Windows известного GNU Bash (см. домашнюю страницу GNU Bash).

В отличие от других портов bash для окон (например, cygwin bash), win-bash не требует специальной среды или библиотек DLL. Есть только один двоичный файл и все.

Я не уверен, насколько это функционально и надежно.


Также есть команда take в jpsoftware, но, к сожалению, это было упомянуто в другом вопросе , который вы упомянули, так что, вероятно, не делает то, что вы хотите.

RedGrittyBrick
источник
На самом деле, Take Command делает то, что хочет xe. Он имеет глобальную историю команд, которую можно запомнить, даже когда не запущен ни один интерпретатор команд. Имеет фильтрацию и редактирование списка истории . Я думаю, что «лучшие ответы» не простираются, чтобы ответить # 5. ☺
JdeBP
@JdeBP - Команда Take занимает примерно # 12 в списке.
ripper234
SuperUser перечисляет это как пятый ответ при просмотре здесь.
JdeBP
1
Вы можете сортировать ответы по «активным», «самым старым» или «голосам». «Голосами» по умолчанию и SuperUser затем, кажется, рандомизирует ответы равными голосами - я считаю, что обновление страницы меняет порядок ..
RedGrittyBrick
1
@ ripper234: О чем ты говоришь? Win-Bash был обновлен в марте прошлого года.
парадроид
3

Команда Take Command уже упоминалась, но TCC / LE (подмножество) - это бесплатная CMD замена с гораздо большим количеством функций, команд и настраиваемостью. Это дает некоторый способ создания подобного bash опыта, когда речь идет о сочетаниях клавиш, псевдонимах и окраске.

Это может сделать несколько вещей, которые вы упомянули, в том числе частичное завершение истории со Up/Downстрелками. CTRL-Bповторяет путь из предыдущей команды. Попробуйте набрать, optionчтобы увидеть все варианты.

TCC/LEтакже очень хорошо работает в Console2 .

Кроме того, вы можете, конечно, использовать Bash на Windows с Cygwin .

Paradroid
источник
1

Расширение командной строки PyCmd с открытым исходным кодом выполняет большинство ваших задач .

Его целью является эмуляция нескольких мощных функций оболочек UNIX (достойное завершение табуляции, постоянная история и т. Д.).

образ

harrymc
источник