此类垃圾可能是将二进制数据输出到控制台的命令的后果。通常您不希望命令执行此操作。仍然可能由于错误或某些错误。例子:
你想cat file知道file文本文件在哪里,你打错了字,然后cat fild在fild碰巧是二进制文件的地方运行。
在这种情况下,您的终端仿真器可能会将某些特定的字节序列解释为控制序列等,它们将影响其以后的行为。
要解决此问题:
reset。来自man 1 reset:
当调用 as 时
reset,tset设置煮熟和回声模式,关闭 cbreak 和原始模式,打开换行转换并将任何未设置的特殊字符重置为其默认值,然后再执行上述终端初始化。这在程序死后使终端处于异常状态后很有用。请注意,您可能需要输入Run Code Online (Sandbox Code Playgroud)<LF>reset<LF>(换行符通常是 control-J)使终端工作,因为在异常状态下回车可能不再工作。此外,终端通常不会回显命令。
所以更万无一失的命令版本似乎是:
resetCtrl+ J。我的经验(尤其是在tmux)表明在某些情况下reset可能无济于事;它通常仍然如此。
resetPOSIX 不需要。以下命令是,每一个都可能有帮助:
stty sane, tput reset.