命令在 80 个字符后环绕同一行

Oli*_* G. 11 terminal tty serial-console minicom

我有一个连接到 Yocto Linux 机器的串行控制台的 minicom 的烦人问题。

我输入的命令在第 80 个字符后环绕在同一行。这变得非常不方便使用。我在该行开头输入的所有内容都被该行的最后一个字符覆盖。

到同一台机器的 SSH 连接工作正常。在第 80 个字符后 ssh 转到下一行。

这是 stty 设置:

stty -a
speed 115200 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon ixoff
-iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon -iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
Run Code Online (Sandbox Code Playgroud)

minicom 的 -w 选项无效。还是一样的行为

minicom -w
Run Code Online (Sandbox Code Playgroud)

resize命令在该机器上不可用。它属于哪个包?也许我可以安装它。

我该如何解决这种行为?

小智 9

这对我有用。需要设置目标 shell 以检查窗口大小并设置为控制台 gui 的正确大小。通过串口与 putty 或 minicom 连接后:

shopt -s checkwinsize
resize
Run Code Online (Sandbox Code Playgroud)


Tho*_*key 4

当您通过串行线连接时,系统无法与终端协商窗口大小(NAWS -协商窗口大小RFC 1073)。在这种情况下,您可以获得系统默认的大小,甚至只是零。两者都会使 shell 的行编辑器感到困惑,因为它需要知道终端的实际宽度才能使用其环绕功能。

bash 感到困惑,认为由于终端的自动换行功能而已换行,并作为行编辑/显示的一部分移动到当前(错误)行的开头。

作为一种解决方法,大多数与串行接口一起使用的终端(包括 minicom —请参阅源代码)都可以响应用于resize查找窗口大小的光标位置报告转义序列 — 并且作为副作用设置系统的想法你的终端窗口有多大。