Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 910|回复: 0

[转] linux下shell中使用上下键翻出历史命名时出现^[[A^[[A^[[A^[[B^[[B的问题解决,Linux使用退格键时出现^H解决方法

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-5-22 14:53:30 | 显示全部楼层 |阅读模式

    [From]

    https://www.zmrbk.com/post-2030.html

    https://blog.csdn.net/suifengshiyu/article/details/40952771

     

    我的理解是,如果出现如题所描述的问题,这是因为使用了不同的shell程序和对应的stty设置对应关系所综合作用的结果。

    这是/bin/sh里面stty -a命令输出的信息:

    $ stty -a
    speed 38400 baud; rows 43; columns 209; line = 0;
    intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
    -parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
    -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
    opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
    isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc

     

    这是/bin/bash里面stty -a命令输出的信息,可以看到不同的字符映射:

    pekkle@PPLinux:~$ stty -a
    speed 38400 baud; rows 43; columns 209; line = 0;
    intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
    -parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
    -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
    opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
    isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc

     

     

    转发以上两篇文章,都是解决方法。简单的方法是用/bin/bash代替/bin/sh,在ubuntu里是正常的。

     

    linux下shell中使用上下键翻出历史命名时出现^[[A^[[A^[[A^[[B^[[B的问题解决

    今天在使用kali linux的时候,使用上下键想翻出历史命令时,却出现^[[A^[[A^[[A^[[B^[[B这种东东,而tab键补全命令的功能也无法使用。
    
    
    最终发现是由于当前用户使用的shell是/bin/sh的原因。
    
    useradd的时候没有指定用户的shell类型,因此默认为/bin/sh1:查看当前用户的shell类型命令: echo $SHELL
    
    2:改变当前用户登录默认的shell:chsh -s /bin/bash username  或者使用usermod -s /bin/bash username命令
    
    
    默认的shell改成/bin/bash之后正常了。
    
    bash和sh的区别:http://hi.baidu.com/aaronike/item/08cfca8ab2ca145d850fabd3
    
    sh其实是dbash的软连接。

     

    Linux使用退格键时出现^H解决方法

    以前在linux下执行脚本不注意输错内容需要删除时总是出现^H ,以前不知道真相的我没办法只有再重头运行一次脚本,后来发现其实时有解决办法的,所以记录一下。
    
    ^H不是H键的意思,是backspace。主要是当你的终端backspace有问题的时候才需要设置。
    
    解决方法有两种:
    1、要使用回删键(backspace)时,同时按住ctrl键
    2、设定环境变量
    在脚本的开头或结尾 参数 stty erase ^H stty erase ^?
    在bash下:$ stty erase ^?
    或者把 stty erase ^? 添加到.bash_profile中。
    在csh下:$ stty erase ^H
    或者把 stty erase ^H 添加到.cshrc中

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-3 01:02 , Processed in 0.067657 second(s), 31 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表