Kiedy wchodzę adb shell
na swoje urządzenie (z pulpitu systemu Windows) i uruchamiam tam jakieś polecenie, czasami chcę je zakończyć. Standardowym sposobem uniksowym jest Ctrl+Ckombinacja klawiszy. Jednak kiedy to robię, całość się adb shell
kończy.
Jak mogę zakończyć tylko bieżący program wewnątrz powłoki, a nie samą powłokę?
^J
.Odpowiedzi:
Znalazłem sposób obejścia tego problemu (przynajmniej dla zrootowanego telefonu). Jeśli telefon jest zrootowany,
busybox
najprawdopodobniej jest zainstalowany.stty
jest częścią busybox.Przedefiniowuje Ctrl+, Xaby działał jako polecenie przerwania, np. To, co poprzednio Ctrl+ C.
źródło
Alt- NumPad 3+ Enterdziała dla mnie. Alt- NumPad 0- NumPad 3+ Enterdziała również i wyświetla „^ C”.
źródło
byłem w stanie zatrzymać
top
proces i nadal pozostać w powłoce, wpisując następujące w tej kolejności:C
CTRL+Z
CTRL+M
jeśli nie wpisałbym wszystkich 3 tych kombinacji, nie zatrzymałoby się to i musiałbym CTRL+, Caby wyjść z powłoki. Znalazłem to, próbując różnych kombinacji klawiszy i znalazłem to przez przypadek. YMMV
źródło
vmstat
nie próbowałemtop
). Co ciekawe, kiedy naciskamCtrl-Z
, wygląda na to, że nic się nie dzieje, ale w rzeczywistości moje dane wejściowe są przekierowywane bezpośrednio do powłoki Windows, a nie do adb. Dane wyjściowe adb (z vmstat) ciągle pojawiają się w oknie powłoki, ale mógłbym wpisaćcd C:
(na przykład) i zadziałałoby w powłoce systemu Windows. Gdybym wtedy nacisnął,Ctrl-C
wyjście zatrzymałoby się i zobaczyłbym za sceną polecenie, które wpisałem do powłoki Windows. Bardzo dziwne!Ctrl+ \następnie Enterzwykle działa dobrze.
Spowoduje to wysłanie sygnału SIGQUIT, który może nie być odpowiedni dla serwera (na przykład zrzuca plik rdzenia), ale nie sądzę, że jest to problem z używaniem go na telefonie / tablecie z Androidem (który domyślnie nie zrzuca pliku rdzenia ). Proste rozwiązanie, które działa w większości przypadków.
źródło
W systemie Windows możesz po prostu wpisać [Alt] + [3] za pomocą klawiatury numerycznej (nie zapomnij później nacisnąć Enter).
To wysyła [Ctrl] + [c] do powłoki, tym samym kończąc bieżące polecenie:
Zauważ, że [Alt] + [3] wytwarza ASCII-Char ♥ w Windows, który jest równy bajtowi ETX.
Możesz także nacisnąć [Alt] + [0] - [3] (przytrzymaj klawisz Alt, jednocześnie naciskając [0] i [3] na klawiaturze numerycznej), jeśli nie poruszasz okienkiem, aby wyświetlić serce;)
źródło