lot*_*ous 154 terminal fonts binary console
我试过cat一个可执行文件的命令:
cat /bin/ls
Run Code Online (Sandbox Code Playgroud)
现在我无法在此终端(Linux 控制台)中读取任何字词。我该如何解决?
slm*_*slm 215
例如,通常在 Unix/Linux 终端 (Bash) 中,您会使用命令more或less或cat查看文件。当您执行此操作并且不打算查看该文件(例如/bin/ls)时,您将获得如下输出:
                
这里发生的事情是您只是试图查看一个程序文件。如上所述,不打算用标准查看器查看的可执行文件。
要解决此问题,您可以执行以下操作:
reset并回车这通常会使您的终端回到更正常的模式。我还要提一件事,当您执行上述步骤时,您将在终端中盲目地输入它们。所以只要确保你输入正确。
正如@sendmoreinfo 在评论中所建议的那样,如果上述方法不起作用,您可能会使用以下命令获得更好的运气:
$ stty sane
$ tput rs1
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果您遇到一个文件并且不确定它是否会弄乱您的终端,您可以使用命令检查该文件,该命令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
Run Code Online (Sandbox Code Playgroud)
        小智 50
我曾经遇到过没有任何常用技巧reset或stty sane, 工作的情况(在不小心调用print了 python bytearray 之后)。我在这个有用的博客上列出的方法 2取得了成功。
我已经创建了一个最有用的别名:
alias fix='echo -e "\033c"'
Run Code Online (Sandbox Code Playgroud)
        Ste*_*sed 15
没有一个先前的答案对我有用。但这似乎在 .bashrc 添加:
alias fix='reset; stty sane; tput rs1; clear; echo -e "\033c"'
Run Code Online (Sandbox Code Playgroud)
然后当问题发生时输入这个(即使你可能看不到它!)
(ctl-c, ctl-c, ctl-c)
fix
Run Code Online (Sandbox Code Playgroud)
非常感谢之前的提交者。此外,作为旁注,您的终端在显示这些可执行文件(或密钥库等)时出现故障的原因是这些文件通常包含作为控制代码的二进制序列。控制代码可能会随机执行一些操作,例如切换到图形字符集、将前景色和背景色设置为相同的内容等。
小智 5
我有与上一篇文章几乎相同的别名,只有一个小的更改(tput reset而不是rs1)和一个添加的命令(setterm -reset):
alias clr='echo -e "\033c" ; stty sane; setterm -reset; reset; tput reset; clear'
Run Code Online (Sandbox Code Playgroud)
        tmux用户也许能够将所有这些命令发送到他们的 shell,但重置不会提升到窗格tmux。
创建新的 tmux 窗口:
ctrl-B c
tmux list-panes
记下您认为被破坏的窗格编号,通常为0。我们就这样称呼它吧PPP
选择tmux窗口,其中XXX是被屏蔽的窗口号,不一定与窗格号相同。
ctrl-B XXX
tmux send-key -R -t PPP
然后,您将看到该问题的其他答案中的所有命令,这些命令已进入您的 shell,但不起作用!也许盲人tmux send-key -R -t PPP会起作用,但我无法测试。
小智 5
我知道这已经有一段时间了,但是虽然许多其他答案对我有用,重置,stty sane,有时这些都不适合我,我总是求助于:
echo ^v^o
Run Code Online (Sandbox Code Playgroud)
这是 echo Ctrl+V 后跟 Ctrl+O