这是一个纯粹出于好奇的问题:
我在 bash 中有一个自定义的 PS1 设置,它只是当前目录,后跟一个小写的 lambda ( ?),例如~?. 我不小心使用cat了一个二进制文件,取消了输出,随后在剩下的会话中?变成了两个日语字符??。从其他地方粘贴这个字符时,它也显示为这两个日文字符。
现在我的问题是,这个二进制文件的输出如何改变 bash 解释 Unicode 字符的方式?
我的问题是,这个二进制文件的输出如何改变 bash 解释 Unicode 字符的方式?
标准 Unix 终端支持ANSI/VT-100 命令,这些命令可以控制光标、颜色和字体。当您在屏幕上键入二进制文件时,某些二进制字符可能会意外匹配此类控制代码并设置终端的属性。
要将终端恢复到默认状态,请运行:
reset
Run Code Online (Sandbox Code Playgroud)
如果您希望终端上的文本闪烁,请键入:
echo -e '\E[5m'
Run Code Online (Sandbox Code Playgroud)
如果要将显示切换为反向视频,请键入:
echo -e '\E[7m'
Run Code Online (Sandbox Code Playgroud)
作为一个更复杂的例子,考虑make可以产生大量输出的命令。为了更容易发现重要的事情,您可能希望ERR在WARNING以粗体显示的同时以反向视频突出显示。在下面的代码添加VT-100控制序列中的输出make,以获得所述终端上这个高亮:
make 2>&1 | sed -e 's/.*\bERR.*/\x1b[7m&\x1b[0m/i' -e 's/.*\bWARN.*/\x1b[1m&\x1b[0m/i'
Run Code Online (Sandbox Code Playgroud)
上面故意添加了控制序列。当在屏幕上输入二进制文件时,不知道会意外激活哪些 VT-100 控制序列。
| 归档时间: |
|
| 查看次数: |
974 次 |
| 最近记录: |