我曾尝试cat
使用可执行文件命令:
cat /bin/ls
现在,我在此终端(Linux控制台)上看不到任何单词。我该如何解决?
我曾尝试cat
使用可执行文件命令:
cat /bin/ls
现在,我在此终端(Linux控制台)上看不到任何单词。我该如何解决?
Answers:
例如,通常在Unix / Linux终端(Bash)中,您将使用命令more
或less
或cat
查看文件。当您执行此操作并且不希望查看该文件(例如/bin/ls
)时,您将获得如下输出:
这里发生的是您只是试图查看程序文件。我上面提到过,不是一个标准的查看器可以查看的可执行文件。
要解决此问题,您可以执行以下操作:
reset
并按回车键通常,这应该使您的终端回到更正常的模式。我还要提到一件事,当您执行上述步骤时,请在终端中将它们盲目键入。因此,只需确保输入正确即可。
如@sendmoreinfo的评论中所建议,如果以上命令不起作用,则可以使用以下命令来代替您:
$ stty sane
$ tput rs1
顺便说一句,如果您遇到一个文件并且不确定它是否会弄乱您的终端,则可以使用命令检查该文件,该命令file
将报告该文件的类型。
例如,/bin/ls
该文件显示以下输出:
$ file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped
reset
不能100%治愈绝症。stty sane
依次尝试tput rs1
。
stty sane
但是从来没有tput
。
reset
在我的情况下工作
clear
也适用于轻度病例。
我有一个机会,其中没有一个惯用的招数,reset
或者stty sane
,工作(后无意调用print
上一个python字节组)。我在此有用的博客上列出的方法2取得了成功。
此后,我创建了一个最有用的别名:
alias fix='echo -e "\033c"'
echo -e "\033c"
帮助我清理了字符混乱的SSH登录终端会话,该会话在混合后被混淆了cat /etc/localtime
。
没有一个先前的答案对我有用。但这似乎可以解决.bashrc中的问题:
alias fix='reset; stty sane; tput rs1; clear; echo -e "\033c"'
然后在出现问题时键入此内容(即使您可能看不到它!)
(ctl-c, ctl-c, ctl-c)
fix
非常感谢先前的提交者。另外,作为一个附带说明,当您显示那些可执行文件(或密钥库等)时,您的终端出现混乱的原因是,这些文件通常包含作为控制代码的二进制序列。控制代码可能会做一些随机的事情,例如切换到图形字符集,将前景色和背景色设置为相同的东西等。
sane
reset
。