linux 变量、环境变量、 export source的作用、login shell与non-login shell

  • export
    • export来使变量变为环境变量,因为普通变量不能跨进程,所以通常用export使变量达到进程间可见;还有一个经常见的例子,拓展PATH变量
[root@localhost ~]# myname=myvalue //普通变量
[root@localhost ~]# echo $myname
myvalue
[root@localhost ~]# sh //sh开启了新的shell,也就是开了新进程,
sh-4.4# echo $myname //myname变量在子进程中不可见,所以没有值

 [root@localhost ~]# export myname  //export为环境变量后
[root@localhost ~]# sh
sh-4.4# echo $myname//子进程中可见了
myvalue

export PATH=$PATH:/usr/local/openresty/nginx/sbin
  • source
    source 或者 . (英文点号)在当前shell环境中,读取并执行文件中的命令,如果脚本中有环境变量,通常衍生为环境变量立刻生效。

  • login shell和non-login shell

    • login shell就是需要输入用户名、密码才能使用的shell;
    • non-login shell就是不需要输入用户名、密码的shell;比如登录后,启动的shell就是非login shell;登录后,使用sh命令开启的shell就是non-login shell。

除了这个差别,他们最大的差别是在读取的环境配置文件不一样,login shell会陆续读取/etc/profile~/.bash_profile,而non-login shell只读取~/.bashrc,援引鸟哥私房菜图片
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wangjun5159/article/details/131120565