1. 1. Linux变量分为本地shell变量和环境变量,export是将本地shell变量导出为当前用户的环境变量 
  2.  
  3. 例如: 
  4.  
  5. var1=aaa 
  6.  
  7. $ echo $var1 
  8.  
  9. aaa 
  10.  
  11. $ set |grep 'var1' 
  12.  
  13. var1=aaa               #此时本地shell变量中已有var1 
  14.  
  15. $ env |grep 'var1' 
  16.  
  17.                        # 此时当前用户的环境变量中没有var1 
  18.  
  19. $ export var1 
  20.  
  21. $ env |grep 'var1' 
  22.  
  23. var1=aaa              # 通过export导出,用户环境变量也有var1了 
  24.  
  25. $ unset var1          # 取消var1变量,unset对用户变量和shell变量都生效 
  26.  
  27. $ set |grep 'var1' 
  28.  
  29.  
  30. $ env |grep 'var1' 
  31.  
  32.  
  33. var1=b 
  34.  
  35. $ echo $var1 
  36.  
  37.  
  38. $ set |grep 'var1' 
  39.  
  40. var1=b 
  41.  
  42. $ env |grep 'var1' 
  43.  
  44.  
  45. $ bash           #开启当前shell的一个子shell 
  46.  
  47. $ echo $var1 
  48.  
  49.                  #子shell并没有继承父shell的shell变量 
  50.  
  51. $ exit 
  52.  
  53. $ export var1 
  54.  
  55. $ bash;echo $var1 
  56.  
  57. $ b              #通过父shell的导出操作,其shell变量变成当前用户的变量,因此子shell也将会有用户变量 
  58.  
  59. $ readonly var1  # readonly 将var1变量设置为只读 
  60.  
  61. $ unset var1    # 因为设置了只读属性,无法取消 
  62.  
  63. bash: unset: var1: cannot unset: readonly variable 
  64.  
  65.  
  66. ####################################################### 
  67.  
  68. 最根本有效的方式是改变配置文件 
  69.  
  70. 用户登陆时会依次读取以下文件,某个不存在则会略过 
  71.  
  72. /etc/profile   ~/.bash_profile ~/.bash_login  ~/.profile ~/.bashrc /etc/bashrc 
  73.  
  74. 启动一个新shell时会读取 ~/.bashrc    /etc/bashrc