为什么bash在linux / unix的不同版本中看起来有所不同?

时间:2011-08-24 10:55:21

标签: linux bash unix shell command-line

我正在一台运行CentOS的服务器上做一些工作,而且提示与Ubuntu bash命令行不同。我最初认为它是一个不同的外壳,但echo $SHELL告诉我它仍然是bash。

我主要想知道这是否是配置,以及设置的位置,例如,我的ubuntu bash提示符:

tom@tom-PC:~$

与CentOS bash命令提示符进行比较:

[root@server217-174-254-199 ~]#

除了机器名称和用户的显着差异(以及以root用户身份登录引起的#)之后,CentOS在用户@机器周围[〜],而ubuntu更喜欢简单:〜提示之前

3 个答案:

答案 0 :(得分:4)

这是一个品味问题:每个人都可以使用env-variable PS1配置他的PROMPT-line。

例如:

PS1='\u@\h:\w$'

给出

user@host:directory$

而你的家庭目录的目录是'〜'。

答案 1 :(得分:1)

这样看起来就像这样:

glglgl@schleppiSB [1314183327: Wed Aug 24 2011 12:55:27, 9/62261] 
 -0  0  ~/p> 

即使颜色很好。为什么?因为我的~/.bashrc包含

PS1='\e[1;32;44m\u\e[1;30m@\e[1;34m\h\e[0m [\e[1;43;33m$(shellprompttemp=$?; LANG=C date +"%s: %a %b %d %Y"; exit $shellprompttemp)\e[1;37m \t\e[0m, \e[1;35m\#\e[0m/\e[1;36m\!\e[0m] \e[1;31;7m${?/#0}\e[0m\e[0m\n$(hg prompt '\''{\e[41;37mhg: {status}\e[0m\n}'\'' 2>/dev/null; dirs -p -v | tac | awk '\''{ $0=sprintf("%2d %s",NR-1,$0); sub(/^ */,"&-"); print; }'\'')> '

使用PS1,您可以完全控制提示的外观。您可以使用man bash部分PROMPTING获得更多信息。

答案 2 :(得分:1)

针对不同的用户群预先配置了不同的发行版。在桌面上,您主要希望看到一个简单的提示,也许是当前目录;对于服务器发行版,每个服务器上的提示与其他服务器不同是很有用的,这样您就可以一目了然地告诉您登录的位置(管理员通常同时登录多个服务器) 。除此之外,它只是一个品味的问题,通常是你的发行版的Bash维护者的味道。开箱即用,Bash中的默认提示只是bash$(当您以root身份登录时,美元符号将替换为井号)。