在标准的Linux shell,bash中有几个缺省,我认为需要一些历史logging。 这个问题是关于提示。
在许多Linux发行版中,bash的默认提示是[\u@\h \W]\$
对于那些不能parsing的人来说,它对于一个典型的用户来说就像这样:
[staticsan@walcen files]$ _
最大的问题是它只告诉你当前目录的名字。 “文件”可以像/var/www/files/ as /home/staticsan/files简单(这就是一个简单的例子)。 一个完整的path更有意义,所以每次我设置一个新的盒子或创build一个新的用户,我必须改变它。
那么为什么默认设置是什么呢?
答案很简单 – 这是terminal80个字符宽的时代的遗迹。 看看你自己的例子 – 用户名和主机已占用16个字符。 有了额外的括号和空格,已经有20个字符了,而且我们还没有计算出目录名称。
目录也可以有很长的名字。 你的例子path计数21个字符,只有三个目录很深。 在这种情况下,在80个字符terminal上,提示将占用屏幕宽度的一半。
当然,今天的terminal更广泛,这就是为什么许多用户和发行人切换到更长的提示。 但是仍然有一些使用较窄的提示来给用户留下更多空间来input。
一个可能的答案是这样的
[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 $] _
对你来说是非常不方便的
我不会回答问题的“为什么”部分。
但是我会给你提示如何改变你所有未来的用户帐户的默认行为:
您可以通过更改/ etc / skel /文件中的文件来更改默认文件(和文件格式)
所以改变/etc/skel/.bashrc中的PS1variables,它将成为新用户的默认值。
我喜欢
PS1 =“\ h \ d \ t \ w \ n \ u>”
这导致:
myserver Mon Sep 07 07:43:11 / u08
root>
所以你得到主机名,date和时间,完整的path,然后用户名在一个新的行,提示。 这是为了尽量减less目录中的换行。 我整天都在进出箱子,所以我所能做的就是保持平稳。 我也有腻子设置logging一切。 我可以回去看看日志,看看我在做什么。 还可以方便地在一些terminal窗口中查明事件序列。
我已经进入我的/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 >
加上颜色 – 因为我喜欢颜色:)
但是,是的 – “为什么”与小docker有关,现在缺乏从现状转变的意愿。
更新没有颜色
[\u@\h] {\W}\n\w >