常用的系统环境变量
1.环境变量种类
根据变量的生命周期,变量可划分为永久和临时两种
永久类:操作系统中指定系统运行环境的参数,或应用程序中的配置文件的一些参数都属于永久生效
临时类:可使用export 声明,在关闭shell 时失效
ps:export 的作用是声明一个变量,使其进入子shell 后生效
2.设置环境变量
-
永久类,对所有用户生效 - 在/etc/profile 文件中添加变量
vim /etc/profile export JAVA_HOME=/opt/jdk1.8.0 source /etc/profile #让脚本立即生效,source可用 . 代替
-
永久类,对所有用户生效 - 在/etc/profile.d/ 目录下增加shell 脚本
vim /etc/profile.d/java.sh export JAVA_HOME=/opt/jdk1.8.0 export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH export PATH=$JAVA_HOME/bin:$PATH
-
永久类,对当前用户生效 - 在 .bash_profile 文件中添加变量
vim .bash_profile export HISTCONTROL=ignoreboth source .bash_profile
-
临时类,对当前shell 有效
export 变量名=变量值 export name="dawn" echo $name
总结:
.bashrc 和.bash_profile 以及/etc/bashrc 、/etc/profile 和/etc/profile.d 的区别
.bashrc:用户级的bash相关环境变量配置文件,只对当前用户有效,无需登录,主要通过当前用户运行命令行就会读取该文件
.bash_profile:用户级的环境变量配置文件,只对当前用户有效,用户登录后才能读取
/etc/bashrc:系统级的bash变量配置文件,所有用户运行bash,都会读取其中内容
/etc/profile:系统级的配置文件,对所有用户都有效
/etc/profile.d:存放应用程序所需的启动配置文件的目录,调用机制是/etc/profile 中使用了for 循环语句调用该目录下的脚本。相对/etc/profile 而言,更容易维护,不需要哪个环境变量,直接删除对应的脚本即可
3.查看环境变量
#查看所有的环境变量
[root@centos8 ~]#env
#查看单个环境变量,echo 查看,例如查看PATH
[root@centos8 ~]#echo $PATH
4.常用的系统环境变量
关于history 的相关系统环境变量
**HISTSIZE
**设置历史命令保存的最大数,默认是1000
**HISTCONTROL
**设置历史命令的保存方式,默认是 ignoredups ,表示忽略重复命令。除此之外,还有:
ignorespaces 忽略所有以空格开头的命令
ignoreboth ignoredups 和ignorespace 的组合
erasedups 删除历史记录中重复命令,相同的命令只保留最近的一个
ps:设置多个值,中间使用 :
连接
**HISTTIMEFORMAT
** 设置历史命令记录显示的格式
HISTTIMEFORMAT='%F %T ' #注意有个空格,展示记录时,日期与命令之间有空格分割。
HISTTIMEFORMAT="%F %T:`whoami` " #展示历史记录时,同时展示日期时间和操作者
命令提示符格式的系统环境变量-PS1
查看PS1 的格式
[root@centos8 ~]# echo $PS1
[\u@\h \W]\$
格式说明:
\d 表示日期,格式为weekday month date,例如:“Mon Aug 1”
\H 完整的主机名称
\h 取主机名称的第一个名称
\T 显示时间为12小时格式
\t 显示时间为12小时格式,如:HH:MM:SS
\A 显示时间为24小时格式,如:HH:MM
\u 当前用户的账号名称
\v bash的版本信息
\w 完整的工作目录名称。家目录会以 ~ 代替
\W 利用basename 取得工作目录名称,列出最后一个目录
\# 下达的第几个命令
\$ 提示字符,一般情况下,root用户是# ,普通用户是$
\e 控制符\033
持久保存提示符格式相关变量PS1的方式
#方式一 系统级,对所有用户有效
echo 'PS1="\[\e[1;36m\][\u\[\e[1;35m\]@\h \[\e[1;31m\]\W\e[1;36m]\$\[\e[0m\]' > /etc/profile.d/env.sh
#方式二 用户级,只对当前用户有效
vim .bashrc
PS1="\[\e[1;36m\][\u\[\e[1;35m\]@\h \[\e[1;31m\]\W\e[1;36m]\\$\[\e[0m\]"
其他常见的系统环境变量
LANG 设置语言的变量,默认是en_US.UTF-8,英语环境,编码格式是UTF-8。中文是zh_CN.UTF-8
HOSTNAME 主机名称
LOGNAME 当前用户的登录名称
HOME 当前用户主目录
MAIL 当前用户的邮件存放目录
SHELL 当前用户Shell 类型
PATH 决定了shell 可在哪些目录中寻找命令或程序
SHLVL shell 的嵌套层数,即深度
_ 下划线,表示前一个命令的最后一个参数