linux环境变量

作者: Songe_ | 来源:发表于2017-06-26 20:11 被阅读0次

linux登陆环境变量初始化顺序

/etc/profile-->/.bash_profile-->/.bash_login-->~/.profile

参考:

   A  login  shell  is  one whose first character of argument
   zero is a -, or one started with the --login option.

   An interactive shell is  one  started  without  non-option
   arguments  and  without the -c option whose standard input
   and error are both connected to terminals  (as  determined
   by  isatty(3)), or one started with the -i option.  PS1 is
   set and $- includes i if bash is interactive,  allowing  a
   shell script or a startup file to test this state.

   The  following  paragraphs  describe how bash executes its
   startup files.  If any of the files exist  but  cannot  be
   read,  bash reports an error.  Tildes are expanded in file
   names as described below  under  Tilde  Expansion  in  the
   EXPANSION section.

   When  bash is invoked as an interactive login shell, or as
   a non-interactive shell with the --login option, it  first
   reads and executes commands from the file /etc/profile, if
   that file exists.  After reading that file, it  looks  for
   ~/.bash_profile,  ~/.bash_login,  and  ~/.profile, in that
   order, and reads and executes commands from the first  one
   that  exists  and is readable.  The --noprofile option may
   be used when the shell is started to inhibit  this  behav­
   ior.

   When a login shell exits, bash reads and executes commands
   from the file ~/.bash_logout, if it exists.

   When an interactive shell that is not  a  login  shell  is
   started,  bash reads and executes commands from ~/.bashrc,
   if that file exists.  This may be inhibited by  using  the
   --norc  option.   The --rcfile file option will force bash
   to  read  and  execute  commands  from  file  instead   of
   ~/.bashrc.

   When  bash  is  started  non-interactively, to run a shell
   script, for example, it looks for the variable BASH_ENV in
   the  environment,  expands  its value if it appears there,
   and uses the expanded value as the name of a file to  read
   and  execute.   Bash  behaves  as if the following command
   were executed:
          if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
   but the value of the PATH variable is not used  to  search
   for the file name.

Part two

用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。此时,系统中将有两个shell,一个是登录时系统启动的shell,另一个是系统为运行脚本程序创建的shell。当一个脚本程序运行完毕,它的脚本shell将终止,可以返回到执行该脚本之前的shell。
我们可以在脚本中通过命令export将变量输出到任何子shell;而通过source命令(.命令),可以执行shell脚本,并同时将脚本中的变量输出到当前shell。

Tips

  1. 有时,我们在crontab上定时调用在脚本,但是脚本执行一些命令没有成功。这时,我们可以将命令的调用方式都改成用绝对路径的方式;还有另一种方法,在脚本里加上如下信息,这样脚本调用命令也能正常执行了。

export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

  1. 当我们更改了环境变量,需要重新登陆shell才生效。其实也可以通过命令 source 更改的文件 来使其生效。

相关文章

  • tomcat 环境变量说明

    linux 环境变量说明见此文linux环境变量说明 tomcat 环境变量说明:

  • Linux Java

    Linux配置Java环境变量 Reference [1]. Linux配置Java环境变量

  • 生信随手记2020-02-16:Linux环境变量

    Linux-常见环境变量及其作用Linux中环境变量的设置

  • 2019-01-30

    # golang环境变量 ## 1、查看环境变量 ## 2、设置环境变量 ### 2.1 linux环境 ### ...

  • Linux学习之环境变量

    转自:Linux学习之环境变量在linux中环境变量是一个重要的概念,环境变量可以由系统、用户、shell、以及其...

  • Linux 环境变量配置全攻略

    Linux 环境变量配置全攻略 Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各...

  • Linux Desktop 环境变量设置

    Linux Desktop 环境变量设置 标签(空格分隔): Linux Deabin AndroidStudio...

  • linux环境变量

    在linux下,经常会遇到环境变量问题,接下来说下环境变量是咋回事儿; linux下设置环境变量,有三种方式: 1...

  • linux命令(二)

    环境变量 在这里我说一下linux的环境变量windows的环境变量大家应该都用的很熟吧,在这里说一下linux怎...

  • Linux 常用命令

    查看linux是32位还是64位: 解压tomat: 配置JDK环境变量在linux下环境变量的配置是通过修改/e...

网友评论

    本文标题:linux环境变量

    本文链接:https://www.haomeiwen.com/subject/hjvjcxtx.html