标准的 Linux shell bash 中有几个默认值,我认为这些默认值需要带出一些历史。这个问题是关于提示的。
许多 Linux 发行版中 bash 的默认提示符是[\u@\h \W]\$
对于那些无法解析的人,对于典型用户来说,它看起来像这样:
[staticsan@walcen files]$ _
最大的问题是它只告诉你当前目录的名称。“文件”可以/var/www/files/
像/home/staticsan/files
(这是一个简单的例子)一样容易。完整路径更有意义,因此每次设置新框或创建新用户时都必须更改它。
那么为什么默认设置为它是什么?
一个可能的答案是
与您一起工作会很不方便
答案很简单——这是终端宽 80 个字符的时代的遗迹。看看你自己的例子——用户名和主机已经占用了 16 个字符。加上额外的括号和空格,已经有 20 个字符了,我们还没有计算目录名称。
目录也可以有很长的名称。您的示例路径包含 21 个字符,并且只有三个目录深。在这种情况下,在 80 字符的终端上,该提示将占据屏幕宽度的一半。
当然,今天的终端更广泛,这就是为什么许多用户和发行版切换到更长的提示。但是仍然有一些使用更窄的提示来给用户更多的输入空间。
我不会回答问题的“为什么”部分。
但我会提示您如何更改所有未来用户帐户的默认行为:
您可以通过更改 /etc/skel/ 中的文件来更改创建用户时使用的默认文件(以及文件布局)
因此,更改 /etc/skel/.bashrc 中的 PS1 变量,它将成为新用户的默认值。
我已经进入我
/etc/skel
的并将默认提示编辑为以下内容:它看起来像这样:
加上颜色 - 因为我喜欢颜色 :)
但是是的 - “为什么”与小型终端有关,现在缺乏改变现状的意愿。
无颜色更新
我喜欢
PS1="\h \d \t \w\n\u > "
这导致:
我的服务器 Mon Sep 07 07:43:11 /u08
root >
因此,您会在提示符下获得主机名、日期和时间、完整路径,然后是新行上的用户名。那是为了最大限度地减少目录中的换行。我整天都在盒子里进进出出,所以我能做的就是让它保持正常。我还设置了腻子来记录所有内容。我可以回去查看日志,看看我当时在做什么。也可以方便地同时找出几个终端窗口中的事件序列。