Чи є командний рядок Windows зі смарт-башовими автозавершеннями / історією команд?


21

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

  • Стрілки вгору / вниз підтримують часткове завершення: введіть "git", натисніть стрілку Вгору, і ви переглянете останні команди, які починаються з "git" (навіть у попередніх сесіях!)
  • Ctrl-R здійснить пошук у вашій історії команд (чомусь називається reversed-i-search)
  • Багато, багато ще я не знаю, я впевнений.

Чи є хороша альтернатива cmd.exe для Windows, яка підтримує такі функції? Я переглянув основні відповіді на це запитання , але не знайшов, чи підтримує якусь із популярних альтернатив.


2
Ви коли-небудь пробували F7 в командному рядку?
Вільям Гілсум

У мене немає. І перший результат Google (з 2005 року не менше!) - кодування жах! codinghorror.com/blog/2005/07/stupid-command-prompt-tricks.html Тепер просто дайте відповідь на іншу частину мого питання, і я буду ще більше вражений.
ripper234

1
На жаль, користувачі Windows зазвичай використовують те, що поставляється із системою, і популярної заміни cmd.exe немає. Cygwin широко використовується як "емулятор" Linux для Windows, ви можете спробувати. @William: приємно цього не знав, але ти коли-небудь пробував баш ? Bash запам'ятовує команди старих сеансів, а не лише поточну сесію. А також фільтрує результати у вигляді ripper234, не кажучи про перетворення посилань у дійсні URL-адреси, прокручування мишкою на термінальних додатках та довгий список ... І btw, чому ви все ще не можете горизонтально змінити розмір вікна командного рядка? Це завжди спантеличить мене ...
m0skit0

Дві популярні cmdзаміни обговорюються як нижче (за paradroidі RedGrittyBrick), так і у відповідях, що мають гіперпосилання на вище, і ваше останнє питання ґрунтується на явно неправильній передумові. Я просто використовував мишу, щоб самому горизонтально змінити розмір вікна консолі.
JdeBP

Відповіді:


22

Завантажте та встановіть консоль Powershell 2.0 (якщо ви використовуєте Windows 7, вона вже встановлена).

Він підтримує всі застарілі команди, а також псевдоніми, макроси та багато іншого ...

Ось кілька основних порад .

power-shell-діалог

get-history: Відображає список раніше введених команд.

invoke-history 35:Виконує команду №35 у списку історії отримання

`: Натисніть клавішу апострофа назад, щоб вставити розрив рядка або як> символ втечі, щоб зробити буквальний символ. Ви також можете перервати лінію на символі pipe (|).

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 вимкнено, відображається ярликове меню редагування з опціями Марк, Копіювати, Вставити, Вибрати все, Прокрутити та Знайти параметри. Щоб скопіювати буфер екрану у буфер обміну, клацніть правою кнопкою миші, виберіть Вибрати та натисніть клавішу Enter.

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


Чи підтримує він частковий пошук історії?
ripper234

1
Так, введіть рядок, який потрібно шукати, і натисніть F8.
surfasb

Це дуже вичерпний огляд елементів управління клавіатурою PowerShell.
парадороїд

Пізніше я сформулюю список обов'язкових модулів Powershell. . .
surfasb

1
@surfasb: Ви повинні включити PowerTab, оскільки це стосується цієї відповіді. Вкладки з ним схожі на IntelliSense.
парадороїд

11

Вам не потрібно замінювати командний рядок! У Windows є багато з цих функцій, вбудованих у командний рядок, таких як:

  • Історія команд: F7іF9

  • Додайте 1 лист одночасно з попередньої команди: F1

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

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


11

Clink розширює командний рядок Windows і додає наступні функції

  • Потужне баш-редагування рядків з бібліотеки Readline GNU
  • Покращене завершення шляху (TAB)
  • Вставити з буфера обміну (Ctrl-V)
  • Підтримка заповнення виконуваних файлів / команд та змінних середовища
  • Скасувати / Повторити (Ctrl-_ або Ctrl-X, Ctrl-U) Покращена історія командного рядка. Зберігається протягом сеансів
  • Пошук (Ctrl-R і Ctrl-S). Розширення історії (наприклад, !!,! І! $). Сценарійне завершення за допомогою Lua.

Ідеально. Це робить cmd.exe набагато кориснішим.
бета

5

Win-Bash ?

Автономний баш для Windows

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

На відміну від інших портів bash для Windows (наприклад, cygwin bash), win-bash не потребує спеціального середовища або DLL. Є лише один бінарний, і все.

Я не впевнений, наскільки це функціонально і надійно.


Існує також команда взяти jpsoftware - але, ой, про що було сказано в іншому згаданому вами Q, тому, імовірно, він не робить те, що ви хочете.


Власне, команда Take Command робить те, що хоче xe. У ньому є глобальна історія команд, яку можна запам’ятати, навіть коли не працює інтерпретатор команд. У ньому є фільтрування та редагування списків історії . Я здогадуюсь, що "топ відповіді" не тягнеться до відповіді №5. ☺
JdeBP

@JdeBP - команда Take Command у списку близько 12.
ripper234

SuperUser перераховує це як п'яту відповідь, коли його переглядають тут.
JdeBP

1
Відповіді можна сортувати за "активними", "найстарішими" або "голосами". За "голосами" за замовчуванням, і SuperUser потім, здається, рандомизує відповіді рівними голосами - я вважаю, що оновлення сторінки змінює порядок ..
RedGrittyBrick,

1
@ ripper234: Про що ти говориш? Win-Bash було оновлено минулого березня.
парадороїд

3

Take Command вже згадувалося, але TCC / LE (підмножина) - це безкоштовна CMD заміна з набагато більшою кількістю функцій, команд та налаштування. Це певним чином спрямовує на приголомшливий досвід, що стосується комбінацій клавіш, псевдонімів та забарвлень.

Він може зробити кілька речей, які ви згадуєте, включаючи часткове заповнення історії Up/Downстрілками. CTRL-Bповторює шлях з попередньої команди. Спробуйте ввести, optionщоб побачити цілу кількість опцій.

TCC/LEтакож дуже добре працює в Console2 .

Крім того, ви можете, звичайно, використовувати bash на Windows за допомогою Cygwin .


1

Розширення командного рядка з відкритим кодом PyCmd робить більшу частину того, що вам потрібно.

Його мета - імітувати декілька силових особливостей оболонок UNIX (гідне заповнення Tab, постійна історія тощо).

зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.