我在没有屏幕的硬件上运行 linux,并将所有数据转储到串口。我正在通过 hyperterm 或 teraterm 等应用程序阅读 linux 序列。我得到了正确格式化的串行输出。但是,如果我将该输出转储到一个文件然后尝试读取它,那么我会看到很多额外的字符。大多数情况下,它们必须是来自 tty 核心的流量控制字符。有什么方法可以禁用来自 tty 核心的这些流量控制字符。 这是我的 ls 命令的样子:
# ls
[0;0m1q[0m [1;34mbin[0m [1;34mhome[0m [1;34mmnt[0m [1;34msbin[0m [1;34mvar[0m [1;34mdev[0m [1;32minit[0m [1;34mopt[0m [1;34msys[0m [1;34metc[0m [1;34mlib[0m [1;34mproc[0m [1;34mtmp[0m [1;36mlinuxrc[0m [1;34mroot[0m [1;34musr[0m
谢谢。
最佳答案
这些不是流控制字符,它们是 xterms 或其他颜色 ansi 兼容终端设备的属性设置控制字符(特别是颜色设置)。要摆脱它们,请关闭 ls 和其他命令中的自动着色,或将 TERM envvar 设置为不理解颜色(或任何其他)控制的内容。 TERM=dumb
应该可以解决问题。
关于linux - tty 核心流字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9570310/