# Color the hostname
HOSTNAME=`hostname|sed -e 's/\..*$//'`
if [ $HOSTNAME = 'Caligula' ] || [ $HOSTNAME = 'Caligula.local' ]; then
export HOST_COLOR="\[\033[1;35m\]"
fi
if [ $HOSTNAME = 'drewble' ]; then
export HOST_COLOR="\[\033[1;34m\]"
fi
if [ $HOSTNAME = 'davinci' ]; then
export HOST_COLOR="\[\033[1;31m\]"
fi
# Color the colon red & capitalize hostname if root
COLON_COLOR='0m'
if [ ${UID} -eq 0 ]; then
COLON_COLOR='1;31m'
fi
if [ ${UID} -eq 0 ]; then
HOSTNAME="`echo $HOSTNAME|tr '[a-z]' '[A-Z]'`"
fi
# Set the actual prompt
PS1=`echo -ne "$HOST_COLOR$HOSTNAME\[\033[00m\]\[\e[$COLON_COLOR\]:\[\033[01;32m\]\w\[\033[00m\]\\[\033[01;33m\]\$\[\033[00m\] "`
我有一个
~/bin/setprompt
由 my 执行的脚本.bashrc
,其中包含:此脚本将提示设置为主机名,然后
:)
是最后一个命令是否成功以及:(
最后一个命令是否失败。我使用一个简单的两线:
或者
如果是根。人们看着我,好像我为使用两行提示而疯狂,但我讨厌只看到当前路径的最后一部分,而且我使用的路径太长而无法将整个内容与输入区。
然而,这是我见过的最棒的一个:
试一试。它提供了很好的信息,但它实际上会导致你的盒子上的负载增加,只需在提示符下按回车!
我是默认 Cygwin bash 提示符的粉丝:
或没有颜色:
好像:
这是我的(向右滚动查看更有趣的部分):
结果如下:
当我在Git 存储库中时:
我选择使用多个换行符和“水平标尺”来使扫描缓冲区更容易,因此长路径名不会将光标推到右侧太远。
我喜欢包括我的时间。给我一种
time
围绕我的命令的内置功能:虽然在看到其中一些之后,它让我想让我的更聪明一点!
类似于混沌的答案,我有点喜欢
这给了我
通过在第一行包含用户/主机,我可以在使用SCP或rsync将一些文件发送到该目录时轻松复制整个路径行。
在 ksh 中:
在我的 .profile 中,我设置了以下 var(所以这个 var 在每个会话中只设置一次,无论我做了多少 'su's:
在我的 .kshrc 我有:
我使用以下别名而不是“su”成为 root(kroot 是具有 ksh shell 而不是 sh (solaris) 或 bash (linux) 的 root 用户:
我还定义了这两个函数:
最后在 .kshrc 我有:
默认情况下,所有这一切都让我自动设置提示结束,以指示我是否是 root(如果我的父级是 root)、当前工作目录、主机名和最后一个进程的退出状态。提示删除主机名,将路径缩小到仅基本名称,并删除空格:
root/me 别名来自 Solaris 上的 pre-sudo 管理,旧习惯已经很难改掉。我怀疑这些天有人会实施完全相同的事情。即时更改功能和存在状态对我来说仍然很有价值。
我有一个简单的提示,但使用颜色来提供一些额外的信息:
每台机器上主机名的颜色(在这种情况下为drewble)是不同的——当我得到一台我正在使用的新机器时,我为那台机器选择任意颜色。这样,当我打开很多终端时,很容易判断它们是通过 SSH 连接到哪台机器上,并减少了我在错误机器上所犯的错误。此外,当我这样做时
sudo -s
,我将主机名全部大写并将冒号涂成红色,这再次通过明确您以 root 身份来减少错误。路径(~
在本例中是我的主目录)为亮绿色,这有助于分隔输出行;如果某些东西产生了大量的输出,那么很容易向上滚动并查看输出的开始位置。它不是 shell 提示,但它是一种可能符合您所要求的精神的自定义。
我设置了以下环境变量:
这样,如果我通过屏幕或其他方式打开多个终端,当它们相互破坏时我不会丢失历史记录。