Linux 环境变量详解及实例

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

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

原文链接:http://www.cnblogs.com/oubo/archive/2012/05/10/2493882.html

原创文章,作者:TWLGJ,如若转载,请注明出处:http://www.wangzhanshi.com/n/7835.html

(0)
TWLGJ的头像TWLGJ
上一篇 2025年1月1日 16:32:06
下一篇 2025年1月1日 16:32:10

相关推荐

  • Linux 重命名命令自制详细介绍

    Linux 重命名命令 相比于Windows上的ren命名,Linux还真的是没有一个特定的重命名的命令。(虽然可以间接的使用mv来实现)。下面我就来自己写一个简单的重命名命令。 …

    Linux 2025年1月1日
  • linux 不改变目录结构移动 home 目录到新分区的操作方法

    问题提出 公司的开发测试服务器部署在阿里云, 阿里云给出的实例一般都是只有一个分区, 20G到40G的样子, 然后再买存储挂载到其他目录. 而 home 目录是在这个 20G 的跟…

    Linux 2025年1月1日
  • 浅谈Linux中ldconfig和ldd的用法

    ldd 查看程序依赖库 ldd 作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。 示例:查看test程序运行所依赖的库: /opt/app/…

    Linux 2025年1月1日
  • linux查看防火墙状态与开启关闭命令详解

    linux查看防火墙状态与开启关闭命令有以下两种方式: 一、service方式 查看防火墙状态: ? [root@centos6 ~]# service iptables stat…

    Linux 2025年1月1日
  • GNOME 搜索功能的一些小技巧

    你可能已经注意到,当你在 GNOME 菜单/活动区搜索某样东西时,它也会显示名称与搜索词相匹配的文件,以及已安装的应用。 Search in GNOME activities sh…

    2025年1月1日
  • Linux上读取或设置环境和shell变量的教程

    简介 当通过 shell 会话与服务器交互时,有许多信息会被 shell 编译以确定其行为和对资源的访问。其中一些设置包含在配置设置中,而其他一些则由用户输入确定。 Shell 跟…

    Linux 2024年12月17日
  • Linux中7个判断文件系统类型的方法

    文件通过文件系统在磁盘及分区上命名、存储、检索以及更新,文件系统是在磁盘上组织文件的方式。 文件系统分为两个部分:用户数据和元数据(文件名、创建时间、修改时间、大小以及目录层次结构…

    2025年1月1日
  • Linux的wget命令详解

    Linux wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。如果我们使用…

    Linux 2025年1月1日
  • Linux在服务器多节点下面实现快速查找日志

    Linux在服务器多节点下查找日志 最近在查找一个核心服务的后台日志,发现竟然部署了十几个节点,而且没使用ELK来做日志处理,所以查找日志非常不方便,不可能一个服务节点一个服务地找…

    Linux 2024年12月17日
  • linux下制作ISO文件

    linux下制作ISO文件有几种方法,分别如下: 1,从光盘中制作ISO文件 cp /dev/cdrom 路径/ISO 文件名 例子:cp /dev/cdrom /opt/mycd…

    Linux 2025年1月1日

发表回复

登录后才能评论