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
分享到:
相关推荐
"diskfiller:一个 bash 程序,无缘无故地制作大文件" 这个标题指的是一个名为 "diskfiller" 的工具,它是一个基于 Bash shell 脚本的程序,其主要功能是创建任意大小的空白文件,用于测试、填充磁盘空间或进行其他...
当铜管内的冷媒通过保温棉不佳的地方散发出冷量,空气中的水分会凝结成冷凝水,导致滴漏。为避免此情况,应选择高质量的保温棉,确保不同直径的铜管匹配相应孔径的保温棉,并紧密包裹,不留任何间隙。 2. **排水管...
### 保护数据不无缘无故丢失的办法 #### 一、问题背景 在日常使用U盘的过程中,用户常常遇到这样一个困扰:在尝试通过“安全删除硬件”功能移除U盘时,系统却提示“现在无法停止‘通用卷’设备,请稍后再停止该...
问题:为什么未遭受压力的器件有时候会无缘无故地失效? 答案: 有时候器件是"寿终正寝",有时候是存在压力但不明显。 器件的"寿终正寝"是一种源于物理或化学变化的累积性衰退效应。大家都知道,电解电容和...
3dmax场景垃圾清理插件,3damx无缘无故变大,可以用这个
在本文中,我们将深入探讨如何使用C#与quartz.net 3.0.7和topshelf 4.2.1库来创建一个Windows服务。quartz.net是一个开源的作业调度框架,而topshelf则是一个轻量级的库,用于简化在.NET环境中创建Windows服务的过程...
红米note9 4G通病,无缘无故出现9008模式的,不开机,一关机就不能开机,充电无反应。 重做cpu-字库-电源 无效-返修,关机后又不开机的。 不是电源虚焊,不是cpu和字库虚焊,另有它病,最终秒杀方案,完美解决无返修...
如果你经常使用python开发GUI程序的话,那么就知道,有时你需要很长时间来执行一个任务。当然,如果你使用命令行程序来做的话,你回非常惊讶。大部分情况下,这会堵塞GUI的事件循环,用户会看到程序卡死。如何才能...
Windows XP下的任务栏右下角图标总是无缘无故的消失。 有时候是音量图标,有时候是网络图标。 最惨的是USB删除图标了,一插U盘或移动硬盘就无法弹出来了,找不到图标! 到网上找了很多方法,有很多还是解决不了问题...
一、电脑硬件散热欠好导致自动关机 电脑硬件散热欠好是导致电脑自动关机的主要原因之一。解决方法是查看电脑 CPU 风扇是否损坏,如损坏及时重新安装,保持电脑工作环境通风良好。如果是笔记本,最佳加一个散热底座...
1. 病毒或木马程序的影响:病毒或木马程序可能会让计算机重新启动。解决方法:清除病毒或木马程序,重装系统。 2. 系统文件损坏:系统文件被破坏,导致系统无法完成初始化而强迫重新启动。解决方法:覆盖安装或重新...
电源技术中的器件失效是一个复杂的问题,涉及到多个物理和化学效应,以及环境和使用条件的影响。器件的失效可以分为两种情况:一是器件本身的物理或化学性质随时间自然衰退,即“寿终正寝”;二是器件在不明显的压力...
项目中在同一台机器上要使用进程间通讯,研究了IPC,命名管道等相关技术,觉得命名管道比较适合我这个项目。但网上资料不是很全,根据网上...我前面打印机状态检测的测试应用,本来默认5个积分,无缘无故涨到9个积分?
在挪移网卡位置之前,我们如果没有先对网卡设备执行正确的卸载操作,那么日后一旦将网卡设备安装到新的插槽位置时,系统中肯定会无缘无故地多出一块新的虚拟网卡设备,该虚拟网卡的存在将影响我们继续使用以前的网卡...
在实际工作中,我们会遇到网卡无缘无故掉线,重新连接又可以上线;主要完成测试网络和连接无线的功能,用于windows环境下 1.main函数在autoconnectwlan.py,修改ssid为你需要连接的ssid if ConnectWlan.ConnectWlan...
【筛选唯一值】以选择区域左边一列为条件进行唯一值筛选,输入1则删除重复值所在行,输入2则隐藏重复值所在行 【建文件目录】对指定文件夹中的文件建立目录,且生成链接,单击可以打开对应的文件 【建工作表目录】对...
作者自己用C写的一段爱心源码~听说爱心和对象更搭哦~快拿去送给喜欢的男/女朋友吧! 大家自信下载哦~ 只想握着你的手,感受到你的体温。我的手不用来温暖你就失去了存在的意义。不想看到你伤心的背影,忍不住想拥抱...
隐藏文件查找器,能找到U盘或者电脑因为中病毒隐藏的一些东西,很好用,网上有一些功能类似的批处理,不过这个是图形界面,很好用,u盘里如果出现一些长相类似文件夹的.exe 的东西。八成是中毒了,用这个软件可以...
塔基 taky-用于ATAK的简单COT服务器 功能(和反功能!) 同时支持多个ATAK客户!... 愚蠢无缘无故! 在旧的Core i5-2500k上每秒路由1000个数据包! 可选的Redis支持的对象持久性存储! 仍然不需要SQlite
准备好开始将其用作主编辑器后,请执行以下操作: nimble install paravim nimble install 只要~/.nimble/bin在您的PATH上,您现在就可以打开如下文件: vim3 path/to/myfile.txt 问与答 我如何获得您的力量? 没...