No title

ref: https://blog.csdn.net/omaidb/article/details/120384944

Linux的PS1美化

PS1变量参考

字体颜色参考: https://www.ohyee.cc/post/note_bash_terminal
在这里插入图片描述
下面简单说说环境下默认的特殊符号所代表的意义:

\d :代表日期,格式为weekday month date,例如:”Mon Aug1”

\H:完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux

\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略 

\t :显示时间为24小时格式,如:HH:MM:SS 

\T :显示时间为12小时格式 

\A :显示时间为24小时格式:HH:MM 

\u :当前用户的账号名称

\v :BASH的版本信息

\w :完整的工作目录名称。家目录会以 ~代替

\W :利用basename取得工作目录名称,所以只会列出最后一个目录

\# :下达的第几个命令

\$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

变量 解释
\u: 显示当前用户账号
\h: 显示当前主机名
\W: 只显示当前路径最后一个目录
\w: 显示当前绝对路径(当前用户目录会以~代替)
$PWD: 显示当前全路径
$$: 显示命令行’$$’或者’#’符号
#: 下达的第几个命令
\d: 代表日期,格式为week day month date,例如:“MonAug1”
\t: 显示时间为24小时格式,如:HH:MM:SS
*\T: 显示时间为12小时格式
*\A: 显示时间为24小时格式:HH:MM
*\v: BASH的版本信息
1
2
3
4
5
6
# 一般颜色符是以[m\]结尾
## 主机名和用户名
export PS1="\[\e[42m\]\h\[\e[m\] \[\e[42m\]\u\[\e[m\] "

## 主机名
export PS1="\[\e[42m\]\h\[\e[m\] "

终端字体颜色

在这里插入图片描述

临时设定PS1

1
2
# 如
export PS1=’[\u@\h\w#]$‘

让PS1环境变量为每个用户永久生效

/etc/bashrc的最后一行添加上面PS1变量

让PS1环境变量为某个用户永久生效

就在那个用户的家目录下的.bashrc的最后一行添加上面PS1变量

linux启动后环境变量加载顺序

/etc/profile/etc/profile.d/*.sh~/.bash_profile~/.bashrc/etc/bashrc
Bash在显示PS1之前先执行PROMPT_COMMAND环境变量定义的内容.

PS1美化脚本

以下示例只适用于bash.
echo $STY的意思

建议将ps1美化脚本写在/etc/profile.d/ps1.sh中。

示例1:

1
export PS1='\[\033[01;35m\][\[\033[01;32m\]`echo $STY | cut -d . -f2`\h\[\033[01;31m\] \u \w\[\033[31m\]\[\033[01;35m\]]\[\033[01;36m\]\$\[\033[00m\] '

在这里插入图片描述

示例2:

1
export PS1='\n\e[1;37m[\e[m\e[1;32m\u\e[m\e[1;33m@\e[m\e[1;35m\H\e[m \e[4m`pwd`\e[m\e[1;37m] \[\e[1;33mWORK\e \e[m\e[1;36m\e[m\n\$'

在这里插入图片描述

示例3—显示上条命令的$?

1
export PS1='\n\e[1;37m[\e[m\e[1;32m\u\e[m\e[1;33m@\e[m\e[1;35m\H\e[m \e[4m\w\e[m\e[1;37m] \[\e[1;33m WORK\e \e[m\e[1;36m\e[m $(echo $?) \n\$'

在这里插入图片描述

zsh的PS1配置

参考:
https://blog.csdn.net/zxc3590235/article/details/109954843
https://blog.csdn.net/u014218108/article/details/51195582
zsh.zshrc会覆盖PS1配置,需要单独在~/.zshrc中配置。

1
2
3
4
5
6
7
# 编辑.zshrc
vim ~/.zshrc

# 将PS1内容复制进去

# 使PS1变量生效
source ~/.zshrc

PS1变量在线生成工具

https://ezprompt.net/