Linux的PS1美化
PS1变量参考
字体颜色
参考: https://www.ohyee.cc/post/note_bash_terminal
变量 | 解释 |
---|---|
\u: | 显示当前用户账号 |
\h: | 显示当前主机名 |
\W: | 只显示当前路径最后一个目录 |
\w: | 显示当前绝对路径(当前用户目录会以~代替) |
$PWD: | 显示当前全路径 |
$$: | 显示命令行’$$'或者’#'符号 |
#: | 下达的第几个命令 |
\d: | 代表日期,格式为week day month date,例如:“MonAug1” |
\t: | 显示时间为24小时格式,如:HH:MM:SS |
*\T: | 显示时间为12小时格式 |
*\A: | 显示时间为24小时格式:HH:MM |
*\v: | BASH的版本信息 |
# 一般颜色符是以[m\]结尾
## 主机名和用户名
export PS1="\[\e[42m\]\h\[\e[m\] \[\e[42m\]\u\[\e[m\] "
## 主机名
export PS1="\[\e[42m\]\h\[\e[m\] "
终端字体颜色
临时设定PS1
# 如
export PS1=’[\u@\h\w#]$‘
让PS1环境变量为每个用户永久生效
在/etc/bashrc
的最后一行添加上面PS1
变量
让PS1环境变量为某个用户永久生效
就在那个用户的家目录下的.bashrc
的最后一行添加上面PS1
变量
linux启动后环境变量加载顺序
https://blog.csdn.net/omaidb/article/details/116019501
/etc/profile
→ /etc/profile.d/*.sh
→ ~/.bash_profile
→ ~/.bashrc
→ /etc/bashrc
Bash
在显示PS1
之前先执行PROMPT_COMMAND环境变量定义的内容
.
PS1美化脚本
以下示例只适用于bash
.
echo $STY的意思 : 获取screen
等会话保持
的会话ID
。
建议将ps1美化脚本
写在/etc/profile.d/ps1.sh
中。
可以参考博主的gitcode代码仓库
,里面有最新最好看好用的ps1.sh
配置
https://gitcode.com/liqiaofei/Linux_ps1
示例1: 以~
显示home
# \u 表示当前用户的用户名。
# $(echo $STY | cut -d . -f2) 表示获取当前 screen 会话的编号,并去掉前缀部分,只保留编号部分。
# \h 表示主机名。
# \w 表示当前目录的完整路径。
# ${PIPESTATUS[0]} 表示最近一条命令执行后的退出状态码。
PS1='\[\033[01;35m\][\[\033[01;32m\]\u\[\033[01;32m\]$(echo $STY | cut -d . -f2)\[\033[01;35m\] \[\033[01;35m\]\[\033[01;35m\]\h\[\033[01;35m\] \[\033[38;5;39m\]\w\[\033[31m\]] \[\033[38;5;221m\]WORK \[\033[1;37m\]${PIPESTATUS[0]}\[\033[01;36m\] \n# \[\033[00m\]'
# 声明全局变量
export PS1
示例2: 以绝对路径
显示PWD
,且以终端颜色
显示路径
PS1='\[\033[01;35m\][\[\033[01;32m\]\u\[\033[01;32m\]$(echo $STY | cut -d . -f2)\[\033[01;35m\] \[\033[01;35m\]\[\033[01;35m\]\h\[\033[01;35m\] \[$(tput setaf 0)\]$(pwd)] \[\033[38;5;221m\]WORK \[\033[1;37m\]${PIPESTATUS[0]}\[\033[01;36m\] \n# \[\033[00m\]'
# 声明全局变量
export PS1
示例3: 以绝对路径
显示PWD
,且以蓝色
显示路径
# 下载ps1变量
wget -cP /etc/profile.d https://raw.gitcode.com/liqiaofei/profile.d/raw/main/ps1.sh
配置内容如下:
PS1='\[\033[01;35m\][\[\033[01;32m\]\u\[\033[01;32m\]$(echo $STY | cut -d . -f2)\[\033[01;35m\] \[\033[01;35m\]\[\033[01;35m\]\h\[\033[01;35m\] \[\033[38;5;39m\]$(pwd)\[\033[31m\]] \[\033[38;5;221m\]WORK \[\033[1;37m\]${PIPESTATUS[0]}\[\033[01;36m\] \n# \[\033[00m\]'
# 声明全局变量
export PS1
zsh的PS1配置
参考:
https://blog.csdn.net/zxc3590235/article/details/109954843
https://blog.csdn.net/u014218108/article/details/51195582
zsh
的.zshrc
会覆盖PS1
配置,需要单独在~/.zshrc
中配置。
# 编辑.zshrc
vim ~/.zshrc
# 将PS1内容复制进去
# 使PS1变量生效
source ~/.zshrc