You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Linux下方向键无法正常工作,按下后出现特殊字符求助

Linux下方向键无法正常工作,按下后出现特殊字符求助

嘿,别着急,这个问题其实挺常见的,我来帮你一步步排查解决~

你看到的^[[D^[[C^[[B^[[A这些字符,其实是方向键对应的ANSI转义序列,之所以没变成你预期的光标移动,大多是因为shell或者终端环境没正确识别这些按键信号,试试下面这些方法:

  • 先检查当前用的shell:输入echo $SHELL,如果输出是/bin/sh而不是/bin/bash或者/bin/zsh,那大概率是这个原因——sh默认没有启用readline功能(这个功能负责处理方向键、历史命令这些交互操作)。你可以直接输入bash切换到bash,再按方向键试试,应该就能正常用了。如果想默认用bash,可以用chsh -s /bin/bash修改默认shell(需要输入密码)。

  • 如果已经是bash但问题还在,可能是readline相关组件没装好。对于Debian/Ubuntu这类发行版,试试安装:

    sudo apt install libreadline-dev readline-common
    

    要是CentOS/RHEL系的系统,就用:

    sudo yum install readline-devel
    

    装完之后重启一下shell或者终端,再测试方向键。

  • 检查终端的TERM环境变量:输入echo $TERM,正常应该是xtermxterm-256color或者和你终端匹配的类型(比如gnome-terminal、konsole)。如果输出是vt100或者其他奇怪的类型,你可以临时设置一下试试:

    export TERM=xterm-256color
    

    要是管用的话,可以把这行加到你的~/.bashrc文件里,这样每次启动shell都会自动设置。

  • 如果你是通过SSH远程连接的服务器,那也有可能是本地终端的发送模式不对,不过先试试上面的方法,大部分情况都能解决。

备注:内容来源于stack exchange,提问作者Arthur Prager

火山引擎 最新活动