备注:博客总结借鉴于马哥课堂笔记

时间:2015.09.07

                                                                       linux_bash环境变量

bash解释

bash可以是一个命令语言解释器

bash环境配置:
    配置文件,从生效范围可分为两类
        全局配置:对所有所有用户bash都生效的
            /etc/profile, /etc/profile.d/*.sh
            /etc/bashrc
        个人配置:只对当前的特定用户的bash生效
            ~/.bash_profile
            ~/.bashrc
按功能划分,存在两类:
   profile类:为交互式登录的shell提供配置
          /etc/profile,

         /etc/profile.d/*.sh
         ~/.bash_profile
功用:
         (1) 定义环境变量,例如PATH、PS1
         (2) 运行命令或脚本
   bashrc类:为非交互式登录shell提供配置
            /etc/bashrc
            ~/.bashrc

功用:
         (1) 定义命令别名;
         (2) 定义本地变量;

变量:内存空间,变量名;可变化的量

类型:
环境变量:作用范围当前shell进程及其子进程

本地变量:作用范围当前shell进程

局部变量:作用范围仅为当前shell进程中某代码片断(通常为函数上下文)
 位置变量:$1, $2
 特殊变量:$?
变量定义方式:
            bash内置变量:可直接调用,内置了许多环境变量,例如PATH等
            自定义变量:
            变量赋值:变量名=值
bash弱类型:
           变量存储数据时,默认均采用字符形式;任何变量可以不经声明,直接引用;
            120:24bits
            120: 8bits
定义本地变量:

定义变量 name=value

进入下一个bash   bash

查看:set

详情见下图:

linux-bash环境变量_linux—bash

定义环境变量:
定义环境变量 export name=value或者使用declare -x name=value

查看环境变量有多少个使用:env, printenv, export

见下图:

linux-bash环境变量_linux—bash_02

撤消变量:
        unset name

见下图:

linux-bash环境变量_linux—bash_03

linux-bash环境变量_linux—bash_04

linux-bash环境变量_linux—bash_05

引用变量:
 ${name}, $name

linux-bash环境变量_linux—bash_06

bash中的引用符号:
'': 强引用,变量替换不会发生

"":弱引用,变量替换会发生

linux-bash环境变量_linux—bash_07

  ``: 命令引用

linux-bash环境变量_linux—bash_08

shell登录类型:
 交互式登录:
  直接通过终端进行的登录;
 通过su -l Username命令实现的用户切换;
非交互式登录:
  图形界面下打开的命令行窗口;
  执行脚本;
  su Username;
配置文件作用次序:
        交互式登录:
            /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非交互式登录:
            ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

次序越往后

编辑配置文件定义的新配置如何生效?
        (1) 重新登录;
        (2) 让当前shell进程去重新读取指定的配置文件;
            source /PATH/TO/SOMEFILE
            . /PATH/TO/SOMEFILE
            注意:副作用

    问题:

1、定义对所有用户都生效的别名?

 vim /etc/bashrc

linux-bash环境变量_linux—bash_09

linux-bash环境变量_linux—bash_10

2、如果仅需要PATH环境变量的修改仅对root用户生效,该如何操作?

vim ~/.bash_profile

linux-bash环境变量_linux—bash_11

linux-bash环境变量_linux—bash_12

好,就此完毕。