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

目录
相关文章
|
7月前
|
存储 Shell Linux
【Shell 命令集合 系统设置 内建命令】⭐Linux 声明变量的属性和类型 declare命令 使用指南
【Shell 命令集合 系统设置 内建命令】⭐Linux 声明变量的属性和类型 declare命令 使用指南
77 0
|
7月前
|
存储 Shell Linux
【Shell 命令集合 网络通讯 】⭐Linux 显示当前系统的主机名和操作系统类型 uuname命令 使用教程
【Shell 命令集合 网络通讯 】⭐Linux 显示当前系统的主机名和操作系统类型 uuname命令 使用教程
83 0
|
Ubuntu Shell
Ubuntu用数组统计用户shell类型及对应数量
Ubuntu用数组统计用户shell类型及对应数量
107 0
|
SQL 机器学习/深度学习 关系型数据库
Shell变量的作用、类型,及如何利用脚本配合任务计划远程备份mysql数据库
Shell变量的作用、类型,及如何利用脚本配合任务计划远程备份mysql数据库
144 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环境类型
106 0
识别Shell环境类型
|
Shell
shell脚本编程-类型变量
shell脚本编程-类型变量
101 0
|
2月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
86 1
|
26天前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
51 2
6种方法打造出色的Shell脚本
|
13天前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
34 1