Linux的环境变量不生效

一、定时任务无法加载系统的环境变量

系统环境变量生效顺序:

复制代码
1.首先读入的是全局环境变量设定目录/etc/profile,然后根据其内容读取额外的设定的文档,如 /etc/profile.d和/etc/inputrc

2.然后去用户家目录下,读取~/.bash_profile,否则读取~/.bash_login,再否则~/.profile,这三个文档设定基本上是一样的,存在读取优先关系

3.然后再去用户家目录下,读取~/.bashrc
1、linux配置定时任务的用户环境变量

在Linux系统中,执行定时任务时,默认加载的是用户环境变量 ~/.bashrc ,不会加载系统变量,而要使用系统变量,可以用如下方式:

复制代码
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

*/1  *  *  *  * root /root/xx.sh                           # 使用用户环境变量
*/1  *  *  *  * root source ~/.bashrc &&  /root/xx.sh      # 使用用户环境变量

*/1  *  *  *  * root source /etc/profile &&  /root/xx.sh   # 使用系统环境变量

在以上的配置中,定时任务只是默认加载当前用户的环境变量,即 所有的定时任务,默认使用 source ~/.bashrc 来加载执行后续命令的。

如果要加载 系统环境变量,则需指定加载系统变量文件,即 source /etc/profile 这段命令。 && 符号意思就是执行多个命令,这里是先加载系统环境变量,然后再执行 /root/xx.sh的命令。

二、Linux系统环境变量

1、现象:每次登陆系统时,都需要source /etc/profile

Linux每次进入都需要 source /etc/profile才能使用java命令,需要配置永久环境变量,修改etc目录下的bashrc文件,在最前面添加

复制代码
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_161 
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
相关推荐
小小管写大大码7 小时前
如何让vscode变得更智能?vscode接入claude实现自动编程
运维·ide·vscode·自动化·编辑器·ai编程·腾讯云ai代码助手
嵩山小老虎7 小时前
Windows 10/11 安装 WSL2 并配置 VSCode 开发环境(C 语言 / Linux API 适用)
linux·windows·vscode
Fleshy数模7 小时前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
zhang133830890757 小时前
CG-09H 超声波风速风向传感器 加热型 ABS材质 重量轻 没有机械部件
大数据·运维·网络·人工智能·自动化
a41324477 小时前
ubuntu 25 安装vllm
linux·服务器·ubuntu·vllm
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.9 小时前
Keepalived VIP迁移邮件告警配置指南
运维·服务器·笔记
物联网软硬件开发-轨物科技9 小时前
【轨物洞见】告别“被动维修”!预测性运维如何重塑老旧电站的资产价值?
运维·人工智能
程序员允诺9 小时前
[DevOps实战] 彻底解决依赖地狱:如何编译全静态、可移植的 Xorriso 工具
运维·devops
酣大智9 小时前
接口模式参数
运维·网络·网络协议·tcp/ip
一只自律的鸡9 小时前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug