码迷,mamicode.com
首页 > 其他好文 > 详细

bash 环境变量

时间:2015-09-07 07:12:15      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:bash 环境变量 bashrc profile

bash环境配置:


配置文件:

 生效范围划分,存在两类:

  全局配置:

   /etc/profile,/etc/profile.d/*.sh

   /etc/bashrc

  个人配置:

   ~/.bash_profile

   ~/.bashrc


按功能划分,存在两类:

  profile类:

   为交互式登录的shell提供配置

    /etc/profile,/etc/profile.d/*.sh

    ~/.bash_profile


  功用:

   1 定义环境变量,例如PATH,PS1

   2 运行命令或脚本


 bashrc类:

  为非交互式登录shell提供配置

   /etc/bashrc

   ~/.bashrc


  功用:

   定义命令别名

   定义本地变量


变量:内存空间,变量名

 类型:

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

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

  局部变量 作用范围 仅为当前shell进程中某代码片断(通常为函数上下文)


  位置变量 $1 $2

  特殊变量 $?


 变量定义方式:

   bash内置变量:可直接调用,内置了许多环境变量,例如:PATH等

 自定义变量:

   变量赋值: 变量=值


 bash弱类型:

  变量存储数据时,默认均采用字符形式;任何变量可以不经声明,直接引用


 定义本地变量:

  name=value

  查看 set

 

 定义环境变量

  export name=value

  declare -x name=value

  查看 env, printenv,export


 撤销变量:

  unset name


 引用变量:

  ${name}, $name


  bash中的引用符号:

   ‘‘:强引用,变量不会被替换

   "":弱引用

   ``:命令引用, 把一个命令的执行结果直接引用 例如:ls -l `which cat`



 shell登录类型:

  交互式登录

   直接通过终端使用账号密码进行的登录;

   通过su - l USERNAME 命令实现的用户切换

  非交互式登录

   图形界面下打开的命令行窗口;

   执行脚本;

   su USERNAME命令;


 配置文件作用次序

  生效的变量是最后出现的变量

  交互式登录:

   /etc/profile ---> /etc/profile.d/*.sh ---> ~/.bash_profile --> /etc/bashrc

  非交互式登录:

   ~/.bash --> /etc/bashrc/ --> /etc/profile.d/*.sh


 编辑的配置文件定义的新配置如何生效

  1 重新登陆

  2 让当前shell去重新读取指定的配置文件

   source /PATH/TO/SOMEFILE

   . /PATH/TO/SOMEFILE

  注意:副作用  读两遍后,环境变量在PATH出现两遍



问题:

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

    通过编辑/etc/bashrc文件添加别名设置,将会对所有用户生效。

    技术分享

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

    通过编辑root用户家目录下.bash_profile文件设置只对root用户生效的环境变量

    技术分享


如有错误,敬请指正!

谢谢!

bash 环境变量

标签:bash 环境变量 bashrc profile

原文地址:http://rogerwang.blog.51cto.com/5326353/1692037

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!