【Linux】Shell命令以及运行原理

目录

一、Linux是什么

二、Shell 

三、为什么要有Shell

四、Shell的工作原理


一、Linux是什么

狭义上的Linux是指Linux内核本身,它是操作系统的核心部分,负责管理计算机的硬件资源(如处理器、内存、设备等),提供基本的功能和服务,如进程管理、文件系统、设备驱动程序等。Linux内核是开源软件,因此可以被自由地使用、修改和分发。

广义上的Linux是指基于Linux内核的完整操作系统,通常被称为Linux发行版。Linux发行版包括了Linux内核以及大量的软件和工具,如Shell、图形界面环境、应用程序、系统管理工具等。不同的Linux发行版可能会在软件包选择、配置和管理上有所不同,以满足不同用户的需求。


二、Shell 

Linux是一种操作系统,而Shell是Linux系统中的一个命令解释器它是用户与操作系统之间交互的界面。在Linux系统中,用户可以通过Shell来输入命令、运行程序、管理文件和进程等。

Shell是Linux系统中的一个重要组成部分,它可以解释用户输入的命令,识别命令的名称、参数和选项,并将其转换为操作系统内核可以执行的操作。Shell还可以设置环境变量、切换工作目录、管理用户权限等,从而管理用户的工作环境。

Linux系统中有多种Shell可供选择,比较常见的有Bash(Bourne Again SHell)、Korn shell、C shell等。每种Shell都有自己的特点和语法,但它们都遵循着类似的基本概念和作用,作为用户与操作系统进行交互的重要桥梁。

注意:

  • Shell 中输入的命令与系统调用无关,只是Shell将根据命令执行程序,执行的程序有可能调用系统的功能,但是执行系统功能的指令不一定是通过Shell发出的,通过Shell发出的命令也不一定会执行系统调用。 

三、为什么要有Shell

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?

用户使用操作系统的流程:
        1.将用户输入的指令,解释传递给你内核
        2.内核执行命令,得到结果,将结果通过外壳传递给用户

原因1:为了保护操作系统内核

可以理解为:操作系统并不相信我们用户。在操作系统看来,普通用户直接访问或使用操作系统内核是有一定的不安全性的(群众里面有坏人),对于这种情况,操作系统就在内核的外层嵌套了一层的Shell,有了Shell之后,用户不能直接地访问内核,提高了操作系统的安全性。

原因2: 方便用户与操作系统进行交互

Linux内核负责管理计算机的硬件资源,提供基本的功能和服务,如进程管理、文件系统、设备驱动程序等。然而,直接与内核交互并不方便,因此需要一个用户友好的界面来与内核进行交互

Shell作为Linux系统中的一个命令解释器,提供了一个用户与操作系统之间的交互界面。通过Shell,用户可以输入命令、运行程序、管理文件和进程等,并且可以方便地管理自己的工作环境。Shell会解释用户输入的命令,识别命令的名称、参数和选项,并将其转换为操作系统内核可以执行的操作。


四、Shell的工作原理

Shell的工作原理可以简单描述为以下几个步骤:

  1. 提示符和命令读取:当用户在终端窗口中输入命令时,Shell会显示一个提示符等待用户输入。一旦用户输入完整的命令并按下回车键,Shell就会开始读取该命令。
  2. 命令解析和分析:Shell会对输入的命令进行解析和分析。它会识别命令的名称、参数和选项,并将其分解为不同的组成部分。这一过程涉及到字符串处理、语法解析和语义分析等操作。
  3. 命令执行:一旦命令被解析和分析后,Shell会根据命令的类型和参数执行相应的操作。这可能包括运行系统内置的命令、调用外部程序、执行脚本文件等。Shell会将执行结果输出到终端窗口。
  4. 环境管理:Shell还负责管理用户的工作环境。它会设置和维护环境变量,提供命令补全和历史记录功能,支持文件和目录的操作,以及用户权限的管理等。
  5. 循环和控制流:Shell可以执行脚本文件中的多个命令,并支持条件判断、循环和函数等控制结构。这使得用户可以编写复杂的脚本来实现自动化的任务处理和系统管理。

总体而言,Shell的工作原理是通过读取、解析和执行用户输入的命令来实现与操作系统的交互。它提供了一个灵活和强大的命令行界面,使得用户可以高效地管理和使用Linux系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/228175.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软著项目推荐 深度学习动物识别 - 卷积神经网络 机器视觉 图像识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

促进高层次人才创新创业,长沙又在“放大招”

“人才”,寥寥数笔,却勾勒出一座城市的发展核心、创新引擎。大力引进高层次人才,更是城市提升综合实力的有效举措。 11月26日,在长沙市委组织部(市委人才工作局)举办“汇聚磅礴力量 全力建设全球研发中心城…

【MySql】悲观锁和乐观锁的介绍

一、并发控制 当程序中可能出现并发的情况时,就需要保证在并发情况下数据的准确性,以此确保当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用…

用Sublime编写Lua脚本

大家好,我是阿赵。   现在很多手游项目使用lua作为热更新的代码脚本,我一直很喜欢用Sublime来写lua程序。喜欢使用它的原因是它的轻量化,因为我经常要同时打开多个项目,Unity和VisualStudio这些软件都比较占用电脑的性能&#x…

虚幻学习笔记6—摄像机控制

一、前言 摄像机在虚幻中的应用是最常见的。如通常在游戏或应用中会常常出现需要切换不同视角的情况、摄像机拉近缩小等,这个在虚幻中是怎么实现的呢。 二、实现视点切换 2.1、提前设置场景的视点:如图2.1.1所示添加一个摄像机视点到关卡场景中&#x…

Flink Flink中的合流

一、Flink中的基本合流操作 在实际应用中,我们经常会遇到来源不同的多条流,需要将它们的数据进行联合处理。所以 Flink 中合流的操作会更加普遍,对应的 API 也更加丰富。 二、联合(Union) 最简单的合流操作&#xf…

selenium 工具 的基本使用

公司每天要做工作汇报,汇报使用的网页版, 所以又想起 selenium 这个老朋友了。 再次上手,发现很多接口都变了, 怎么说呢, 应该是易用性更强了, 不过还是得重新看看, 我这里是python3。 pip安装…

算法通关第十三关-青铜挑战数学基础问题

数组元素积的符号 描述 : 已知函数 signFunc(x) 将会根据 x 的正负返回特定值: 如果 x 是正数,返回 1 。如果 x 是负数,返回 -1 。如果 x 是等于 0 ,返回 0 。 给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的…

高校学生宿舍公寓报修维修生活管理系统 微信小程序b2529

本课题要求实现一套基于微信小程序宿舍生活管理系统,系统主要包括(管理员,学生、维修员和卫检员)四个模块等功能。 使用基于微信小程序宿舍生活管理系统相对传统宿舍生活管理系统信息管理方式具备很多优点:首先可以大幅…

本地MinIO存储服务通过Java程序结合Cpolar内网穿透进行远程访问

[本地MinIO存储服务通过Java程序结合Cpolar内网穿透进行远程访问] 前言 MinIO是一款高性能、分布式的对象存储系统,它可以100%的运行在标准硬件上,即X86等低成本机器也能够很好的运行MinIO。它的优点包括高性能、高可用性、易于部署和管理、支持多租户…

redis运维(二十二)redis 的扩展应用 lua(四)

一 最佳实践 ① 铺垫 最佳实践:1、把redis操作所需的key通过KEYS进行参数传递2、其它的lua脚本所需的参数通过ARGV进行传递. redis lua脚本原理 Redis Lua脚本的执行原理 ② 删除指定的脚本缓存 ③ redis集群模式下使用lua脚本注意事项 1、常见报错现象 C…

Redis的安装

本文采用原生的方式安装Redis,Redis的版本为5.0.5 安装 下载 下载网站:https://download.redis.io/releases/ wget http://download.redis.io/releases/redis-5.0.5.tar.gz解压 tar -zxvf redis-5.0.5.tar.gz进入redis目录 cd redis-5.0.5执行编译…