谁决定了 Linux 中的默认 shell 提示?

sta*_*san 2 linux bash prompt

在标准的 Linux shell bash 中有几个默认值,我认为需要一些历史记录。这个问题是关于提示的。

许多 Linux 发行版中 bash 的默认提示是 [\u@\h \W]\$

对于那些无法解析的人,对于典型用户来说,它看起来像这样:

[staticsan@walcen files]$ _
Run Code Online (Sandbox Code Playgroud)

最大的问题是它只告诉您当前目录的名称。“文件”可以/var/www/files//home/staticsan/files(这是一个简单的例子)一样容易。完整路径更有意义,因此每次设置新框或创建新用户时,我都必须更改它。

那么为什么默认设置为它呢?

wzz*_*zrd 7

一个可能的答案是

[my_name@my_machine /var/www/html/my_site/my_subdir/another_subdir/yet_another_subdir/and_more_subdirs_yet/see_here/another_subdir/etc $] _
Run Code Online (Sandbox Code Playgroud)

和你一起工作会很不方便


小智 5

答案很简单——这是终端宽度为 80 个字符的时代的遗物。看看你自己的例子——用户名和主机已经占用了 16 个字符。加上额外的括号和空格,已经有 20 个字符了,我们还没有计算目录名称。

目录也可以有很长的名称。您的示例路径有 21 个字符,并且只有三个目录深。在这种情况下,在 80 字符终端上,该提示将占据屏幕宽度的一半。

当然,今天的终端更广泛,这就是为什么许多用户和发行版切换到更长的提示。但是仍然有一些使用更窄的提示给用户留下更多的输入空间。