如何使“adb shell”具有正确的终端尺寸?

如何使“adb shell”具有正确的终端尺寸?

因此,adb shell有一个令人讨厌的错误,它没有意识到您的图形终端应用程序大于 80x24,因此当您尝试运行任何类型的全屏控制台应用程序(如 vi 或 emacs(或任何 ncurses 应用程序))时,它不会占据整个屏幕,只会占据一小部分。有没有办法轻松解决这个问题?

答案1

这不是终端中的错误 - 只是 Android 上 shell 的默认设置未配置为处理改变窗口大小。

调整实际终端窗口的大小后,使用命令resize- 然后使用全屏程序。

答案2

更新(2015 年 2 月):现在,您可以直接使用“phablet-shell”。无需再摆弄自建脚本。也就是说,如果您愿意,它们应该仍然可以使用。


我通常使用 ssh 而不是 adb。ssh 可以正确配置终端(此外,它还能比 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 设备的缩写)即可在手机上以用户平板手机身份登录,并具有正确配置的终端和正确设置的用户环境。

答案3

根据上述 mzanetti 的回答,我对其进行了扩展,使其具有我现在经常使用的几个优点:

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 配置从主机复制到设备,以便您可以使用所有您喜欢的别名(和自定义提示配置!)

答案4

当我计划长时间使用 {adb shell} 时,我通常会先使用

stty columns 132

我经常在有 root 权限和无 root 权限的设备上使用它。

承认每次启动 shell 时它都是一个手动命令(而不是像 mzanetti/robru 解决方案那样自动执行),它很简单并且不需要更改为使用 SSH。

相关内容