linux

Linux环境变量的设置

2021-02-12  本文已影响0人  刘小白DOER

    最近写shell脚本遇到环境变量的使用,比如echo $PATH输出默认路径,echo $HOME输出主目录,在实际项目中,可以把经常使用的目录写成环境变量,在shell脚本中直接使用。

    按变量的生存周期来划分,Linux变量可分为两类:

临时:使用export命令声明即可,变量在关闭shell时失效。下图为在terminal临时定义环境变量MYLOG是/root/log目录,然后再接下里直接可以使用这个环境变量。

永久:如果在关闭shell之后,或者电脑重启后这个环境变量依然失效呢,这个时候就需要修改配置文件,变量永久生效。

export  可以读取环境变量的值,后面加上变量可单独输出某个环境变量export $SHELL。

    永久环境变量配置文件又分为只能单个用户使用的用户环境变量,和所有用户使用的系统环境变量。

1、用户环境变量   .profile    .bashrc

    笔者查看root目录下有两个隐藏文件 .profile    .bashrc,可以直接其中一个文件末尾输入MYLOG=/root/log,然后重新打开shell或者 source ~/.bashrc  或者 . ~/.bashrc就可以了。

    profile 是某个用户唯一的用来设置环境变量的地方,bashrc是专门用来给 bash 做初始化的的环境设置。

        仔细观察文件,.profile文件的内容其实是判断 .bashrc存在,然后执行这个文件,.profile文件只在用户登录的时候读取一次,而/.bashrc会在每次运行Shell脚本的时候读取一次。笔者查看红帽系统还有.bash_profile文件,ubuntu则只有上诉两个文件。用户环境变量中,系统会首先读取~/.bash_profile文件,如果没有该文件则读取~/.bash_login,如果也没有该文件,则读取~/.profile,根据这些文件中内容再去读取~/.bashrc。

.bashrc里面有很重要的别名设置,比如下面的 ll   la l  快捷命令。

# some more ls aliases

alias ll='ls -alF'

alias la='ls -A'

alias l='ls -CF'

2、系统环境变量  /etc/environment   /etc/bash.bashrc    /etc/profile    /etc/profile.d

    在/etc/environment 或/etc/bash.bashrc 或/etc/profile  文件最后一行加上MYLOG=/root/log ,或者在或  /etc/profile.d目录下新建个sh文件写入MYLOG=/root/log ,然后重新打开shell就可以了。

    仔细观察文件/etc/profile,其实是判断/etc/bash.bashrc  和/etc/profile.d存在,然后执行文件/etc/bash.bashrc 和遍历执行/etc/profile.d目录中的sh文件。

       目前ubuntu的/etc/environment文件里面只有默认路径的内容: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

      接下来,在脚本中就可以直接用$MYLOG 来代替目录/root/log。

上面几个环境变量的设置文件是有执行顺序的:

1、/etc/environment

2、/etc/profile

3、/etc/bash.bashrc

4、/etc/profile.d/*.sh

5、~/.profile

6、~/.bashrc

上一篇下一篇

猜你喜欢

热点阅读