`
flytreeleft
  • 浏览: 93450 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

linux 输入长命令行 会无缘无故的回到行开始,本来应该在下一行继续的!

阅读更多

        2009年的百度知道上有人问了同题目相同的问题(其实,是我用了这个题目).而我也遇到了相同的问题,这个问题早就出现了,只是以前一直没有理会,不过好几次输入参数过长的命令,都会出现回到行首的情况,让我感到莫名的无奈.今天,实在没有心情做公司的工作了,便想把这个问题给解决一下,也好转移一下注意力.


        首先,我测试了一下虚拟终端,一直输入a,然后,又测试了纯终端(Ctrl+Alt+F1),也是输入a.我发现,长命令只有一次是回到了行首,后面的输入,其能够自动换行.于是,第一反映是看看网上是否有和我遇到相同问题的,在Google中输入关键词"Linux 长命令",返回结果的第一条就是上面的那个百度知道上提的问题,与我的情况完全相同.再看看,网友给的答案,结果却是使用反斜杠\来绕过这个问题,这个答案是不能让我满意的,不过,问题的描述中提到了终端的配置这个东西,这给了我一个方向: 应该是配置上的问题,那怎么修改配置呢?


        接着,我又在Google中输入关键词"Linux 终端 配置",在查看结果的时候,我发现,原来终端的配置是修改"~/.bashrc",而这个文件我是接触过多次的,而且,通过修改该文件,我还将PS1给改了一下,让提示符更好看一点.那是不是因为修改了PS1导致了这个问题呢?于是,我打开"~/.bashrc"文件,将修改PS1变量给注释掉,然后,重新打开一个终端,再一直输入a,这次终端便能够自动换行了,而不会出现回到行首继续输入的问题了.


        这下问题锁定了,但是,还不确定如何修改,我可不想将漂亮的提示符给换回去.


        继续Google,这次用英文的,毕竟英语国家的人接触时间更长,而且,回答问题的人也会很多.输入关键词"Linux long command",粗略浏览了一下,就第一个好像是有用的,进去看了看,发现和我的问题不一样,还是使用反斜杠解决长命令换行的.


        继续换关键词,这次在搜索时将long command用双引号括了起来,然后再加一个head,组成"linux "long command" head".嗯,结果每一个都不符合我的情况.


        既然,我的问题是和PS1变量的设置有关,那试试"linux "long command" PS1"呢.哈哈,结果第一个就完全符合我的情况,点进去看看.这是Ubuntu提问区,仔细阅读了这篇名为<How do I get long command lines to wrap to the next line?>的问题帖,其中有人回答如下:

 

Make sure all non-printable bytes in your PS1 are contained within \[ \]. Otherwise, bash will count them in the length of the prompt. It uses the length of the prompt to determine when to wrap the line.
See http://mywiki.wooledge.org/BashFAQ/053
 

         也就是说,在bash中,所有在PS1中的非打印字符都必须用"\[\]"(不包括引号)将其包围起来,否则在计算提示符长度时也会将其计算在内,导致其无法正确地换行,也就出现了回到行首的情况.


        不过,我对什么是非打印字符还是不太清楚,于是用看了看http://mywiki.wooledge.org/BashFAQ/053,原来颜色的转义序列符就是非打印字符.在我的PS1中就包含了不少的颜色,于是,我就耐心地将每个颜色转义序列符都用"\[\]"括起来,然后,再重新打开一个终端,仍然连续输入a.嘿,问题还真就解决了,就是这个问题!


        好了,今天成功解决2009年遗留下来的历史问题,同时也解决了我这么长时间遗留的历史问题,哈哈!


        下面,贡献一下我的提示符PS1设置:

 

PS1="\[\e[35m\]^o^\[\e[0m\]$ \[\e[31m\]\t\[\e[0m\] [\[\e[36m\]\W\[\e[0m\]] \[\e[32m\]\u\[\e[0m\]\[\e[33m\]@\[\e[0m\]\[\e[34m\]\h\[\e[0m\]\n\[\e[35m\].O.\[\e[0m\]\$ "
 

        截图效果如下,是不是挺可爱的?:

        打个广告: 上图是我用自己写的一个截图程序截的图,目前正在完善和修改中,待完成后,我会将其开源,与大家共享,敬请期待!

  • 大小: 6.9 KB
1
0
分享到:
评论
2 楼 ming1259 2017-07-30  
谢谢你了,我快被这个问题这么死了!终于知道为什么bash命令提示符总是异常的原因了!
1 楼 duolaimifa 2015-12-28  
我也遇到了同样的问题,之前以为是中文putty的问题,后来换了原版putty还是有问题,然后就找到你这儿来了。谢谢题主的解决方案。

相关推荐

    diskfiller:一个 bash 程序,无缘无故地制作大文件

    "diskfiller:一个 bash 程序,无缘无故地制作大文件" 这个标题指的是一个名为 "diskfiller" 的工具,它是一个基于 Bash shell 脚本的程序,其主要功能是创建任意大小的空白文件,用于测试、填充磁盘空间或进行其他...

    中央空调无缘无故漏水?原因在这!.docx

    当铜管内的冷媒通过保温棉不佳的地方散发出冷量,空气中的水分会凝结成冷凝水,导致滴漏。为避免此情况,应选择高质量的保温棉,确保不同直径的铜管匹配相应孔径的保温棉,并紧密包裹,不留任何间隙。 2. **排水管...

    保护数据不无缘无故丢失的办法

    ### 保护数据不无缘无故丢失的办法 #### 一、问题背景 在日常使用U盘的过程中,用户常常遇到这样一个困扰:在尝试通过“安全删除硬件”功能移除U盘时,系统却提示“现在无法停止‘通用卷’设备,请稍后再停止该...

    为什么器件有时候会无缘无故地失效?

    问题:为什么未遭受压力的器件有时候会无缘无故地失效?  答案:  有时候器件是"寿终正寝",有时候是存在压力但不明显。  器件的"寿终正寝"是一种源于物理或化学变化的累积性衰退效应。大家都知道,电解电容和...

    3dmax场景垃圾清理插件,3damx无缘无故变大,可以用这个

    3dmax场景垃圾清理插件,3damx无缘无故变大,可以用这个

    红米note9 4G通病 不开机进9008 重启不开机,不是电源cpu和字库虚焊,另有它病,拆机三分钟解决 最终秒杀方案无返修。

    红米note9 4G通病,无缘无故出现9008模式的,不开机,一关机就不能开机,充电无反应。 重做cpu-字库-电源 无效-返修,关机后又不开机的。 不是电源虚焊,不是cpu和字库虚焊,另有它病,最终秒杀方案,完美解决无返修...

    分析Python编程时利用wxPython来支持多线程的方法

    如果你经常使用python开发GUI程序的话,那么就知道,有时你需要很长时间来执行一个任务。当然,如果你使用命令行程序来做的话,你回非常惊讶。大部分情况下,这会堵塞GUI的事件循环,用户会看到程序卡死。如何才能...

    Windows XP 任务栏图标修复工具V1.1

    Windows XP下的任务栏右下角图标总是无缘无故的消失。 有时候是音量图标,有时候是网络图标。 最惨的是USB删除图标了,一插U盘或移动硬盘就无法弹出来了,找不到图标! 到网上找了很多方法,有很多还是解决不了问题...

    C#实现quartz.net3.0.7和topshelf4.2.1创建windows服务

    在本文中,我们将深入探讨如何使用C#与quartz.net 3.0.7和topshelf 4.2.1库来创建一个Windows服务。quartz.net是一个开源的作业调度框架,而topshelf则是一个轻量级的库,用于简化在.NET环境中创建Windows服务的过程...

    电脑总是无缘无故自动关机怎么办?.docx

    一、电脑硬件散热欠好导致自动关机 电脑硬件散热欠好是导致电脑自动关机的主要原因之一。解决方法是查看电脑 CPU 风扇是否损坏,如损坏及时重新安装,保持电脑工作环境通风良好。如果是笔记本,最佳加一个散热底座...

    为什么我的电脑总是无缘无故自动重新启动.doc

    1. 病毒或木马程序的影响:病毒或木马程序可能会让计算机重新启动。解决方法:清除病毒或木马程序,重装系统。 2. 系统文件损坏:系统文件被破坏,导致系统无法完成初始化而强迫重新启动。解决方法:覆盖安装或重新...

    电源技术中的为什么器件有时候会无缘无故地失效?

    电源技术中的器件失效是一个复杂的问题,涉及到多个物理和化学效应,以及环境和使用条件的影响。器件的失效可以分为两种情况:一是器件本身的物理或化学性质随时间自然衰退,即“寿终正寝”;二是器件在不明显的压力...

    命名管道测试代码(C#)

    项目中在同一台机器上要使用进程间通讯,研究了IPC,命名管道等相关技术,觉得命名管道比较适合我这个项目。但网上资料不是很全,根据网上...我前面打印机状态检测的测试应用,本来默认5个积分,无缘无故涨到9个积分?

    人教版必修一《牛顿第一定律》课件[宣贯].ppt

    这一点与我们日常观察到的现象相符,例如,在一个没有摩擦力的光滑表面上,一颗静止的小球不会无缘无故地开始滚动,而一个正在运动的小球如果没有外力作用,也不会突然停止或者改变运动方向。这种现象说明了物体具有...

    windowsserver2003网卡IP占用解决方法.pdf

    在挪移网卡位置之前,我们如果没有先对网卡设备执行正确的卸载操作,那么日后一旦将网卡设备安装到新的插槽位置时,系统中肯定会无缘无故地多出一块新的虚拟网卡设备,该虚拟网卡的存在将影响我们继续使用以前的网卡...

    陈桥五笔陈桥五笔陈桥五笔

    陈桥五笔自推出以来,便以其高效、易用和功能丰富而成为中文输入领域里备受推崇的五笔字型输入法软件。名称中的“陈桥”二字并非无缘无故,而是取自中国古代历史上的“陈桥兵变”典故,蕴藏着颠覆传统、开创新局的...

    connectwlan:在实际工作中,我们会遇到网卡无缘无故掉线,重新连接又可以上线;主要完成测试网络和连接无线的功能

    在实际工作中,我们会遇到网卡无缘无故掉线,重新连接又可以上线;主要完成测试网络和连接无线的功能,用于windows环境下 1.main函数在autoconnectwlan.py,修改ssid为你需要连接的ssid if ConnectWlan.ConnectWlan...

    Excel百宝箱 9.0 破解版 批量导入图片等200种功能

    【筛选唯一值】以选择区域左边一列为条件进行唯一值筛选,输入1则删除重复值所在行,输入2则隐藏重复值所在行 【建文件目录】对指定文件夹中的文件建立目录,且生成链接,单击可以打开对应的文件 【建工作表目录】对...

    基于C/C++的爱心源码

    作者自己用C写的一段爱心源码~听说爱心和对象更搭哦~快拿去送给喜欢的男/女朋友吧! 大家自信下载哦~ 只想握着你的手,感受到你的体温。我的手不用来温暖你就失去了存在的意义。不想看到你伤心的背影,忍不住想拥抱...

    隐藏文件查找器(能找到U盘里无缘无故(比如中病毒)丢的东西)

    隐藏文件查找器,能找到U盘或者电脑因为中病毒隐藏的一些东西,很好用,网上有一些功能类似的批处理,不过这个是图形界面,很好用,u盘里如果出现一些长相类似文件夹的.exe 的东西。八成是中毒了,用这个软件可以...

Global site tag (gtag.js) - Google Analytics