我认为标准 Linux shell bash 中有几个默认设置需要引入一些历史记录。这个问题是关于提示符的。
许多 Linux 发行版中的 bash 默认提示符是[\u@\h \W]\$
对于那些不能解析的人来说,对于典型的用户来说它看起来像这样:
[staticsan@walcen files]$ _
最大的问题是它只告诉你当前目录的名称。“files”可能就这么简单/var/www/files/
(/home/staticsan/files
这只是一个简单的例子)。完整路径更有意义,所以每次设置新框或创建新用户时,我都必须更改它。
那么为什么默认设置是这样的呢?
答案1
答案很简单——这是终端宽度为 80 个字符的时代的遗留。看看你自己的例子——用户名和主机已经占用了 16 个字符。加上额外的括号和空格,已经有 20 个字符了,而且我们还没有计算目录名。
而且目录的名称也可能很长。您的示例路径有 21 个字符,但只有三个目录深。在这种情况下,在 80 个字符的终端上,该提示将占据屏幕宽度的一半。
当然,如今的终端更宽了,这就是为什么许多用户和发行版都改用更长的提示符。但仍有一些使用较窄的提示符,以便为用户留出更多输入空间。
答案2
一个可能的答案是
[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 $] _
对你的工作来说会非常不方便
答案3
我不会回答该问题的“为什么”部分。
但我会给你一个提示,告诉你如何改变你未来所有用户帐户的默认行为:
您可以通过更改 /etc/skel/ 中的文件来更改创建用户时使用的默认文件(以及文件布局)。
因此,更改 /etc/skel/.bashrc 中的 PS1 变量,它将成为新用户的默认设置。
答案4
我进入我的/etc/skel
并将默认提示编辑为以下内容:
\[\033[33m\][\u@\[\033[1;31m\]\h]\]\033[0m {\W}\n\033[1;34m\]\w\]\033[0m >
它看起来像这样:
[user@hosts] {currentdir}
/path/to/current/dir >
加上颜色——因为我喜欢颜色:)
但确实如此——“为什么”与小型终端有关,而且现在缺乏改变现状的意愿。
更新无色
[\u@\h] {\W}\n\w >