普通变量
赋值: var=123
取值: $var
取值并打印:echo $var
使用set查看当前系统的变量
环境变量
将普通变量变成环境变量
export var
变成环境变量之后会有继承性
比如var在当前shell中是生效的,值是12,那我们在这个终端的基础上再打开一个shell bash
然后使用pstree查看进程树:
bash是比较常用的一个shell,用户在登录的时候就会启用一个shell,那又开启了一个bash,
后边的bash就叫做前边bash的子进程
使用exit退出当前bash
------------------------------------------------
系统常用的环境变量(系统变量都是大写)
当前登录账户: echo $USER
当前账户的UID: echo $UID
登录账户的家目录: echo $HOME
主机名称 echo $HOSTNAME
当前的工作目录: echo $PWD
像[root@localhost /]这种格式的顺序,也是存在一个环境变量里面的叫做:PS1(一级提示符)
环境变量修改跟普通变量是一样的
或者你可以更凶残的:PS1=‘(*^__^*):‘当做提示符
那这是一级提示符,还有一些二级提示符:像大于号就是一个二级提示符,可以这样修改
ps2=‘-)‘
我们敲过的命令都会存储在系统中,并且默认最多1000个,这个默认的大小是存在histsize中的
echo $HISTSIZE
path变量
echo $PATH
存在这里的路径在使用的时候可以不使用绝对路径
修改方式1:直接复制一份然后修改,修改完成之后,添加的目录中的命令就可以直接使用
修改方式2:使用变量的方式修改,$PATH代表之前的值,后边跟要添加的值
---------------------------------------------------
环境变量配置文件
上面讲了这么多,当你退出这个账户再重新登录的时候发现这些变量都不生效了,无论是PS1 PS2 PATH var都已经回到了最初始的位置,如果想要永久的生效,必须要写到开机启动脚本里面
登录shell:登录一个shell的时候要写上用户名,会读取bashrc 和profile文件
非登录shell:不需要喽 会读取bashrc文件
bashrc文件有两个(~当前账户): /etc/bashrc和 ~/.bashrc
profile文件有两个: /etc/profile和~/.bash_profile
比如我们给每一个文件都编辑加上一行打印
事实证明:
打开一个非登录shell会执行bash文件
打开一个登录shell会执行bash和profile文件例如重新登录或者切换用户su -root
所以如何编写一个环境变量让他一直生效并且有继承性?
拿其中一个文件举例:
vim ~/.bashrc然后添加两行
var=100
export var
原文:http://www.cnblogs.com/itliucheng/p/5276894.html