交互式shell和非交互式shell、登录shell和非登录shell
交互式shell和非交互式shell、登录shell和非登录shell:
我们在图形交互界面操作时,是交互式的,先理解交互式下的登陆和非登录概念:
概念 | 举例 | 特点 |
---|---|---|
登陆shell |
用户登陆时,输入用户名和密码登陆的shell,或bash --login 命令打开的shell
|
登陆时读取并执行/etc/profile ·和~/.bash_profile、~/.bash_login、~/.profile 中第一个存在的文件,通常这三个文件中会source ~/.bashrc 。登出时执行~/.bash_logout
|
非登陆shell |
用户登陆时不需要系统认证打开的shell,或bash 命令打开的shell
|
登陆时读取并执行~/.bashrc
|
我们时常远程执行脚本或者 (sh some.sh
或 ./some.sh
)直接执行脚本时会遇到缺少环境变量的问题,其实就是因为我们使用的是非交互式非登录shell。该模式下,加载的$BASH_ENV
定义的文件。
命令bash启动shell时,是可以通过选项改变其行为的,(sh 基本兼容bash这些设定)
bash [长选项] [选项] [脚本]
常用选项:
选项 | 含义 |
---|---|
-i
|
shell在交互模式下运行 |
-l
|
shell作为登陆shell |
-r
|
启动受限shell |
--
|
选项结束标志,后面的内容当做文件名或参数,即使他们以- 开头
|
--login
|
同-l
|
--noprofile
|
阻止读取初始化文件/etc/profile、~/.bash_profile、~/.bash_login、~/.profile
|
--norc
|
在交互式shell,阻止读取初始化文件~/.bashrc 。如果shell以sh调用的话,该选项默认是打开的。
|
--recfile file
|
在交互式shell,指定初始化文件是file而不是~/.bashrc
|
--version
|
版本信息 |
查看登录式:shopt login_shell
# 如新起一个bash:
> bash
> shopt login_shell
login_shell off
> bash --login
> shopt login_shell
login_shell on
# ssh 一个ip
ssh xxxxxxx
> shopt login_shell
login_shell on
查看交互式法1:echo $PS1
# 非空表示交互式
> echo $PS1
\u@\h:\w>
> cat test.sh
echo $PS1
shopt login_shell
> sh test.shlogin_shell off
查看交互式法2:echo $-
# 输出中包含i
则表示是交互式shell
> echo $-
himBH
> cat test.sh
echo $-
shopt login_shell
> sh test.sh
hB
login_shell off
> bash -i test.sh
himB
login_shell off
> sh -i test.sh
himB
login_shell off
交互式shell和非交互式shell、登录shell和非登录shell相关推荐
- 交互式、非交互式,登录式、非登录式Shell
交互式Shell和非交互式Shell 交互式模式:在终端上执行,shell等待你的输入,并且立即执行你提交的命令.这种模式被称作交互式是因为shell与用户进行交互.这种模式也是大多数用户非常熟悉的: ...
- Linux随笔10-Ubuntu网络配置、非交互式远程主机登录以及shell中的数组应用(冒泡排序数组中的元素)
Contents 1. Ubuntu系统网络配置总结 1.1. 配置主机名 1.2. 配置网卡名称 1.3. 配置网卡IP地址 2. 非交互式远程主机登录 2.1. 使用expect实现 2.2. 使 ...
- shell的交互式和非交互式登录
工作中经常碰见环境变量加载问题,归根结底就是配置文件的加载问题. 一般会有四种模式:交互式登陆.非交互式登陆.交互式非登陆.非交互非登陆. 交互式和非交互式对环境变量的加载: +----------- ...
- [车联网安全自学篇] ATTACK安全之交互式/非交互式Shell和登录式/非登录式Shell的检测
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 0x01 前言 Linux下默认的shell是Bourne ...
- /etc/profile与/etc/bashrc、交互式与非交互式、login与non-login shell的差别
线上的memcached又挂了.仍然没有得到core文件. 排查原因,同事发现启动memcached的脚本存在可疑问题. 问题一:没有设置memcached工作文件夹,有可能core dump时没有工 ...
- mysql 反弹shell_反弹shell升级成交互式shell
实验环境: A : kali 虚拟机 B: centos7.5 虚拟机 1. A 机 kali 虚拟机 设置监听 端口 root@kali64:~# nc -lvvp 9001 # 端口随便定义,没被 ...
- Linux命令之 chsh -- 用来更换登录系统时使用的shell
文章目录 命令简介 常用选项 参考示例 查看系统安装了哪些shell的两种方法 查看当前正在使用的 shell 修改当前登录用户的shell 命令简介 chsh 命令用来更换登录系统时使用的shell ...
- linux脚本登录启动失败,在Linux上检查用户登录成功与失败的shell脚本
在Linux上检查用户登录成功与失败的shell脚本 Linux管理员的典型任务之一是检查Linux系统中成功和失败的登录尝试. 手动验证它们非常困难,因为" /var/log/secure ...
- Linux下非交互式sshpass登录
摘要 在命令行 非交互的SSH登录的时候,一般我们可以借助于生成用户的公钥私钥对,然后把公钥添加到远程主机的authorized_keys文件,可以实现非交互无密码登录. 其实这里也可以有另外一种方式 ...
最新文章
- 保护8亿终端 阿里聚安全携手信通院打造B2C资金安全闭环
- 欧几里得算法和扩展欧几里得算法的简单例子
- 云小课 | MRS和自建Hadoop相比,有哪些优势?
- TensorFlow 图片预处理
- Windows Internet Explorer 8 简体中文正式版发布!
- [LeetCode]Count and Say
- CTR点击率预估实战分享
- STM32应用文件系统--W25Q256(RTT系统)
- 网吧服务器记录修改,网吧服务器ip地址修改
- uni-app项目的开发和发布流程(包括开发版、体验版、正式版)
- 毕业论文查重过关最强最全规律
- 【typecho插件】typecho邮箱插件LoveXiaozhou是一款Typecho邮件通知类插件、小周
- java StringBuilder用法
- 苹果Mac电脑怎么能彻底的卸载软件?
- 计算机组成原理选择题
- SkyWalking触发告警发送邮箱
- Halting problem
- java重写的目的是什么_什么是重写?重写的作用?
- 智能蜂箱管理系统——物联网工程专业软硬结合课设 计算机专业课程设计 大作业 项目(安卓,Springboot后端,网页数据展示前端,ESP8266传输数据,MQTT服务器)
- 计算机信息安全及职业道德,CISP人员职业道德的准则
热门文章
- Quorum联盟链开发入门
- 小时候想玩的游戏---任天堂n64
- 2021-10-15 TF卡及晶体的PCB封装创建
- win7禁用手机便携式设备_在便携式Firefox(和其他便携式应用)中禁用启动屏幕...
- 订单系统和前台系统的交互---预订单--订单--支付--登录?
- 常用的OCR文字识别软件有哪些
- python中的编码问题(decode,encode,codecs)
- 作为测试人员,你需要掌握哪些,常用软件测试工具?
- 无法定位序数XX于动态链接库XX.dll的解决办法
- ESXI 7.02 Intel 核心显卡直通开启3D加速