控制台中出现奇怪的字符

Sim*_*230 5 linux console

我正在使用 Linux 控制台,突然字母的格式发生了变化:

带有错误字母格式的控制台 linux

我可能按错了键。知道如何解决这个问题吗?

Kam*_*ski 5

此类垃圾可能是将二进制数据输出到控制台的命令的后果。通常您不希望命令执行此操作。仍然可能由于错误或某些错误。例子:

你想cat file知道file文本文件在哪里,你打错了字,然后cat fildfild碰巧是二进制文件的地方运行。

在这种情况下,您的终端仿真器可能会将某些特定的字节序列解释为控制序列等,它们将影响其以后的行为。

要解决此问题:

  1. 按下Ctrl+C几次,以防某些进程仍在运行,或者您在命令行中盲目输入了某些内容。
  2. 键入reset
  3. 击中Enter

来自man 1 reset

当调用 as 时resettset设置煮熟和回声模式,关闭 cbreak 和原始模式,打开换行转换并将任何未设置的特殊字符重置为其默认值,然后再执行上述终端初始化。这在程序死后使终端处于异常状态后很有用。请注意,您可能需要输入

<LF>reset<LF>
Run Code Online (Sandbox Code Playgroud)

(换行符通常是 control-J)使终端工作,因为在异常状态下回车可能不再工作。此外,终端通常不会回显命令。

所以更万无一失的命令版本似乎是:

  1. 输入Ctrl+ JresetCtrl+ J

我的经验(尤其是在tmux)表明在某些情况下reset可能无济于事;它通常仍然如此。


resetPOSIX 不需要。以下命令是,每一个都可能有帮助:
stty sane, tput reset.