当前位置 主页 > 服务器问题 > Linux/apache问题 > 最大化 缩小

    浅析linux环境变量export命令详解(2)

    栏目:Linux/apache问题 时间:2019-10-14 09:11

    可以看到灰色部分有设置的路径,说明环境变量已经设好,PATH里面已经有了我要加的编译器的路径。

    2、修改profile文件:

    #vi /etc/profile

    在里面加入:

    export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

    3. 修改.bashrc文件:

    # vi /root/.bashrc

    在里面加入:

    export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

    后两种方法一般需要重新注销系统才能生效,最后可以通过echo命令测试一下:

    # echo $PATH
    

    看看输出里面是不是已经有了 /my_new_path这个路径了。

    另有:4. 修改/etc/re.local文件:
                

    # vi /etc/re.local
    

    在里面加入:      

     export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

    -----------------------------------------------------------------------------------------------------------------------

    “/bin”、“/sbin”、“ /usr/bin”、“/usr/sbin”、“/usr/local/bin”等路径已经在系统环境变量中了,如果可执行文件在这几个标准位置,在终端命令行输入该软件可执行文件的文件名和参数(如果需要参数),回车即可。

    如果不在标准位置,文件名前面需要加上完整的路径。不过每次都这样跑就太麻烦了,一个“一劳永逸”的办法是把这个路径加入环境变量。命令 export $PATH="路径”(或“PATH=$PATH:路径”) ($PATH为环境变量名,如DVSDK;调用时用$DVSDK)可以把这个路径加入环境变量,但是退出这个命令行就失效了。要想永久生效,需要把这行添加到环境变量文件里。有两个文件可选:“/etc/profile”和用户主目录下的“.bash_profile”,“/etc/profile”对系统里所有用户都有效,用户主目录下的“.bash_profile”只对这个用户有效。

    export $PATH="$PATH:路径1:路径2:...:路径n” (或“PATH=$PATH:路径1:路径2:...:路径n" ),意思是可执行文件的路径包括原先设定的路径,也包括从“路径1”到“路径n”的所有路径。当用户输入一个一串字符并按回车后,shell会依次在这些路径里找对应的可执行文件并交给系统核心执行。那个“$PATH”表示原先设定的路径仍然有效,注意不要漏掉。某些软件可能还有“PATH”以外类型的环境变量需要添加,但方法与此相同,并且也需要注意“$”。

    注意,与DOS/Window不同,UNIX类系统环境变量中路径名用冒号分隔,不是分号。另外,软件越装越多,环境变量越添越多,为了避免造成混乱,建议所有语句都添加在文件结尾,按软件的安装顺序添加。

    格式如下():

    # 软件名-版本号

    PATH=$PATH:路径1:路径 2:...:路径n

    其他环境变量=$其他环境变量:...

    在“profile”和“.bash_profile”中,“#”是注释符号,写在这里除了视觉分隔外没有任何效果。

    设置完毕,注销并重新登录,设置就生效了。如果不注销,直接在shell里执行这些语句,也能生效,但是作用范围只限于执行了这些语句的shell。

    相关的环境变量生效后,就不必老跑到软件的可执行文件目录里去操作了。

    ----------------------------------------------------------------------------------------------------------------------- 

    执行一个脚本时,会先开启一个子shell环境(不知道执行其它程序是不是这样),然后将父shell中的所有系统环境变量复制过来,这个脚本中的语句就在子shell中执行。(也就是说父shell的环境变量在子shell中可以调用,但反过来就不行,如果在子shell中定义了环境变量,则只对该shell或者它的子shell有效,当该子shell结束时,也可以理解为脚本执行完时,变量消失。)为了证明这一点,请看脚本内容: