Как я могу сделать так, чтобы `adb shell` имел правильный размер терминала?

Таким образом, adb shell имеет досадную ошибку, из-за которой не осознается, что ваше графическое терминальное приложение имеет размер более 80x24, поэтому при попытке запустить любой вид полноэкранных консольных приложений, таких как vi или emacs (или любое приложение ncurses) ), он не занимает весь экран, только небольшую его часть. Есть ли способ это легко исправить?

6
задан 27 December 2013 в 17:44

4 ответа

ОБНОВЛЕНИЕ (февраль 2015 г.): теперь вы можете просто использовать «Фаблет-оболочку». Больше не нужно возиться с самодельными скриптами. Тем не менее, если вы хотите, они все равно должны работать.


Я обычно использую ssh вместо adb. Он правильно настраивает терминал (помимо настройки многих других вещей лучше, чем adb).

Поместите это в ~ / .bash_aliases (на главном компьютере, а не на устройстве)

alias sd='adb shell start ssh; \
    adb forward tcp:2222 tcp:22; \
    ssh-keygen -f ~/.ssh/known_hosts -R [localhost]:2222; \
    ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
        phablet@localhost -p 2222'

и закройте / снова откройте окно терминала.

Теперь вы можете просто выполнить «sd» (сокращение от ssh device) и войти в систему как пользователь phablet на телефоне, с правильно настроенным терминалом и правильно настроенной пользовательской средой.

0
ответ дан 27 December 2013 в 17:44

Это не ошибка в терминале - настройка оболочки по умолчанию на Android просто не настроена для обработки изменения размеров окна.

После изменения размера фактического окна терминала, используйте команду resize - затем используйте полноэкранную программу.

0
ответ дан 27 December 2013 в 17:44

Опираясь на ответ Мзанетти, приведенный выше, я расширил его, чтобы иметь пару преимуществ, которыми я сейчас регулярно пользуюсь:

function adbshell {
    adb shell start ssh
    adb forward tcp:2222 tcp:22
    ssh-keygen -f ~/.ssh/known_hosts -R [localhost]:2222
    ssh-copy-id -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
        phablet@localhost -p 2222 2>/dev/null
    scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
        -q -P 2222 -r ~/.bash* ~/.profile* phablet@localhost:/home/phablet
    ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
        phablet@localhost -p 2222
}
  • Он запоминает ваши учетные данные, поэтому вы не можете вам не нужно каждый раз вводить пароль

  • Он копирует вашу конфигурацию bash с хоста на устройство, чтобы вы могли использовать все ваши любимые псевдонимы (и конфигурацию пользовательских подсказок!)

0
ответ дан 27 December 2013 в 17:44

Когда я планирую находиться в {adb shell} какое-то время, я обычно начинаю с

stty columns 132

Я регулярно использую его как на корневых, так и на нерутированные устройства.

Учитывая, что это ручная команда каждый раз, когда вы запускаете оболочку (а не автоматическая, как решение mzanetti/robru), это просто и не требует изменения использования SSH.

0
ответ дан 4 September 2020 в 15:42

Другие вопросы по тегам:

Похожие вопросы: