linux 桥,Shell:用户使用Linux的桥梁

原标题:Shell:用户使用Linux的桥梁

我们日常使用的操作系统如Windows、Mac OS、Android、iOS等系统,都是带有美美的图形操作界面的,根据图形加简短的文案提示,就知道该程序是干嘛的,任何人都可以上手。然而在计算机的初期,并没有类似这样的图形界面,如果要使用计算机只能用一个个的命令去操作。想想成天面对着黑屏,敲着成百上千个命令来做事,这样的计算机只能给专业人士使用,无法普及。

fc526ce41620a89c9b5f9a93d96ef25b.png

当然,无论是图形界面还是命令行,最终要实行的目的是一致的:用户需要控制计算机。然而真正能够对计算机进行控制的只有系统内核Kernel,而用户不需要也很难直接去接触系统内核,那么就需要有有一个“中间件”或者桥梁将用户与Kernel连接起来,用户界面和命令行程序就是这座桥梁,在Linux系统中,这个命令行程序叫Shell。以上只是对Shell的通俗解释。

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

什么是shell?

Linux系统的shell介于系统内核与用户之间,相当于系统与用户间的桥梁,负责解析输入的命令和输出的二进制码。另外,shell也属于一种程序设计语言,为用户提供操作机器的交互接口,使用户输入的命令能够传送到内核执行并把处理结果反馈回来。

ed7d7e85806ebc80b4349baa39e15f78.png

一句话:shell就是在操作系统和应用程序之间的一个命令翻译工具。

shell的分类

图形界面shell,桌面就是一个图形界面shell

命令行shell,如:linux系统下的bash

Shell连接用户与内核的真相

Shell程序本身的功能是很弱的,我们运行一个命令,Shell去调用内核暴露出来的接口,也就是调用一个个函数,调用函数即是使用内核。比如我们在命令行执行命令cat xxx.log命令来查日志文件内容。然而,这个文件在哪个位置,有多少个数据块等等这些细节,shell都是不知道的,它只能去调用内核提供的read或open函数,告诉内核我需要这样做,你帮我去做。

Shell 是一种脚本语言

有些编程语言可以一边编译一边执行,我们称之为脚本语言(Script)。脚本语言是使用灵活、部署容易、跨平台性好。Shell 就是一种脚本语言,我们编写完源码后不用编译,直接运行源码即可。

Shell 虽然没有其他编程语言那么强大,如C++、Python,但也支持基本的编程元素,例如:

if...else,case,for、while等

变量、数组、字符串、加减乘除、逻辑运算等

函数,包括用户自定义的函数和内置函数(例如 printf、export、eval 等)

Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。 在命令行使用中,表达式周围的引号不是必需的,只有在shell不会将表达式解释为单个字(标记)时才需要。由于脚本s/x/y/g没有歧义,所以generateData | sed s/x/y/g工作正常。然而,为了清楚起见,通常是要写引号的,特别是对于有空格的时候(例如,'s/x x/y y/')。大多数情况下,使用单引号是为了避免shell将$解释为shell变量。使用双引号,如"s/$1/$2/g",是为了让shell替换命令行参数或其他shell变量。

Unix shell,一种壳层与命令行界面,是UNIX操作系统下传统的用户和计算机的交互界面。第一个用户直接输入命令来执行各种各样的任务。

82aac7f891b66ed8beb11acbfebaee4a.png

普通意义上的shell就是可以接受用户输入命令的程序。它之所以被称作shell是因为它隐藏了操作系统底层的细节。同样的Unix下的图形用户界面GNOME和KDE,有时也被叫做“虚拟shell”或“图形shell”。

Unix操作系统下的shell既是用户交互的界面,也是控制系统的脚本语言。当然在这点也有别于Windows下的命令行,虽然也提供了很简单的控制语句。在Windows操作系统下,可能有些用户从来都不会直接地使用shell,然而在Unix系列操作系统下,shell仍然是控制系统启动、X Window启动和很多其他实用工具的脚本解释程序。返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值