![如何使“adb shell”具有正确的终端尺寸?](https://linux22.com/image/1081495/%E5%A6%82%E4%BD%95%E4%BD%BF%E2%80%9Cadb%20shell%E2%80%9D%E5%85%B7%E6%9C%89%E6%AD%A3%E7%A1%AE%E7%9A%84%E7%BB%88%E7%AB%AF%E5%B0%BA%E5%AF%B8%EF%BC%9F.png)
因此,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。