LV02-04-终端配置-01-默认终端长度问题
本文主要终端配置——默认终端长度问题相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。
点击查看使用工具及版本
PC端开发环境 | Windows | Windows11 |
Ubuntu | Ubuntu20.04.6的64位版本(一开始使用的是16.04版本,后来进行了升级) | |
VMware® Workstation 17 Pro | 17.0.0 build-20800274 | |
终端软件 | MobaXterm(Professional Edition v23.0 Build 5042 (license)) | |
Win32DiskImager | Win32DiskImager v1.0 | |
Linux开发板环境 | Linux开发板 | 正点原子 i.MX6ULL Linux 阿尔法开发板 |
uboot | NXP官方提供的uboot,NXP提供的版本为uboot-imx-rel_imx_4.1.15_2.1.0_ga(使用的uboot版本为U-Boot 2016.03) | |
linux内核 | linux-4.15(NXP官方提供) |
点击查看本文参考资料
分类 | 网址 | 说明 |
官方网站 | https://www.arm.com/ | ARM官方网站,在这里我们可以找到Cotex-Mx以及ARMVx的一些文档 |
https://www.nxp.com.cn/ | NXP官方网站 | |
https://www.nxpic.org.cn/ | NXP 官方社区 | |
https://u-boot.readthedocs.io/en/latest/ | u-boot官网 | |
https://www.kernel.org/ | linux内核官网 |
点击查看相关文件下载
分类 | 网址 | 说明 |
NXP | https://github.com/nxp-imx | NXP imx开发资源GitHub组织,里边会有u-boot和linux内核的仓库 |
https://elixir.bootlin.com/linux/latest/source | 在线阅读linux kernel源码 | |
nxp-imx/linux-imx/releases/tag/rel_imx_4.1.15_2.1.0_ga | NXP linux内核仓库tags中的rel_imx_4.1.15_2.1.0_ga | |
nxp-imx/uboot-imx/releases/tag/rel_imx_4.1.15_2.1.0_ga | NXP u-boot仓库tags中的rel_imx_4.1.15_2.1.0_ga | |
I.MX6ULL | i.MX 6ULL Applications Processors for Industrial Products | I.MX6ULL 芯片手册(datasheet,可以在线查看) |
i.MX 6ULL Applications ProcessorReference Manual | I.MX6ULL 参考手册(下载后才能查看,需要登录NXP官网) |
一、问题描述
这个问题是使用Mobaxterm连接正点原子 alpha imx6ull开发板的的时候发现的,就是我们链接好串口后,敲一些很长的命令,它不会换行,会出现字符重叠、换行错误的情况, 非常影响使用感受,就像这样:
即便我的终端已经开成了全屏。
二、问题原因
上面的问题是因为终端软件的换行长度与开发板串口终端长度不一致造成的,可在终端软件进行如下配置强制使用相同的换行长度,开发板默认的串口终端行长度为80个字符, 也可以使用命令“stty size”进行查看。
注意如果使用的是ssh连接,那么终端与开发板的行长度是自动适应的,如果强制换行长度还会多此一举。
三、解决办法
1. 解决方式 1——修改Mobaxterm配置
我们打开串口的配置界面,找到字体设置,然后勾选这个强制固定:
然后重新连接串口,就会变成这样:
可以看到确实不会重叠了,但是观感极差。
2. 解决方式2——修改开发板配置
我们打开开发板的/etc/init.d/rcS文件,去掉这两行:
1 | shopt -s checkwinsize |
没有的话就不管了。然后打开环境变量文件/etc/profile,添加如下内容:
1 | shopt -s checkwinsize |
然后在开机的时候会有如下打印:
然后我们再尝试输入超长的命令,就会发现一切正常。
四、相关命令
1. shopt
shopt命令是set命令的一种替代,很多方面都和set命令一样,但它增加了很多选项。通过执行shopt看看都有那些选项与系统的默认值。命令格式如下:
1 | shopt [-psu] [optname] |
常用选项说明如下:
1 | -p 选项来查看shopt选项的设置 |
我们可以在开发板的终端敲一下这个命令:
1 | root@ATK-IMX6U:~# shopt |
里面一些常见的参数说明如下:
1 | cdable_vars # 如果给cd内置命令的参数不是一个目录,就假设它是一个变量名,变量的值是将要转换到的目录 |
2. resize
resize命令设置终端机视窗的大小。执行resize指令可设置虚拟终端机的视窗大小。
语法格式:
1 | resize [参数] |
常用参数:
-c 就算用户环境并非C Shell,也用C Shell指令改变视窗大小。
-s 设置终端机视窗的垂直高度和水平宽度。
-u 就算用户环境并非Bourne Shell,也用Bourne Shell指令改变视窗大小。