有哪些信息丰富且有用的 shell 提示符?(Bash、csh、ksh 等)

有哪些信息丰富且有用的 shell 提示符?(Bash、csh、ksh 等)

我最喜欢的 Mac OS X 之一终端提示涉及使用以下代码将最后运行的进程添加到终端标题中.bashrc

trap 'printf "\033]0;  `history 1 | cut -b8-`  \007"' DEBUG

现在我想将我的 Bash 提示符从默认的自定义为更具功能性的提示符。有哪些有用的 shell 提示符示例?

答案1

我使用一个简单的双行代码:

[\w]\n\u@\h>

或者

[\w]\n\u@\h#

如果是 root 用户。人们看着我,好像我疯了一样,因为我使用了两行提示符,但是我只能看到当前路径的最后一部分,并且我处理的路径太长,无法将整个路径放在与输入区域同一行上。

答案2

~/bin/setprompt我有一个由我的执行的脚本.bashrc,其中包含:

RESET="\[\017\]"
NORMAL="\[\033[0m\]"
RED="\[\033[31;1m\]"
YELLOW="\[\033[33;1m\]"
WHITE="\[\033[37;1m\]"
SMILEY="${WHITE}:)${NORMAL}"
FROWNY="${RED}:(${NORMAL}"
SELECT="if [ \$? = 0 ]; then echo \"${SMILEY}\"; else echo \"${FROWNY}\"; fi"

# Throw it all together 
PS1="${RESET}${YELLOW}\h${NORMAL} \`${SELECT}\` ${YELLOW}>${NORMAL} "

此脚本将提示设置为主机名,后跟上:)一个命令是否成功以及:(上一个命令是否失败。

答案3

然而,这是我见过的最棒的一个:

PS1='\[\033[0m\]\[\033[0;31m\].:\[\033[0m\]\[\033[1;30m\][\[\033[0m\]\[\033[0;28m\]Managing \033[1;31m\]\j\[\033[0m\]\[\033[1;30m\]/\[\033[0m\]\[\033[1;31m\]$(ps ax | wc -l | tr -d '\'' '\'')\[\033[0m\]\[\033[1;30m\] \[\033[0m\]\[\033[0;28m\]jobs.\[\033[0m\]\[\033[1;30m\]] [\[\033[0m\]\[\033[0;28m\]CPU Load: \[\033[0m\]\[\033[1;31m\]$(temp=$(cat /proc/loadavg) && echo ${temp%% *}) \[\033[0m\]\[\033[0;28m\]Uptime: \[\033[0m\]\[\033[1;31m\]$(temp=$(cat /proc/uptime) && upSec=${temp%%.*} ; let secs=$((${upSec}%60)) ; let mins=$((${upSec}/60%60)) ; let hours=$((${upSec}/3600%24)) ; let days=$((${upSec}/86400)) ; if [ ${days} -ne 0 ]; then echo -n ${days}d; fi ; echo -n ${hours}h${mins}m)\[\033[0m\]\[\033[1;30m\]]\[\033[0m\]\[\033[0;31m\]:.\n\[\033[0m\]\[\033[0;31m\].:\[\033[0m\]\[\033[1;30m\][\[\033[0m\]\[\033[1;31m\]$(ls -l | grep "^-" | wc -l | tr -d " ") \[\033[0m\]\[\033[0;28m\]files using \[\033[0m\]\[\033[1;31m\]$(ls --si -s | head -1 | awk '\''{print $2}'\'')\[\033[0m\]\[\033[1;30m\]] [\[\033[0m\]\[\033[1;31m\]\u\[\033[0m\]\[\033[0;31m\]@\[\033[0m\]\[\033[1;31m\]\h \[\033[0m\]\[\033[1;34m\]\w\[\033[0m\]\[\033[1;30m\]]\[\033[0m\]\[\033[0;31m\]:.\n\[\033[0m\]\[\033[0;31m\].:\[\033[0m\]\[\033[1;30m\][\[\033[0m\]\[\033[1;31m\]\t\[\033[0m\]\[\033[1;30m\]]\[\033[0m\]\[\033[0;31m\]:. \[\033[0m\]\[\033[1;37m\]$ \[\033[0m\]'

试一试。它提供了很好的信息,但实际上,只要在提示符下按 Enter 键,就会增加您的机器的负载!

答案4

我喜欢在命令中包含时间。它为我的命令提供了一种内置功能time

PS1="[\t \u@\h:\w]$ "

但是看过其中的一些之后,我还是想让自己变得更聪明一些!

相关内容