Linux的Login Shell & Non-Login shell

登录脚本的执行顺序:【注:仅适用于 bash shell】

Login Shell

   是指登录时,需要提供用户名密码的shell,如:su – user1 , 图形登录, ctrl+alt+F2-6进入的登录界面。
 这种Login shell  执行脚本的顺序:
   1. /etc/profile       【全局profile文件;它定义了LoginUser的 PATH, USER, LOGNAME(登录使用者帐号)】
   2. /etc/profile.d/目录下的脚本
   3. ~/.bash_profile   【搜索命令的路径    ——————- 登录级别 环境变量配置文件 】
   4. ~/.bashrc      【存储用户设定的别名和函数 ———- shell级别 环境变量配置文件】
   5. /etc/bashrc     【全局bashrc文件; 它主要定义一些 Function 和 Alias;更改/etc/bashrc会影响到所有用户,由root用户管理。】

Non-Login shell

登录终端后,使用ssh 登录 其他机器!
   非登录shell指的是,不需要输入用户名密码的shell,如图形下 右键terminal,或ctrl+shift+T打开的shell
 这种Non-Login shell 执行登录脚本的顺序: 
   1. ~/.bashrc
   2. /etc/bashrc
   3. /etc/profile.d/目录下的脚本

因此在跨主机执行shell脚本时,出现了command not found,可向~/.bashrc添加/etc/profile

vim ~/.bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
 /etc/profile
                                         

如第9行所示。

发布了24 篇原创文章 · 获赞 27 · 访问量 6931

猜你喜欢

转载自blog.csdn.net/qq_39261894/article/details/104747536