开发者社区> 问答> 正文

终端无法输入了,请问一下怎么解决

截屏2020-12-15 上午1.15.48.png 不知道点了什么 就变这样了。没办法输入

展开
收起
游客p6ykilvk6ptxc 2020-12-15 15:59:11 1160 0
1 条回答
写回答
取消 提交回答
  • 有时在linux下shell终端中,会突然出现终端应用卡死,无法接受键盘输入, 但是其它分屏, 系统都是正常的。这本来是一个终端的很老的功能, 叫软件流控制(XON/XOFF flow control),具体就是当client(terminal emulator), 也就是常用的终端模拟器无法接受更多的数据的时, 终端会发送一个 "XOFF" 信号 告诉发送数据端暂停发送, 直到收到"XON"信号,其中发送的 "XOFF" 是告诉内核的 tty 驱动将正在发送数据的进程设置为休眠状态, 直到 tty 驱动发送 "XON" 告诉内核恢复进程, 就好像它从来没有停过一样。

      默认情况下,Ctrl-s会启用终端的滚动锁定, 此时禁用终端模拟器的滚动功能 (通过发送 "XOFF" 信号暂停软件的输出 ),终端软件没有任何输出,造成假死的现象,一般情况都是无意识按下了ctrl+s快捷键而已。相应的,Ctrl-q 会禁用滚动锁定, 恢复终端滚动 (通过发送 "XON" 信号来恢复软件的输出).

      可以修改配置文件, 在~/.bash_profile 或者~/.bashrc的配置文件里面加上下面的参数并且重启加载bash配置即可要禁用这个功能,就不会假死了:

    stty -ixon source .bashrc

      顺便提一下,linux下终端ctrl+z命令会将当前任务切换到后台执行,就无法看到了,可以使用fg命令恢复至前台。

    2021-02-03 18:40:21
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载