华为欧拉系统的欢迎讯息
华为EulerOS系统中的欢迎讯息是通过/etc/profile文件来定义和设置的。该文件会在用户登录后读取并执行。
EulerOS的/etc/profile文件中定义了prompt函数来设置PS1提示符,并通过PROMPT_COMMAND在显示提示符前打印欢迎讯息。具体内容如下:
bash
# PROMPT SETTINGS
prompt() {
local status_prompt
if [ $UID -eq 0 ]; then
status_prompt='# '
else
status_prompt='$ '
fi
PS1="${blue}${status_prompt}${green}[\u@\h \W]\$binom{cwd}{40}${reset} "
}
# MESSAGE BEFORE PROMPT
PROMPT_COMMAND='echo -e "\n\t ------------------- \n\t| Welcome to EulerOS! |\n\t ------------------- \n"'
# Enable prompt command.
prompt
这里PROMPT_COMMAND使用echo命令打印欢迎讯息,包括:
-------------------
| Welcome to EulerOS! |
-------------------
prompt函数则设置PS1提示符,当用户为root时显示#,否则显示$。并显示当前用户名、主机名和工作目录等信息。
通过这种方式,在EulerOS的bash shell中实现了登录后的欢迎讯息显示。如果要自定义此欢迎讯息,可以直接编辑/etc/profile文件,修改PROMPT_COMMAND的内容即可。
除/etc/profile文件外,EulerOS还有/etc/bashrc文件,但该文件更加关注bash shell的个性化配置,而不是登录后的欢迎或提示显示。所以在EulerOS定制登录欢迎讯息,主要还是修改/etc/profile文件。
cat /etc/bashrc
bash
# MESSAGE BEFORE PROMPT
PROMPT_COMMAND='echo -e "\n\t ------------------- \n\t| Welcome to openEuler! |\n\t ------------------- \n\n"'
# Enable prompt command.
prompt() {
PS1="[\u@\h \W]\$ "
}
prompt
# are we an interactive shell?
if [ "$PS1" ]; then
if [ -z "$PROMPT_COMMAND" ]; then
case $TERM in
xterm*|vte*)
if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
else
PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
fi
;;
screen*)
if [ -e /etc/sysconfig/bash-prompt-screen ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
else
PROMPT_COMMAND='printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
fi
;;
*)
[ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default
;;
esac
fi
# Turn on parallel history
shopt -s histappend
history -a