Czy istnieje wiersz poleceń systemu Windows z inteligentnymi funkcjami autouzupełniania / historii poleceń podobnymi do bash?

21

Niedawno zacząłem używać bash i odkryłem kilka naprawdę wspaniałych funkcji (niekoniecznie wychodzących z pudełka, ale można je skonfigurować):

  • Strzałki w górę / w dół obsługują częściowe uzupełnianie: wpisz „git”, naciśnij strzałkę W GÓRĘ, a przejdziesz do ostatnich poleceń rozpoczynających się od „git” (nawet w poprzednich sesjach!)
  • Ctrl-R przeszuka Twoją historię poleceń (z jakiegoś powodu nazywaną reverse-i-search)
  • Wiele, wiele innych nie jestem świadom, jestem tego pewien.

Czy istnieje dobra alternatywa dla cmd.exe dla systemu Windows, która obsługuje takie funkcje? Przeglądałem najlepsze odpowiedzi na to pytanie , ale nie znalazłem, czy którakolwiek z popularnych alternatyw to obsługuje.

ripper234
źródło
2
Czy próbowałeś kiedyś F7 w wierszu polecenia?
William Hilsum
Nie mam. A pierwszym wynikiem Google (od 2005 roku nie mniej!) Jest Coding Horror! codinghorror.com/blog/2005/07/stupid-command-prompt-tricks.html Teraz odpowiedz tylko na drugą część mojego pytania, a będę jeszcze bardziej zachwycony.
ripper234
1
Niestety użytkownicy systemu Windows zazwyczaj korzystają z tego, co system ma, i nie ma popularnej wymiany cmd.exe. Cygwin jest szeroko stosowany jako „emulator” systemu Linux dla systemu Windows, możesz spróbować. @William: nice nie wiedział o tym, ale czy kiedykolwiek próbowałeś bash ? Bash pamięta polecenia starych sesji, nie tylko bieżącej. A także filtruje wyniki według stanów ripper234, nie mówiąc już o konwertowaniu linków na prawidłowe adresy URL, przewijaniu myszką w aplikacjach terminalowych i długiej liście ... A przy okazji, dlaczego nadal nie możesz zmienić rozmiaru okna wiersza poleceń w poziomie? To zawsze będzie dla mnie zagadką ...
m0skit0
Dwa popularne cmdzamienniki są omówione zarówno poniżej (przez paradroidi RedGrittyBrick), jak i w odpowiedziach odsyłających do powyższych, a twoje ostatnie pytanie opiera się na wyraźnie niepoprawnej przesłance. Właśnie użyłem myszy, aby samodzielnie zmienić rozmiar okna konsoli.
JdeBP,

Odpowiedzi:

22

Pobierz i zainstaluj konsolę Powershell 2.0 (jeśli używasz systemu Windows 7, jest już zainstalowany).

Obsługuje wszystkie starsze polecenia, a także alias, makra i więcej ...

Oto kilka podstawowych wskazówek .

okno dialogowe powłoki powłoki

get-history: Wyświetla listę wcześniej wprowadzonych poleceń.

invoke-history 35:Wykonuje polecenie nr 35 na liście historii pobierania

`: Naciśnij klawisz apostrofu wstecz, aby wstawić znak podziału wiersza lub jako znak zmiany znaczenia, aby utworzyć literalny znak. Możesz także przerwać linię na znaku potoku (|).

Alt+ Spacja + E: Wyświetla menu skrótów edycji z opcjami Zaznacz, Kopiuj, Wklej, Zaznacz wszystko, Przewiń i Znajdź . Następnie można nacisnąć klawisz KMark, YKopiuj, PWklej, SSelect All, Laby przewinąć bufor ekranu lub Fwyszukać tekst w buforze ekranu. Aby skopiować bufor ekranu do Schowka, naciśnij Alt+ Spacja + E+, Sa następnie naciśnij Alt+ Spacja + E+ Y.

Alt+ F7: Czyści historię poleceń.

Ctrl+ C: Wyjdź z wiersza podrzędnego lub zakończ wykonywanie.

Ctrl+ End: Usuń wszystkie znaki w linii za kursorem.

Ctrl+ Left Arrow|| Ctrl+ Right Arrow: Poruszaj się o jedno słowo w lewo lub w prawo.

Ctrl+ S: Pauza || wznawia wyświetlanie wyniku.

Esc Wyczyść bieżącą linię.

F1Przesuwa kursor o jeden znak w prawo w wierszu poleceń. Na końcu wiersza wstawia jeden znak z tekstu ostatniego polecenia.

F2 Tworzy nowy wiersz polecenia, kopiując ostatni wiersz polecenia do wpisanego znaku.

F3 Uzupełnia wiersz poleceń treścią z ostatniego wiersza poleceń, zaczynając od bieżącej pozycji kursora do końca wiersza.

F4 Usuwa znaki z bieżącego wiersza poleceń, zaczynając od bieżącej pozycji kursora aż do wpisanego znaku.

F5 Skanuje wstecz w historii poleceń.

F7: Podobne do get-history. Wyświetla wyskakujące okno z historią poleceń i umożliwia wybranie polecenia. Użyj klawiszy strzałek, aby przewijać listę. Naciśnij, Enteraby wybrać polecenie do uruchomienia, lub naciśnij, Right arrowaby umieścić tekst w wierszu polecenia.

F8 Używa wprowadzonego tekstu do skanowania wstecz w historii poleceń w poszukiwaniu poleceń pasujących do tekstu wpisanego do tej pory w wierszu poleceń.

F9Uruchamia określone polecenie numerowane z historii poleceń. Numery poleceń są wyświetlane po naciśnięciu F7lub get-history.

Page Up/ Page Down: Pobiera pierwsze / ostatnie polecenie w historii poleceń.

Kliknij prawym przyciskiem myszy, jeśli QuickEdit jest wyłączony, wyświetla menu skrótów edycji z opcjami Oznacz, Kopiuj, Wklej, Zaznacz wszystko, Przewiń i Znajdź. Aby skopiować bufor ekranu do Schowka, kliknij prawym przyciskiem myszy, wybierz Wybierz, a następnie naciśnij Enter.

Tab/ Shift+ Tab: Naciśnij klawisz Tab lub naciśnij Shift + Tab, aby uzyskać dostęp do funkcji rozwijania tabulatorów, która obejmuje autouzupełnianie folderów lub plików.

surfasb
źródło
Czy obsługuje częściowe wyszukiwanie historii?
ripper234
1
Tak, wpisz ciąg, który chcesz wyszukać, i naciśnij F8.
surfasb
To bardzo wyczerpujący przegląd kontrolek klawiatury PowerShell.
paradroid
Zrobię później listę modułów PowerShell. . .
surfasb
1
@surfasb: Powinieneś dołączyć PowerTab, ponieważ jest to istotne dla tej odpowiedzi. Tabulowanie z nim przypomina IntelliSense.
paradroid
11

Nie musisz zastępować wiersza polecenia! System Windows ma wiele z tych funkcji wbudowanych w wiersz polecenia, takich jak:

  • Historia poleceń: F7iF9

  • Dodaj 1 literę z poprzedniego polecenia: F1

  • Automatyczne uzupełnianie nazw katalogów i plików: Tab

Jest jeszcze więcej sztuczek, ale musisz spojrzeć dalej w Google, ponieważ nie mogłem znaleźć strony z pełną listą.

Keltari
źródło
11

Clink rozszerza wiersz poleceń systemu Windows i dodaje następujące funkcje

  • Potężna edycja linii podobna do Bash z biblioteki Readline GNU
  • Doskonałe ukończenie ścieżki (TAB)
  • Wklej ze schowka (Ctrl-V)
  • Obsługa uzupełniania plików wykonywalnych / poleceń i zmiennych środowiskowych
  • Cofnij / Ponów (Ctrl-_ lub Ctrl-X, Ctrl-U) Poprawiona historia wiersza poleceń. Utrzymuje się między sesjami
  • Przeszukiwalne (Ctrl-R i Ctrl-S). Rozszerzenie historii (np. !!,! I! $). Skryptowe zakończenie przy użyciu Lua.
thegreendroid
źródło
Doskonały. To sprawia, że ​​cmd.exe jest o wiele bardziej przydatny.
beta
5

Win-Bash ?

Autonomiczny bash dla Windows

win-bash to port systemu Windows słynnej bash GNU (patrz strona główna GNU Bash).

W przeciwieństwie do innych portów bash dla Windows (np. Cygwin bash), win-bash nie wymaga specjalnego środowiska ani bibliotek DLL. Jest tylko jeden plik binarny i to wszystko.

Nie jestem pewien, czy jest to funkcjonalne i niezawodne.


Istnieje również jpsoftware na przejąć dowództwo - ale oops, który został wymieniony w drugiej Q pan wspomniał, więc prawdopodobnie nie robić, co chcesz.

RedGrittyBrick
źródło
W rzeczywistości Take Command robi to, czego chce xe. Ma globalną historię poleceń, którą można zapamiętać nawet wtedy, gdy nie jest uruchomiony interpreter poleceń. Posiada filtrowanie i edycję listy historii . Domyślam się, że „najlepsze odpowiedzi” nie rozciągają się na odpowiedź nr 5. ☺
JdeBP
@JdeBP - Przejęcie dowodzenia zajmuje około 12 pozycji na liście.
ripper234
SuperUser wymienia ją jako piątą odpowiedź, gdy jest wyświetlana tutaj.
JdeBP,
1
Możesz sortować odpowiedzi według „aktywnych”, „najstarszych” lub „głosów”. Przez „głosy” jest domyślnie, a SuperUser wydaje się losować odpowiedzi z równymi głosami - Uważam, że odświeżenie strony zmienia kolejność.
RedGrittyBrick
1
@ ripper234: O czym ty mówisz? Win-Bash został zaktualizowany w marcu ubiegłego roku.
paradroid
3

Przejęcie Command już zostało wspomniane, ale TCC / LE (podzbiór) jest darmowym CMD zamiennikiem o wiele więcej funkcji, poleceń i możliwości dostosowania. Daje to pewien efekt bash, jeśli chodzi o skróty klawiaturowe, aliasy i kolory.

Może zrobić kilka rzeczy, o których wspomniałeś, w tym częściowe uzupełnienie historii za pomocą Up/Downstrzałek. CTRL-Bpowtarza ścieżkę z poprzedniego polecenia. Spróbuj wpisać optioncałe mnóstwo opcji.

TCC/LEdziała również bardzo ładnie w Console2 .

Ponadto możesz oczywiście korzystać z bash w systemie Windows za pomocą Cygwin .

paradroid
źródło
1

Rozszerzenie wiersza polecenia PyCmd typu open source robi większość tego, o co prosisz.

Jego celem jest emulowanie kilku funkcji zasilania powłok UNIX (przyzwoite uzupełnianie tabulatorów, trwała historia itp.).

wizerunek

harrymc
źródło