登录shell 和非登录shell
来源:互联网 发布:冒险岛装备数据库 编辑:程序博客网 时间:2024/05/04 10:34
1.前言:
我们知道当在shell里面运行应用程序的时候,表现形式会受到配置参数的影响,最主要的是一些path,或者shell本身的配置。
linux的配置一般分成两种,一种是profile,另一种是rc。profile是和用户和机器配置相关的,比如USERNAME,HOSTNAME或者HOME。而rc则是主要负责一些和路径等和运行时更相关的参数,最主要的是PATH。
在第一次用户login的时候,就会初始化profile相关的脚本,这就是所谓的login shell。当在已经存在的shell里面启动另外一个shell的时候,比如使用"bash"或者"su",启动的这个新shell就会初始化rc相关的脚本。这个shell就称为non-login shell。
login shell会执行的脚本通常有 /etc/profile和~/.bash_profile。
non-login shell会执行的脚本通常有/etc/bashrc (在Ubuntu Jaunty 上是/etc/bash.bashrc)和~/.bashrc。
在所有的shell中,子shell继承父shell的env环境变量。但是要注意env的初始创建和shell并没有什么关系。
2.区别:
每次bash作为login shell启动时会执行.bash_profile。
主要有有以下几种情形:
• 每次登录到服务器时默认启动的shell
• “su -l [USER]”时进入的shell
• “bash —login”进入的shell
每次bash作为普通的交互shell(interactive shell)启动时会执行.bashrc
常见的有:
• “su [USER]”进入的shell
• 直接运行“bash”命令进入的shell。
注意
• 在shell脚本中“#!/usr/bin/bash”启动的bash并不执行.bashrc。因为这里的
bash不是interactive shell。
• bash作为login shell(login bash)启动时并不执行.bashrc。虽然该shell也
是interactive shell,但它不是普通的shell。
一般.bash_profile里都会调用.bashrc
尽管login bash启动时不会自动执行.bashrc,惯例上会在.bash_profile中显式调用.bashrc。
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
3.试验脚本
用以下文件可以很方便的验证以上所述。
-bash-2.05b$ cat .bashrc
echo "in bashrc"
export TEST="rc"
-bash-2.05b$ cat .bash_profile
echo "in bash profile"
-bash-2.05b$ cat test.sh
#!/bin/bash
echo $TEST
bash-2.05b$
from zhenhuaqin.cublog.cn
- 登录shell 和非登录shell
- 交互式shell和非交互式shell、登录shell和非登录shell的区别
- 交互式shell和非交互式shell、登录shell和非登录shell的区别
- 交互式shell和非交互式shell、登录shell和非登录shell的区别
- 交互式shell和非交互式shell、登录shell和非登录shell的区别
- 交互式shell和非交互式shell、登录shell和非登录shell的区别
- 交互式SHELL和非交互式SHELL、登录SHELL和非登录SHELL的区别
- 交互式SHELL和非交互式SHELL、登录SHELL和非登录SHELL的区别
- 交互式SHELL和非交互式SHELL、登录SHELL和非登录SHELL的区别
- 登录shell与非登录shell
- 登录/非登录、交互/非交互式shell
- 交互式shell和非交互式shell、登录…
- bash 深入理解:交互式shell和非交互式shell、登录shell和非登录shell的区别
- 什么是Linux的登录shell与非登录shell
- 登录shell 与 非登录shell 及加载配置文件顺序
- shell - 非交互方式改变登录用户密码
- 登录shell 非登录shell /etc/bash.bashrc /etc/profile ~/.bashrc ~/.profile
- 登录式shell与非登录式shell的文件自动执行顺序
- IP地址基础知识
- 3月5日学雷锋服务日志
- 有不可思议的目标 就有不可思议的结果
- XMLHttpRequest 对象的Google Suggest 式简单应用
- SkinSE换肤界面库1.0正式发布
- 登录shell 和非登录shell
- Unix文化——提供机制而不是策略
- 趣题:三角形两顶点在直线上滑动时第三点的轨迹
- 操作系统第二课(一)—追寻历史的足迹
- New Features Summary Of Sybase® PowerDesigner® 15.0 For Windows[PD15新功能特征摘要]
- SQL SERVER 2005 数据挖掘与商业智能完全解决方案---学习笔记(一)
- WF工作流接口规范
- 完成了WF工作流持久化和对持久化介质数据的加载, 但是仅仅用持久化,不能够保存工作流当前的执行状态,需要跟踪服务支持,怎样使用Tracing 服务呢?
- 致:WWF技术博客领跑者WXWINTER--兰竹梅菊.春夏秋冬