Skip to content
Go back

Linux 环境配置

Edit page

Linux 环境配置

Linux 有两种方式来进行环境的配置:

picture 1

交互式 login shell

交互式 login shell 一般只会读取:

  1. /etc/profile :全局配置文件;
  2. [~/.bash_profile | ~/.bash_login | ~/.profile] :用户自己的配置文件,这三个只读取一个,按照顺序读取,先命中的则读取;

而通过打开上述的文件我们发现,他们还会判断另外一下配置文件是否存在,存在则执行;比如, ~/.bash_profile 会去读取 ~/.bashrc ,而 ~/.bashrc 会去读取 /etc/bashrc 等等。

总结下来如下图所示,实线的方向是系统会自动读取的流程,虚线是文件中调用的配置文件;一般我们都会修改 ~/.bashrc 进行用户专属的配置,方式管理混乱;

picture 2

非交互式 non-login shell

非交互式 non-login shell 只会读取 ~/.bashrc 文件,所以和上面的其实差不多;

通过 su 命令看到以上两者的区别

su - 运行替换用户和组标识的 shell 用法: su [OPTION]... [-] [USER [ARG]...] 参数:

-, -l, --login
      使得shell为可登录的shell

`-c`, --commmand=COMMAND
       传递单个COMMAND给-c的shell.

-f, --fast
       传递-f给shell(针对csh或tcsh)

-m, --preserve-environment
       不重置环境变量

-p     与-m同

-s, --shell=SHELL
       如果/etc/shells允许,运行SHELL.

--help 显示帮助并退出

--version
       输出版本信息并退出

通过 su root 切换到 root 用户是按照 non-login shell 的方式切换到 root 的 shell 的; 通过 su -su - root 切换到 root 用户是按照 login shell 的方式切换到 root 用户的 shell 的; 由于这两种方式加载配置文件的方式不一样,所以他们最后的 env 环境变量打印出来并不一样。


Edit page
Share this post on:

Previous Post
chaincode_lifecycle
Next Post
linux使用v2ray