-
博文分类专栏
- Jquery基础教程
-
- 文章:(15)篇
- 阅读:47641
- shell命令
-
- 文章:(42)篇
- 阅读:157915
- Git教程
-
- 文章:(36)篇
- 阅读:239360
- leetCode刷题
-
- 文章:(76)篇
- 阅读:140118
-
linux中shell环境2018-02-06 21:05 阅读(7046) 评论(0)
一、简介
我们在linux中进行各种操作,往往需要跟shell环境打交道,如果不了解shell环境是如何建立的,往往会遇到很多困惑。shell里面的环境是从配置文件里面读取的,配置文件主要包含:
(1)启动文件的配置脚本,这是所有用户共享的shell环境。
(2)主目录中的启动文件,用户个人的shell环境。
配置文件的读取顺序,取决于shell的会话类型,shell有两种会话类型,如下:
(1)登录shell会话
(2)非登录shell会话
下面将以bash为例来看看,这两种会话类型加载的配置文件。
二、登录shell会话会加载的配置
文件 配置 /etc/profile 应用于所有用户的全局配置脚本 ~/.bash_profile 用户私有的启动文件,可以用来扩展或重写全局配置脚本中的设置。 ~/.bash_login 如果~/.bash_profile没有找到,bash会读取这个文件。 ~/.profile 如果~/.bash_profile和~/.bash_login都没有找到,bash会读取这个文件。 如下图:
二、非登录shell会话会加载的配置
配置 配置 /etc/bash.bashrc 应用于所有用户的全局配置文件 ~/.bashrc 用户私有的配置文件,可以用来扩展或重写全局配置脚本中的设置 备注:非登录shell会话也会继承它们父进程的环境设置,通常是一个登录shell。
三、shell会话与su命令的关系
su 命令可以让我们在已登录的会话中切换到另外一个用户,那么是否会修改shell会话,是否会修改shell环境呢?
1、当时使用“su userName”形式
会切到到userName用户之后仍然保持旧的(或者说原始用户的)环境。
2、当时使用“su - userName”形式
参数“-” 可提供的环境为用户在直接登录时的环境,也就是说在使用su命令,若添加了“-” 参数,相当于创建一个以userName用户正常登录的环境。