Linux命令提示符太长

时间:2024-04-14 08:35:47

在Linux环境下使用终端,命令前会有命令提示符,一般包括用户名、主机名、还有目录名。如果命令提示符占据绝大部分,留给我们输入命令的空间就有限,当然也可以换行,但是这不够直观。

问题

在我的终端里,我实际的命令是cat spark-defaults.conf.template | grep "spark",但是因为用户名、主机名和目录名占据了40%左右的空间,导致我的命令不能在一行完全输入,当命令更加复杂的情况下很不直观。

Linux命令提示符太长

解决方法

接下来我给出两个解决办法
1. 命令换行,即命令和命令提示符不在一行
2. 减少命令提示符的长度

解决方法是有了,但是怎么执行呢?有关于命令提示符的修改在~/.bashrc文件中,如果是root用户,即/root/.bashrc,如果是普通用户则是/home/用户名/.bashrc

1.打开.bashrc文件

vim ~/.bashrc
注意:这里文件名有个点,Linux文件名开头为.表示隐藏文件,直接用ls命令是看不到的
Linux命令提示符太长

2.找到有关命令提示符的语句

vim中输入/@,查找@这个字符(vim命令模式/可以查找指定字符)。因为命令提示符是用户名@主机名,所以我当时猜测相关语句应该有@这个字符,果不其然。
Linux命令提示符太长

3.修改.bashrc

回到我们之前的两个解决办法

(1)换行

程序员都知道换行符是\n,在Linux的shell中也不意外,所以我们在命令提示符结尾加入\n。可以看到这里有个if语句,经过我的测试,else语句会被执行到,当然也可以和我一样if和else后的语句都修改
Linux命令提示符太长

然后执行source ~/.bashrc使之前的修改生效
Linux命令提示符太长

(2)从命令提示符下手

命令提示符包括用户名、主机名、目录名,我们就将他们缩短或者不显示也可以解决问题。

删除用户名
没有多用户需求的小伙伴可以采用此方法,像我就一个用户和root用户,所以我就删除了用户名,将\u删除即可,也可以一起删除@这个字符,因为@是用户名和主机名的分隔符,删除了其中一个,@自然也没有存在的必要了

删除用户名和@
Linux命令提示符太长

source一下查看结果,如下:
Linux命令提示符太长

删除主机名
如果没有ssh到其他主机需求的话,可以使用此方法。删除@\h就可以了。
主机名和目录名之间有个:,不需要的话也可以一并删除

Linux命令提示符太长

主机名被我删除了,图片里面没有@\h字样。

显示当前目录
如果不想显示全路径,只想显示当前路径名,可以把\w换成\W,小写换成大写。
Linux命令提示符太长

为了演示,我采用多种方法来解决“命令提示符太长”这个问题,实际情况大家可以采用其中的一种。当然将用户名和主机名缩短也是可以的,这也不需要修改.bashrc文件

vim技巧

  1. vim中使用/命令来搜索命令
  2. 删除了@之后可以通过:n来定位我们想要的行号,如我就采用了:67

特殊符号的含义

\d :代表日期,格式为weekday month date,例如:”Mon Aug 1”
\H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
\t :显示时间为24小时格式,如:HH:MM:SS
\T :显示时间为12小时格式
\A :显示时间为24小时格式:HH:MM
\u :当前用户的账号名称
\v :BASH的版本信息
\w :完整的工作目录名称。家目录会以 ~代替
\W :利用basename取得工作目录名称,所以只会列出最后一个目录
$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

参考

  1. https://blog.****.net/yelangjueqi/article/details/45556657