论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
运维.售后
›
运维.售后
›
Linux:login shell和non-login shell以及其设置文件 ...
Linux:login shell和non-login shell以及其设置文件
尚未崩坏
金牌会员
|
2024-12-6 20:58:06
|
显示全部楼层
|
阅读模式
楼主
主题
854
|
帖子
854
|
积分
2562
干系阅读
Linux
https://blog.csdn.net/weixin_45791458/category_12234591.html?spm=1001.2014.3001.5482
shell是Linux与外界交互的程序,登录shell有两种方式,login shell与non-login shell,它们的区别是读取的设置文件差异,本文将以Bash shell为例就此举行阐述,但这个概念实用于其他shell,如ch、csh、tcsh、zsh等。
login shell
下面的这些环境下,登录的是login shell。
1、通过GNOME等GUI界面输入用户名、暗码后登录时(它不是下令行shell,但仍可看做是login shell)。
2、通过GNOME等GUI界面,设置了
Run command as login shell
选项,右击选择Open Terminal登录bash shell时。
3、使用Ctrl+Alt+F*快捷键或chvt下令启动的终端详见Linux:终端,输入用户名、暗码登录bash shell时(包罗ssh远程连接)。
4、在shell中使用su下令,且使用-、-l、或--login选项时,详见Linux:用户切换指令su。
5、在shell中使用bash下令,且使用-、-l、或--login选项时(无论是以交互式还黑白交互式)。
一个误区是输入了暗码登录的就是login shell,否则是non-login shell,这是错误的。
non-login shell
下面的这些环境下,登录的是non-login shell。
1、通过GNOME等GUI界面,没有设置
Run command as login shell
选项,右击选择Open Terminal登录bash shell时。
2、在shell中使用su下令,且不使用-、-l、或--login选项时,详见Linux:用户切换指令su。
3、在shell中使用bash下令,且不使用-、-l、或--login选项时(无论是以交互式还黑白交互式)。
检验方法
检验一个shell是否为login shell的方法有很多:
1、有些login shell在登录时会提示前次登录状态和时间。
2、可以查抄$0特殊变量的值,如果其有前缀-,如-bash之类则代表其为login shell,如果其没有前缀-,如bash、/bin/bash之类则代表其为non-login shell,但这对于“通过GNOME等GUI界面输入用户名、暗码后登录”和“在shell中使用bash下令”两种环境是失效的。
3、使用下面的下令查抄,如选项开启则表示为login shell,但这对于第1种环境是失效的。
shopt -q login_shell && echo "This is a login shell" || echo "This is a non-login shell"
复制代码
4、测试shell是否读取了设置文件
/
etc/profile(后面具体说明)。
设置文件
首先说明,下面这些设置文件的读取和执行,是通过类似点下令source的效果主动完成的(但没有显式执行),关于该下令,见Linux:点下令source。
/etc/profile
用途:/
etc/profile是一个
体系范围的login shell设置文件
,即它会影响所有效户的shell环境设置。它用于定义体系范围的环境变量、启动程序和其他全局设置。
执行时机
:
/
etc/profile会在login shell登录时执行,因此可以将一些测试语句参加其中
/
etc/profile用于检验一个shell是否为login shell(需要root权限),如下所示。
echo "This is from /etc/profile" >> /tmp/profile_test.log
复制代码
位置
:
/
etc/profile存在于体系的
/
etc目次中,这是一个全局文件,管理员可以在这里做一些对所有效户都有影响的设置。
内容
:
/
etc/profile通常会包含对用户$PATH环境变量、历史记录设置、默认权限掩码(umask)等的定义。它还会执行
/
etc/profile.d目次下的其他脚本。
~/.bash_profile
用途
:~/.bash_profile是一个
用户级别的login shell设置文件
,它答应用户设置自己专属的环境变量、别名等。通常用于定义环境变量和其他只在登录时需要设置的内容。
执行时机
:~/.bash_profile会在Bash login shell登录时执行。
内容
:~/.bash_profile中常常包罗对~/.bashrc的调用(通过source下令),这样Bash login shell不仅会执行login shell干系的设置,还可以执行non-login shell的设置。
~/.bash_login
用途
:~/.bash_login是另一个
用户级别的login shell设置文件
,与~/.bash_profile类似。Bash 在启动login shell时会先查找并执行~/.bash_profile,如果这个文件不存在,才会尝试执行 ~/.bash_login。
执行时机
:与~/.bash_profile类似,只在Bash login shell登录时执行。
优先级
:~/.bash_login通常较少使用,由于大多数用户更常用~/.bash_profile。只有当 ~/.bash_profile不存在时,Bash 才会尝试执行~/.bash_login。
内容
:内容上可以与~/.bash_profile类似,不过由于其优先级较低,它很少使用。
~/.profile
用途
:~/.profile是一个通用的
用户级别的
login shell设置文件
,它不只限于Bash shell,也会被其他shell(如sh)执行。这个文件用于设置用户的环境变量、启动应用等,并可以实用于任何Bourne shell派生的shell。
执行时机
:如果~/.bash_profile和~/.bash_login都不存在,Bash shell会执行~/.profile。因此,虽然它不是特定于Bash shell的设置文件,但仍然会在login shell中执行。
内容
:通常在~/.profile中设置用户环境变量和启动脚本。
~/.bashrc
用途
:~/.bashrc是一个
用户级别的non-login shell设置文件
。这个文件通常用于设置用户的别名、函数、下令提示符(PS1)和其他下令行的设置。
执行时机
:当Bash以交互式non-login shell启动时,会执行~/.bashrc。如果你盼望login shell也执行其中的内容,如果在(通常如此) ~/.bash_profile或~/.profile中显式调用它(通过source下令,这会导致启动login shell时也执行~/.bashrc)。
内容
:~/.bashrc包含用户的别名、自定义函数、历史记录设置、下令提示符格式(PS1)等。它是交互式shell的主要设置文件。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
尚未崩坏
金牌会员
这个人很懒什么都没写!
楼主热帖
读高性能MySQL(第4版)笔记01_MySQL架 ...
鸿蒙DevEco Studio3.0——开发环境搭建 ...
SQL Server向表中插入数据
Webpack的使用
Redis命令手册
金三银四好像消失了,IT行业何时复苏! ...
容器开发运维人员的 Linux 操作机配置 ...
2022-8-17 mysql 第三天
如何建立你的阅读管理系统?以 FlowUs ...
TiDB 底层存储结构 LSM 树原理介绍 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表