Czy istnieje równoważne naciśnięcie klawisza w celu wyjścia z wiersza polecenia w systemie Windows (uruchomionego przez Start-> Uruchom: cmd) do trybu gotowości bash Ctrl- daby uniknąć konieczności pisania, exit
aby opuścić powłokę?
Czy istnieje równoważne naciśnięcie klawisza w celu wyjścia z wiersza polecenia w systemie Windows (uruchomionego przez Start-> Uruchom: cmd) do trybu gotowości bash Ctrl- daby uniknąć konieczności pisania, exit
aby opuścić powłokę?
Odpowiedzi:
Nie. CtrlDNa * nix generuje EOF, który różne powłoki interpretują jako działające exit
. Odpowiednikiem EOF w systemie Windows jest CtrlZ, ale cmd.exe nie interpretuje tego specjalnie po wpisaniu w wierszu polecenia.
bash
i in. są rzeczywiście robi to TCC / LE alias autoexecuting klawiatury, takie jak ten , w którym interpreter poleceń (nie konsola) rozpoznaje zwykły kombinację klawiszy ALT+F4
podczas edycji wiersza i wykonuje wbudowanego exit
polecenia w odpowiedzi.
stty -a
zwraca icanon
(tj. Nie -icanon
). Czy Twój komentarz jest With most modern shells, the terminal is not in canonical input mode when the shell is interactively accepting input
naprawdę poprawny statystycznie w tym momencie?
Alt- Space. Potem C.
Tak, jest trochę wolniejszy niż Ctrl- D. Ale to jest odpowiedź na dokładnie to, o co prosisz: wbudowaną równoważną sekwencję klawiszy, która pozwala wyjść z monitu bez konieczności wpisywania exit
polecenia. Żadne oprogramowanie innych firm nie jest potrzebne.
To może nie działać absolutnie identycznie jak bash: bash wyloguje się tylko z pustego wiersza poleceń. W systemie Windows może to zamknąć okno, nawet jeśli wpisałeś już w nim częściowe polecenie.
Możesz użyć DOSKEY do tworzenia makr w CMD.exe.
Aby utworzyć typ makra:
DOSKEY [macroname]=[command(s)]
W ten sposób możesz powiązać klucz z innym poleceniem.
Przykład:
DOSKEY e=exit
będzie wiązać e
się z exit
poleceniem, więc kiedy wpiszesz an e
w pytaniu, będzie to wyglądało tak, jakbyś wprowadziłexit
Nie jestem pewien, czy możesz użyć CTRL- $nkombinacji jako makr
cmd
po prostu interpretuje je jako normalne polecenia, czekające na Enter
naciśnięcie, więc nie ma żadnej korzyści z aliasingu Ctrl-Z w porównaniu z just e
lub x
.
Istnieje teraz projekt open source o nazwie clink na http://code.google.com/p/clink/ (edycja: przeniesiono do http://mridgers.github.io/clink/ ) - zapewnia on funkcjonalność uniksowego readline do wiersz polecenia systemu Windows.
Obsługuje większość funkcji, w tym edycję wiersza poleceń, wyszukiwanie historii, uzupełnianie tabulatorów wraz ze skryptami uzupełniania itp. Warto sprawdzić, dzięki czemu cmd jest znacznie mniej ssący. ;]
Ten sam efekt można uzyskać za pomocą tego fragmentu AutoHotKey :
; Close Command Prompt when pressing Ctrl+D
#IfWinActive, Command Prompt$
^d::
; First send ESC, in case we're in select mode.
Send {Esc}{Esc}exit{Enter}
#IfWinActive
Ctrl+D
jest w rzeczywistości zwykłym znakiem, a nie znakiem specjalnym EOF. Powłoki łączą sięCtrl+D
z działaniem GNU Readline lub ZLE, która kończy działanie (ale tylko wtedy, gdy bufor edycji linii jest pusty), więc zachowanie jest w większości takie samo. Ale nieCtrl+D
jest EOF z nowoczesnymi pociskami, tylko zwykłą postacią kontrolną. Zachowanie, gdy bufor edycji nie jest pusty, różni się znacznie od tego, co dzieje się ze znakiem specjalnym EOF.