Linux 环境变量详解及实例

发布时间 - 2026-01-10 23:01:04    点击率:

Linux环境变量

~/.bash_profile && ~/.bashrc

用户登陆Linux操作系统的时候,"/etc/profile", "~/.bash_profile"等配置文件会被自动执行。

执行过程是这样的:

  1. 登陆Linux系统时,首先启动"/etc/profile",
  2. 然后启动用户目录下的"~/.bash_profile",
  3. 如果"~/.bash_login"和"~/.profile"文件存在的时候也会在执行。

下面看看"~/.bash_profile"文件里面有什么东西

$cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/home/work/local/python/lib/python2.6/site-packages/django/bin/:$HOME/bin:/home/work/local/mysql5/bin/;
LD_LIBRARY_PATH=/home/work/local/mysql5/lib/mysql
alias py='/home/work/local/python/bin/python'
export PATH LD_LIBRARY_PATH
unset USERNAME

可以看到~/.bash_profile文件先调用~/.bashrc,然后再把PATH和LD_LIBRARY_PATH加载。

环境变量相关配置文件

  • /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的设置文件中搜集shell的设置。
  • /etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取.
  • ~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
  • ~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时及每次打开新的shell时,该该文件被读。
  • ~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件。

/etc/profile是全局性的功能,其中设置的变量作用于所有用户,~/.bash_profile中设置的变量能继承/etc/profile中的变量并作用于用户。

  1. ~/.bash_profile 是交互式、login 方式进入 bash 运行的
  2. ~/.bashrc 是交互式 non-login 方式进入 bash 运行的

通常二者设置大致相同,所以通常前者会调用后者。

crontab执行环境

大家都知道crontab是个好东东,可以定时执行一些任务,帮助你监控系统状况,帮助你每天重复的做一些机械的事情。但是crontab有一个坏毛病,就是它总是不会缺省的从用户profile文件中读取环境变量参数,经常导致在手工执行某个脚本时是成功的,但是到crontab中试图让它定期执行时就是会出错

一般crontab无法运行的问题都是由环境变量在crontab中不一定可识别引起的。

在运行crontab的时候,是non_login方式调用程序的,此时~/.bash_profile并不会被提前调用。所以,crontab的运行环境相对于login方式进入bash运行的环境来说小得多。如果程序涉及~/.bash_profile使用的环境变量,那么,部分在login方式可以正常运行的程序在crontab下就无法运行。

终极推荐解决方案:

30 12 * * * source ~/.bashrc && cd /home/work/mydir && ./myproj

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Linux环境变量  # Linux环境变量详解  # Linux环境变量实例  # linux下配置jdk环境变量的三种方法总结  # Linux Shell脚本系列教程(三):变量和环境变量  # Linux Shell脚本系列教程(四):使用函数添加环境变量  # 浅析linux环境变量export命令详解  # 配置java环境变量(linux mac windows7)  # Linux下安装jdk1.8并配置环境变量的教程  # 在Linux操作系统中修改环境变量的方法  # Linux中修改环境变量及生效方法  # Linux中环境变量配置的步骤详解  # Linux环境变量配置的完整攻略  # 该文件  # 量能  # 配置文件  # 有什么  # 是个  # 运行环境  # 大家都  # 是这样  # 帮助你  # 是由  # 会在  # 希望能  # 得多  # 可以看到  # 时就  # 让它  # 谢谢大家  # 相对于  # 再把  # 用户登录 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何挑选高效建站主机与优质域名?  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  创业网站制作流程,创业网站可靠吗?  python中快速进行多个字符替换的方法小结  Laravel用户密码怎么加密_Laravel Hash门面使用教程  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  Laravel如何实现API资源集合?(Resource Collection教程)  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  Linux后台任务运行方法_nohup与&使用技巧【技巧】  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  七夕网站制作视频,七夕大促活动怎么报名?  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  黑客如何利用漏洞与弱口令入侵网站服务器?  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  打造顶配客厅影院,这份100寸电视推荐名单请查收  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  IOS倒计时设置UIButton标题title的抖动问题  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  Laravel如何配置和使用缓存?(Redis代码示例)  如何快速搭建虚拟主机网站?新手必看指南  UC浏览器如何设置启动页 UC浏览器启动页设置方法  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  轻松掌握MySQL函数中的last_insert_id()  如何在自有机房高效搭建专业网站?  如何在云主机上快速搭建网站?  高防服务器:AI智能防御DDoS攻击与数据安全保障  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  教学论文网站制作软件有哪些,写论文用什么软件 ?  Python文件流缓冲机制_IO性能解析【教程】  javascript中对象的定义、使用以及对象和原型链操作小结  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Linux安全能力提升路径_长期防护思维说明【指导】  如何在腾讯云服务器快速搭建个人网站?  浅析上传头像示例及其注意事项  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  Android okhttputils现在进度显示实例代码  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  Python文本处理实践_日志清洗解析【指导】