本文来聊聊linux中的/etc/profile, ~/.bash_profile, ~/.bashrc等配置文件。首先, 我们来说一下login shell和non-login shell的概念:
login shell : 需要密码来登录的, 则为login shell, 比如你每次用SecureCRT来登录的shell。 要说明的是, SecureCRT可以存放密码, 所以即使你省略了输入这个输入密码的过程, 那还是login shell. 或者你在SecureCRT中clone一个session, 那也属于login shell, 因为间接用到了密码来登录(存储了)。
non-login shell: 不需要密码登录的shell, 比如你已经在一个shell当中, 执行bash命令(不需要密码)后, 进入到另外一个shell(子shell)中, 此时的shell就是non-login shell.
本文只讨论常见的login shell. 对于/etc/profile来说, 通常需要root权限才能修改它, 修改后, 其他任意用户再打开shell的时, 都会生效。 所以,改/etc/profile的时候必须仔细斟酌, 小心为妙, 因为会影响到该机器上的所有用户。
那每个用户可不可以有自己的个性化配置文件呢? 可以的! 比如我经常在~/.bashrc中增加和修改东西, 这个修改只影响我自己(~/.bash_profile也同理)。
对于 /etc/profile, ~/.bash_profile, ~/.bashrc等, 在我们登录login shell的时候, 都会被自动执行, 爽哈。