Recientemente me actualicé al nuevo SDK de Android y noté algo muy molesto. Parece que ya no es posible usar el historial de comandos en el shell. ¿Estás notando lo mismo? El shell de Android me parece horrible, pero al menos, en el último SDK, tenía el historial de comandos. Ahora, parece que al presionar la flecha hacia arriba/hacia abajo, aparecen algunos códigos escritos en el indicador (algo así como^[[A,^[[B, etc. ...]). Traté de leer un poco, pero encontré muy pocos preguntando esto a cero respuestas. ¿Alguna idea de por qué sucede esto y cómo resolver esto?¿Cómo habilitar el historial del shell adb de Android con las teclas arriba/abajo en Linux?
Respuesta
Si Ctrl - p todavía le da entradas del historial anteriores, entonces es posible que las teclas de flecha se convirtieron no unido por alguna razón. Prueba esto:
bind '"\e[A": previous-history'
bind '"\e[B": next-history'
Si eso hace que las teclas de flecha trabajo, puede que sea persistente mediante la adición de estas dos líneas a /etc/inputrc
o ~/.inputrc
:
"\e[A": previous-history
"\e[B": next-history
La última vez que lo usé, el shell de Android no usó readline, pero no recuerdo haber proporcionado ninguna forma de edición de línea de comandos, incluidas las flechas para el historial. – Gilles
@Gilles: No lo he usado en bastante tiempo, pero solo estaba basando mi respuesta en lo que dijo el OP. –
Ctrl-P me da el historial pero no en el shell de Android. Pero, ¿dónde tengo que probar el comando bind? En el shell de Linux? Intenté allí y hace que sea imposible usar las flechas para avanzar en el historial. Si intento en el shell de Android, el enlace del comando parece no existir. ¿Alguna idea? –
puede ejecutar la cáscara interior rlwrap:
rlwrap adb shell
Prefiero ejecutarlo en un buffer de shell Emacs, lo recomiendo si no eres alérgico a Emacs. Emacs también es bueno para ejecutar adb logcat
: obtienes un historial de búsqueda y los mensajes se actualizan a medida que aparecen, y puedes poner fácilmente patrones de color interesantes (M-x highlight-regexp
y amigos).
Intenté el comando que me diste, pero no veo cambios. El caparazón es exactamente idéntico. Tal vez hice algo mal? ¡Gracias! –
@Luca: obtengo una edición de línea de comandos básica con adb y el emulador del SDK de Gingerbread en Linux, y 'rlwrap' da una edición de lectura. Parece recordar que 'rlwrap' no funciona con una versión previa de SDK, pero no recuerdo qué versión. – Gilles
No puedo entender ... Lo intenté de nuevo, pero realmente no veo cambios. –
Si habla de dispositivo real (no emulador), debe probar algunos firmwares no oficiales, como Cyanogenmod - incluye herramientas binarias mucho mejores, como shell mucho más funcional, un conjunto sano de herramientas regulares de UNIX , servidor ssh, etc.
Si está hablando de emulador, puede extraer estos binarios del firmware e insertarlos en el emulador como está (utilizando una imagen de tarjeta de memoria).
Estoy hablando de un dispositivo real y este problema no está relacionado con el firmware. Comenzó cuando actualicé al último SDK 2.3 en el mismo dispositivo. –
De todos modos, acabo de comprobar y también está sucediendo en el emulador. –
Ok, lo entiendo. Bueno, al menos puedes intentar conectarte usando ssh (es decir, el servidor dropbear ssh en tu dispositivo y el cliente ssh desde tu caja de desarrollo) como una solución alternativa. – GreyCat
- 1. android adb shell permission denied
- 2. Cómo traceroute en adb shell?
- 3. Eliminar el historial del terminal en Linux
- 4. Finalización de pestañas en adb shell
- 5. Android - ¿Cómo habilitar CheckJni para el desarrollo de NDK?
- 6. ¿Cómo borro el historial de comandos en el shell mongodb?
- 7. Historial de comandos en el modo de shell de emacs
- 8. Habilitar el historial local en NetBeans
- 9. ¿Cómo matar aplicaciones nativas de 'adb shell'?
- 10. Conexión de un teléfono Android con ADB
- 11. ¿Cómo examinar SharedPreferences desde adb shell?
- 12. Android adb shell am startservice: Error no encontrado
- 13. ¿Cómo puedo habilitar el registro del historial de tareas del servidor de Windows Server?
- 14. scripts shell/batch para dirigir comandos al shell adb
- 15. Cómo saber si el servicio se está ejecutando utilizando adb shell en android
- 16. Cómo habilitar ADBD para escuchar a un puerto en el arranque de Android?
- 17. ¿Cómo abrir Android adb desde el símbolo del sistema?
- 18. Cómo instalar u obtener acceso a sqlite3 desde adb shell
- 19. cómo obtener el historial del navegador en android?
- 20. ¿Cómo obtener pid de la aplicación de Android sin usar el shell adb?
- 21. tamaño del archivo de shell de linux
- 22. Android leer el historial del navegador
- 23. cómo cambio la zona horaria usando adb
- 24. ¿Cuál es el propósito de Herramientas-> Android-> Habilitar el servicio ADB?
- 25. cómo reemplazar el comportamiento de las teclas <ENTER> del teclado virtual en Android
- 26. ¿Cómo habilitar la depuración dinámica en el kernel de Linux?
- 27. ¿Qué significa Asset Allocations en adb shell dumpsys meminfo
- 28. colorea las líneas de logcat en Linux [android]
- 29. ¿Cómo le digo a Zsh que escriba el historial actual del shell en mi archivo de historial?
- 30. Cómo conectar dispositivos Android con adb bajo ubuntu
Afortunadamente ya no es el caso en Android 7 (y probablemente antes). –