美文网首页
第六章 使用Linux环境变量

第六章 使用Linux环境变量

作者: 1e42ed00ff39 | 来源:发表于2017-08-07 22:22 被阅读92次

    本章内容:

    什么是环境变量

    创建自己的局部变量

    删除环境变量

    默认shell环境变量

    设置PATH环境变量

    定位环境文件

    数组变量

    很多程序和脚本都通过环境变量来获取系统信息.存储临时数据和配置信息,

    本章: 存储在哪里, 怎样使用, 以及怎样创建自己的环境变量

    6.1 什么是环境变量


    bash shell用一个叫做环境变量的特性来存储有关shell会话和工作环境的信息

    全局变量和局部变量

    6.1.1 全局环境变量(对shell会话和所有生成的子shell可见)


    全局环境变量: 对所有shell会话和所有生成的子shell可见

    局部变量: 只对创建它们的shell可见(子shell)

    $ printenv

    //显示所有的全局环境变量

    $ printenv HOME

    $ echo $HOME

    $ ls $HOME //显示HOME列表当前的

    全局变量可以用在所有的子shell中,比如

    $bash

    $ echo $HOME

    6.1.2 局部环境变量(对当前的shell以及以后的shell保持可见)


    $ set 显示全局变量和局部变量以及用户变量

    6.2 设置用户定义变量


    6.2.1 设置局部用户定义变量


    $ my_variable=Hello

    $ echo $my_variable //显示用户定义的变量,只能在当前的shell程序里面访问

    $ my_variable=“Hello World”

    $ echo $my_variable

    注: 定义局部变量用小写, 定义全局变量用的是大写

    2)生成的子shell无法访问当前的局部变量

    6.2.2 设置全局环境变量


    $ my_variable=“I am Global now”

    $ export my_variable//导出为全局变量, 注意前面没有$

    $ bash

    $ echo $my_variable //可以在子shell里面访问

    //在子shell里面修改全局变量对于全局变量没有影响

    6.3 删除环境变量


    创建新的环境变量, 当然也可以删除已经存在的环境变量

    可以用unset操作

    $ echo $my_variable

    $ unset my_variable//前面不需要加$

    //输出my_variable

    $ echo $my_variable

    注: 在子进程中删除了一个全局环境变量,这只对子进程有效. 该全局环境变量在父进程中依然可用

    6.4 默认的shell环境变量


    Page 111

    6.5 设置PATH环境变量


    在shell命令行界面中输入一个外部命令(/usr/bin/ls)

    使用$ echo $PATH 获取绝对路径,否则无法使用

    $ myprog //将无法出现

    $ echo $PATH

    $ PATH=$PATH:/home/christine/Scripts

    //设置一个新的PATH就可以直接使用新的环境变量

    注: 对PATH的变量修改只能持续到退出或重启系统

    6.6 定位系统环境变量


    让环境变量持久化, 登入Linux系统启动了一个bash shell,默认情况bash会在几个文件里查找命令。这些文件叫做启动文件或环境文件. bash检查的启动文件取决于你启动bash shell的方式。启动bash shell有三种方式

    1)登录时作为默认登陆的shell

    2)作为非登陆shell的交互式shell

    3)作为运行脚本的非交互shell

    6.6.1 登陆shell


    1)登录Linux系统 -> bash shell作为登陆shell启动 -> 登陆shell从5个不同的启动文件里读取命令

    /etc/profile;$HOME/.bash_profile; $HOME/.bashrc; $HOME/.bash_login; $HOME/.profile

    注意: /etc/profile 是Linux启动时候默认的启动的shell

    /etc/profile文件

    $ cat /etc/profile

    2.$HOME目录下的启动文件

    $HOME/.bash_profile

    $HOME/.bashrc

    $HOME/.bash_login

    $HOME/.profile

    6.6.2 交互式shell进程


    如果你的bash shell不是登陆系统时候默认启动的, 不会访问 /etc/profile

    $ cat .bashrc

    6.6.3 非交互式shell


    6.7 数组变量


    可以存储多个值的变量

    $ mytest = (one two three four five)

    $ echo mytest: 只会输出 one

    $ echo ${mytest[*]}输出整个数组

    $ mytest[2]=seven改变数组的数值

    使用unset删除数组比较麻烦.依然能输出空值

    相关文章

      网友评论

          本文标题:第六章 使用Linux环境变量

          本文链接:https://www.haomeiwen.com/subject/kbkzlxtx.html