11
votes

Comment activer Android Adb Shell Historique avec les clés UP / DOWN sous Linux?

J'ai récemment mis à niveau vers le nouveau SDK Android et j'ai remarqué quelque chose de très très dérangeant. Il semble qu'il ne soit plus possible d'utiliser l'historique de la commande dans la coquille. Vous remarquez de la même chose? La coquille Android me semble horrible, mais au moins, dans le dernier SDK, j'ai eu l'historique de la commande. Maintenant, il semble que vous appuyiez sur la flèche haut / bas, entraînant des codes écrits sur l'invite (quelque chose comme ^ [[A, ^ [[B etc.). J'ai essayé de lire un peu autour, mais j'ai trouvé très peu demandant cela une réponse zéro. N'importe quelle idée pourquoi cela se produit et comment résoudre ce problème?


1 commentaires

Heureusement, pas le cas dans Android 7 (et probablement plus tôt).


3 Réponses :


0
votes

Si Ctrl - p vous donne toujours des entrées d'histoire antérieures, alors il est possible que les touches fléchées soient non liées pour une raison quelconque. Essayez ceci: xxx

Si cela fait fonctionner les touches fléchées, vous pouvez le rendre persistant en ajoutant ces deux lignes à / etc / istrc ou ~ / .Inputtrc : xxx


3 commentaires

Enfin, je l'ai utilisé que la coquille Android n'utilisait pas LectureLine, mais je ne me souviens donc pas de fournir une forme d'édition de ligne de commande, y compris des flèches pour l'histoire.


@Gilles: Je ne l'ai pas utilisé depuis un moment moi-même, mais je basais juste ma réponse sur ce que l'OP a dit.


Ctrl-P me donne l'histoire mais pas dans la coquille Android. Mais, où dois-je essayer la commande Bind? Dans la coquille Linux? J'ai essayé là-bas et il est impossible d'utiliser les flèches pour vous déplacer dans l'histoire. Si j'essaie dans la coquille Android, la commande ne semble pas exister. Une idée?



3
votes

Vous pouvez exécuter la coquille à l'intérieur rlwrap : xxx

Je préfère l'exécuter dans un tampon d'Emacs Shell moi-même, je le recommande si vous n'êtes pas allergique aux EMACS. Emacs est également agréable pour exécuter adb logcat : vous obtenez une historique interrogeable et les messages sont mis à jour au fur et à mesure de leur arrivée, et vous pouvez facilement mettre des motifs intéressants en couleur ( MX Highlight-REGEXP et amis).


3 commentaires

J'ai essayé la commande que vous m'avez donnée mais je ne vois aucun changement. La coquille est exactement identique. Peut-être que j'ai fait quelque chose de mal? Merci!


@LUCA: J'obtiens une édition de ligne de commande de base avec adb et l'émulateur du SDK en pain d'épice sous Linux, et rlwrap donne une édition LIVELLINE. Je semble vous rappeler rlwrap ne fonctionne pas avec une version de SDK précédente, mais je ne me souviens pas de quelle version.


Je ne peux pas comprendre ... je viens de l'essayer encore mais je ne vois vraiment aucun changement.



1
votes

Si vous parlez de périphérique réel (pas d'émulateur), vous devriez essayer des firmwares non officielles, telles que cyanogenmod - Il inclut beaucoup de meilleurs outils binaires, tels que beaucoup plus de shell d'espoir, un ensemble sain d'outils UNIX réguliers, SSH Server, etc.

Si vous parlez d'émulateur, vous pouvez extraire ces fichiers binaires des firmwares et la pousser à l'émulateur tel quel (en utilisant une image de carte mémoire).


4 commentaires

Je parle d'un appareil réel et ce problème n'est pas lié au micrologiciel. Cela a commencé lorsque j'ai mis à niveau vers le dernier SDK 2.3 sur le même appareil.


Quoi qu'il en soit, je viens de vérifier et cela se produit également sur l'émulateur.


OK, je comprends. Eh bien, au moins vous pouvez essayer de connecter à l'aide de SSH (I.E. Dropbear SSH Server sur votre périphérique et votre client SSH à partir de votre boîte de développement) comme solution de contournement.


Je ne sais pas si les avantages de cette solution de contournement peuvent justifier l'effort ... Je flase le périphérique très souvent ... est-il simple de porter le serveur à Android? Comment puis-je le recompiler? Merci!