linux - tty核心流字符

原文 标签 linux linux-kernel device-driver linux-device-driver

我在没有屏幕的硬件上运行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和其他命令中禁用自动着色,或将术语envvar设置为不理解颜色(或任何其他)控件的内容。TERM=dumb应该能做到。

相关文章:

linux - ImageMagick:调整目录内图像的大小

python - 从树莓派上传文件到谷歌驱动器

c - 在用户空间和内核空间之间的mmap中同步队列

android - 内核如何知道USB设备何时自行进入低功耗模式(不是由主机启动)?

java - 终止后如何检查过程状态,甚至有可能?

linux - 如何将非免费的ko文件(驱动程序)编译到内核中?

linux - 内核模块(dm9601驱动程序)中的“未知符号”,是否需要重建内核?

c - 将watchdog_set_period设置为最大值会导致重新启动

winapi - 获取Windows驱动程序目录

linux - 在bash脚本中转义字符时出现问题