shell的类型探索

简介: shell的类型探索

什么是shell?

shell是一个程序,它和kernel(内核)进行交互,它从用户那里获取输入指令发送到kernel,在kernel执行指令后的结果返回输出给shell。在没有GUI(图形)的时代,shell是系统的主要界面,也是和kernel交互的唯一方式。 虽然现在可以通过GUI完成某些操作,但是shell的强大是GUI无法完全取代的。

Login Shell(登录式shel)和Non-Login Shell(非登录式shell)

Login Shell

当我们通过终端登录一台主机时,主机默认会为我们启动一个shell,因为这个shell是在登录后启动的,所以我们可以理解为,它是Login Shell。在sudo命令-i参数、su命令-l参数也都提到了Login Shell。

判断是否是Login Shell,可以使用echo $0,如果打印出来的名称是-bash或是-su,第一个字符是“-”,就说明这是一个Login Shell,又或是在docker命令中使用了--login参数,这也是个Login Shell。

Login Shell执行以下脚本:/etc/profile、/etc/profile.d/中脚本、当前用户~/.bash_profile、当前用户~/.bashrc、执行/etc/bashrc

Non Login Shell

Non Login Shell是通过Login Shell启动的shell,例如,登录主机后,输入bash命令再启动一个shell,这个shell就是Non Login Shell。

Login Shell执行以下脚本:~/.bashrc、/etc/bashrc、/etc/profile.d

同样Non Login Shell也可以通过$0输出结果来判断,echo $0打印出来的结果是bash或su,可以认为是Non Login Shell。

补充:检测当前是否是Login Shell,还可以通过输入logout命令,如果当前是Login Shell,执行结果相当于exit,如果不是Non Login Shell会提示logout: not login shell。

interactive shell(交互式shell)和non-interactive shell(非交互式shell)

我们日常在终端中使用的就是interactive shell,即输入提交命令,返回结果。

当我们执行shell脚本时,bash helloword.sh,此时的shell就是non-interactive shell

目录
相关文章
|
6月前
|
存储 Shell Linux
【Shell 命令集合 系统设置 内建命令】⭐Linux 声明变量的属性和类型 declare命令 使用指南
【Shell 命令集合 系统设置 内建命令】⭐Linux 声明变量的属性和类型 declare命令 使用指南
72 0
|
6月前
|
存储 Shell Linux
【Shell 命令集合 网络通讯 】⭐Linux 显示当前系统的主机名和操作系统类型 uuname命令 使用教程
【Shell 命令集合 网络通讯 】⭐Linux 显示当前系统的主机名和操作系统类型 uuname命令 使用教程
80 0
|
Ubuntu Shell
Ubuntu用数组统计用户shell类型及对应数量
Ubuntu用数组统计用户shell类型及对应数量
102 0
|
SQL 机器学习/深度学习 关系型数据库
Shell变量的作用、类型,及如何利用脚本配合任务计划远程备份mysql数据库
Shell变量的作用、类型,及如何利用脚本配合任务计划远程备份mysql数据库
143 0
Shell变量的作用、类型,及如何利用脚本配合任务计划远程备份mysql数据库
|
Web App开发 前端开发 JavaScript
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2
|
Shell
识别Shell环境类型
识别Shell环境类型
104 0
识别Shell环境类型
|
Shell
shell脚本编程-类型变量
shell脚本编程-类型变量
98 0
|
20天前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
58 1
|
6天前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
21 2
6种方法打造出色的Shell脚本
|
10天前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
36 6